python使用pymysql库
目录
pymsql库的安装以及使用
pymysql其他类型的sql
增加
修改
删除
-
pymsql库的安装以及使用
- pip install pymysql
- 安装完成样式
- pip install pymysql
- pymysql库的使用
-
准备一个数据库的表(这里使用的是mysql数据库)
- 创建user表
-
用户表中的属性 字段名 类型 是否为空 是否主键 描述 id int 不为空 是 用户id username varchar 可为空 否 用户账号 password varchar 可为空 否 用户密码 monkey int 可为空 否 用户金钱 info varchar 可为空 否 用户信息 -
完整的sql语句
-
CREATE TABLE `myst`.`Untitled` (`id` int NOT NULL AUTO_INCREMENT COMMENT '用户id',`username` varchar(255) NULL COMMENT '用户名',`password` varchar(255) NULL COMMENT '用户密码',`monkey` int NULL COMMENT '用户金额',`info` varchar(255) NULL COMMENT '用户信息',PRIMARY KEY (`id`) );
-
插入数据
-
id username password monkey info 1 user001 123456 500 小明的账号 2 user002 123456 600 小红的账号 3 user003 123456 800 小小的账号 -
sql语句
-
INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (1, 'user001', '123456', 500, '小明的账号'); INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (2, 'user002', '123456', 600, '小红的账号'); INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (3, 'user003', '123456', 800, '小小的账号');
-
-
-
- 创建user表
-
# 导入pymysql包 import pymysql
- 参数配置
-
# 数据库连接的ip地址 db_host = 'localhost'
-
# 数据库端口号 db_port = 3306
-
# 数据库登录账号 db_user = 'root'
-
# 数据库登录密码 db_password = 'root'
-
# 数据库名称 db_database = "myst"
-
# 字符集设置 db_charset = 'utf8'
-
-
# 配置连接数据库信息 connect_mysql = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset)
-
# 获取游标 cursor_mysql = connect_mysql.cursor()
-
# 查询用户表中所有的信息 cursor_mysql.execute("select * from user");
-
# 打印所有结果 print("查询结果:",cursor_mysql.fetchall())
-
# 打印所有结果 print("查询结果:",cursor_mysql.fetchall()) print("---------------------------------")
-
# 打印单个结果 print("打印单个结果:",cursor_mysql.fetchone())
-
# 重置游标 cursor_mysql.rownumber = 0 # 打印单个结果 print("再次打印单个结果:",cursor_mysql.fetchone())
-
# 关闭游标 cursor_mysql.close()
-
# 关闭数据库连接 connect_mysql.close()
- 完整的代码
# 导入pymysql包 import pymysql from pymysql import connect# 初始化连接数据库参数 # 数据库连接的ip地址 db_host = '127.0.0.1' # 数据库端口号 db_port = 3306 # 数据库登录账号 db_user = 'root' # 数据库登录密码 db_password = 'root' # 数据库名称 db_database = "myst" # 字符集设置 db_charset = 'utf8'# 配置连接数据库信息 connect_mysql = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset) # 获取游标 cursor_mysql = connect_mysql.cursor()# 简单的查询数据库 # 查询用户表中所有的信息 cursor_mysql.execute("select * from user");# 打印所有结果 print("查询结果:",cursor_mysql.fetchall()) print("---------------------------------")# 打印单个结果 print("打印单个结果:",cursor_mysql.fetchone())# 重置游标 cursor_mysql.rownumber = 0 # 打印单个结果 print("再次打印单个结果:",cursor_mysql.fetchone())# 关闭游标 cursor_mysql.close()# 关闭数据库连接 connect_mysql.close()
-
- 查看执行结果
- 分析一下打印单个结果为什么为None
- 执行完
fetchall()
- 这里的游标被直接执行到最下面了
-
# 重置游标 cursor_mysql.rownumber = 0
- rownumber = 0 之后 就恢复了最初的状态
-
pymysql其他类型的sql
-
增加
-
# 增加cursor_mysql.execute("INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`) VALUES (NULL, \'user001\', \'123456\', 500, \'小明的账号\');")
- 执行完毕之后刷新数据库发现数据库中的数据没有添加
- 这个是因为pymsql把自动提交事物给关了,我们需要手动提交
-
# 提交事物 connect_mysql.commit()
- 运行观察数据库
- 数据已经添加了
-
-
修改
-
# 修改数据名字 cursor_mysql.execute("UPDATE `myst`.`user` SET `username` = 'user004' WHERE `id` = 6;") # 查询数据库 cursor_mysql.execute("SELECT * FROM `myst`.`user`;") cursor_mysql.fetchall()
- 执行结果
-
-
删除
-
# 删除 数据 cursor_mysql.execute("Delete from `myst`.`user` where `id` = 6;") # 查询数据库 cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;") print("删除之后",cursor_mysql.fetchall())
- 可以看到数据已经被删除了
- 再次查询也查不到了
-
- 增加删除修改操作必须 提交事物
-
- 完整的代码
# 导入pymysql包 import pymysql from pymysql import connect# 初始化连接数据库参数 # 数据库连接的ip地址 db_host = '127.0.0.1' # 数据库端口号 db_port = 3306 # 数据库登录账号 db_user = 'root' # 数据库登录密码 db_password = 'root' # 数据库名称 db_database = "myst" # 字符集设置 db_charset = 'utf8'# 配置连接数据库信息 connect_mysql = pymysql.connect(host=db_host,port=db_port,database=db_database,user=db_user,password=db_password,charset=db_charset) # 获取游标 cursor_mysql = connect_mysql.cursor()# 简单的查询数据库 # 查询用户表中所有的信息 cursor_mysql.execute("select * from user");# 打印所有结果 print("查询结果:",cursor_mysql.fetchall()) print("---------------------------------")# 打印单个结果 print("打印单个结果:",cursor_mysql.fetchone())# 重置游标 cursor_mysql.rownumber = 0 # 打印单个结果 print("再次打印单个结果:",cursor_mysql.fetchone())# 增加cursor_mysql.execute("INSERT INTO `myst`.`user` (`id`, `username`, `password`, `monkey`, `info`)"" VALUES (NULL, \'user001\', \'123456\', 500, \'小明的账号\');")# 修改数据名字 cursor_mysql.execute("UPDATE `myst`.`user` SET `username` = 'user004' WHERE `id` = 6;") # 查询数据库 cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;") print("修改之后",cursor_mysql.fetchall())# 删除 数据 cursor_mysql.execute("Delete from `myst`.`user` where `id` = 6;") # 查询数据库 cursor_mysql.execute("SELECT * FROM `myst`.`user` WHERE `id` = 6;") print("删除之后",cursor_mysql.fetchall())# 提交事物 connect_mysql.commit()# 关闭游标 cursor_mysql.close()# 关闭数据库连接 connect_mysql.close()