在python中操作mysql数据库

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()


猜你喜欢

转载自blog.csdn.net/pyrans/article/details/82389526