1、连接mysql数据库
在python中想要连接mysql中需要先导入pymysql模块
import pymysql
# 连接mysql数据库---
# 用户名, 密码, 主机名,端口号
# host = None, con 指定主机名, ip地址, 127.0.0.1和localhost代表主机
# user = None, 指定用户名
# password = "", 指定密码
# database = None, 指定连接的数据库
# port = 0, 指定数据库端口号 默认是3306
# charset = '', 指定编码
connect = pymysql.Connect(host="10.20.130.20",user="xxxx",password = "123456",database="xxx",charset='utf8')
使用connect接收Connect函数的返回值
注:Connect中参数过多,这里主要罗列常用的几种
# 执行sql语句
# 获得cursor对象,cursor对象是用来执行sql语句的
cursor = connect.cursor()
# 执行sql语句
cursor.execute("select version();")
使用execute函数来执行指令
函数执行完毕关闭连接
# 关闭连接
cursor.close()
connect.close()
2、创建一个表
import pymysql
connect = pymysql.Connect(host="10.31.160.116",user="pyrans",password = "pp",database="school",charset='utf8')
# 获得cursor对象
cursor = connect.cursor()
# 如果该表已经存在,则删除该用户
sqlFood = "drop table if EXISTS food"
cursor.execute(sqlFood)
# 创建一个表
createSql = "CREATE TABLE food(id INT PRIMARY KEY auto_increment,name VARCHAR(20),price INT)"
cursor.execute(createSql)
# 关闭资源
cursor.close()
connect.close()
3、数据的添加操作
import pymysql
connect = pymysql.Connect(host="10.31.160.116",user="pyrans",password = "pp",database="school",charset='utf8')
cursor = connect.cursor()
# 增 删 改 需要用到回滚
try:
sqlInsert = "insert into food values(0,'红烧大肘子',91);"
sqlInsert2 = "insert into food values(0,'麻辣火锅',66);"
cursor.execute(sqlInsert)
cursor.execute(sqlInsert2)
# commit提交
connect.commit()
except: #只要出现异常就回滚sql
# 用sql进行数据操作的时候,通常需要保证数据的完整性,当需要同时执行多条sql语句时, 其中的任意一条执行出错,就可能导致所有数据出错,
# 所以,当其他中的某一条sql出错时,则回滚到执行这些sql语句之前的状态
connect.rollback()
cursor.close()
connect.close()
注:数据的删除与修改与增加数据类似
4、数据的查询
例:selectSql = "select * from food"
cursor.execute(selectSql)
当输入以上代码查询数据时需使用代码接收
cursor.fetchone() 获取一个结果
cursor.fetchall() 获取所有的结果
cursor.fetchmany(size) 获取指定数量的结果
cursor.rowcount 获取结果的行数
注:以上返回值皆为数组类型的值
用法类似迭代器中的next
import pymysql
connect = pymysql.Connect(host="10.31.160.116",user="pyrans",password = "pp",database="school",charset='utf8')
cursor = connect.cursor()
# --------------查询
selectSql = "select * from food"
cursor.execute(selectSql)
# 查询结果在cursor中
# cursor.fetchone() 获取一个结果
# cursor.fetchall() 获取所有的结果
# cursor.fetchmany(size) 获取指定数量的结果
# cursor.rowcount 获取结果的行数
# res = cursor.fetchone()
# print(res) # (1, '红烧大肘子', 91)
# res = cursor.fetchone()
# print(res) # (2, '麻辣火锅', 66)
# res = cursor.fetchall()
# print(res) # ((1, '红烧大肘子', 91), (2, '麻辣火锅', 66))
allres = cursor.fetchmany(1) # ((1, '红烧大肘子', 91),)
print(allres)
res = cursor.rowcount
print(res) # 2
# 关闭连接
cursor.close()
connect.close()