Python 操作Mysql

2023-11-16 20:10:33 浏览数 (1)

Python 操作Mysql

1.Pymsql 介绍

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

1.1 python安装pymsql模块

PIP 是 Python 包或模块的包管理器。

注释:如果您使用的是 Python 3.4 或更高版本,则默认情况下会包含 PIP

普通安装 :

pip install PyMySQL

卸载已安装的库:

pip uninstall PyMySQL

列出已安装的库:

pip list

1.2 Python操作mysql

代码语言:text复制
1.导入pymysql模块 : import pymysql
2.使用connect() 函数来创建连接对象
     *host :连接的mysq|主机,如果本机是'localhost'
     *port : 连接的mysq|主机的端口, 默认是3306
     *database :数据库的名称
     *user :连接的用户名
     *password :连接的密码
     *charset :通信采用的编码方式,推荐使用utf8

3.连接对象操作说明
     conn.close() : 关闭连接
     conn. commit() :提交数据
     conn.rollback() : 撤销数据

代码:

代码语言:python代码运行次数:0复制
import pymysql  # 连接mysql数据库的模块

# 1.连接数据库
"""
需要传入的参数:
  host=None,
  user=None,
  password="",
  database=None,
  port=0,
  charset='',
  autocommit=True
"""
client = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="123",
    database="test",
    charset='utf8',  # 一定不要写utf-8
    # 针对增删改操作,执行重要程度高,若要执行,必须要有一步确认的操作,autocommit=True默认对数据库进行增删改操作时自动提交至数据库;若此处不写,在下面代码 cursor_obj.execute(sql) 后面手动需要添加 client.commit()操作
    autocommit=True
)
# print(client)  # 打印结果:<pymysql.connections.Connection object at 0x00000000028A8B88>


# 2.获取游标对象。游标:可以用来提交sql命令
# pymysql.cursors.DictCursor:将查询出来的结果制作成字典的形式返回
cursor_obj = client.cursor(pymysql.cursors.DictCursor)

# 3.通过execute可以提交sql语句(增删改查都可以,可以使用try来捕获异常)
try:
    # 1.1)查数据
    sql = "select * from books"  # 不用写分号

    # 1.2)插入数据
    # sql = "insert into student(id, name, sex, birthday, class) values('110', '张芳', '男', '1946', '95030')"  # 不用写分号

    # 2)提交sql语句
    res = cursor_obj.execute(sql)
    # print(res)  # execute返回的是当前sql语句所影响的行数
    # client.commit()  # 上面连接数据库的代码处已写了autocommit=True,此处注释掉

    # 3.1)提交后,通过cursor_obj对象.fetchall()  获取所有查询到的结果
    data = cursor_obj.fetchall()
    for i in data:
        print(i)

    # 3.2).fetchone()  只获取查询结果中的一条
    # print(cursor_obj.fetchone())

    # 3.3).fetchmany() 可以指定获取几条数据
    # print(cursor_obj.fetchmany(4))  # 获取四条数据

except Exception as e:
    print(e)

# 关闭游标
cursor_obj.close()
# 关闭客户端连接
client.close()

2.数据库

DBMS

mysql -RDBMS 关系型

2.1 数据库分类

代码语言:txt复制
关系型:mysqloraclesqlserveraccess
非关系型:redis,mongodb...

2.2 修改密码

代码语言:txt复制
mysql>set password for root@'127.0.0.1' =password('666')
mysqladmin -uroot -p老密码 password 新密码;
mysql>update user set password=password('66') where user='root';

2.3 库操作

代码语言:txt复制
创建库:
	create database 库名 charset='utf8';
连接库
	use 库名
查询库
	show databases;
	show create database 库名  (查看库的详细创建语句)
删库
	drop database 库名;

2.4 表操作

代码语言:txt复制
创建:
	create table 表名(
		字段1名 类型(宽度) 约束条件,
		字段2名 类型(宽度) 约束条件
	);

删除
	drop table 表名;
查看表
	show create table 表名;  #表信息竖向展示
	show create table 表名G
	show tables;
	select * from userinfoG  #表信息竖向展示

清空表
	truncate 表名;    清空表,自增重置
	delete from 表名; 清空表

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞