Python操作Mysql(PyMySQL)

2018-03-14  本文已影响0人  你旭哥

使用的相关函数

执行事务函数

# 向数据库提交
db.commit()
# 发生错误时回滚
db.rollback()

查询操作函数

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象。(获得单个数据)
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

操作示例

数据库连接

#!/usr/bin/python3
 
import pymysql
 
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("Database version : %s " % data)
 
# 关闭数据库连接
db.close()

使用with使代码更整洁。

#!/usr/bin/python3
 
import pymysql

# 打开数据库连接
connection = pymysql.connect(
    host='localhost',  # 连接的是本地数据库
    user='Xu',  # 自己的mysql用户名
    passwd='******',  # 自己的密码
    db='本地',  # 数据库的名字
    charset='utf8mb4',  # 默认的编码方式:
    cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # 创建更新值的sql语句
        sql = ""SELECT VERSION()""
        # 执行sql语句
        cursor.execute(sql)
        data = cursor.fetchone()
        print ("Database version : %s " % data)

finally:
    # 关闭连接
    connection.close()

创建数据库表TABLE

# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
 
# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""
 
cursor.execute(sql)

插入数据操作

# SQL 插入语句
sql = """INSERT INTO zhihu_cs1(ID,avatar,name,sign,job,education,sex,get_praise,follow,fans)
        VALUES (%s, %s,%s,%s,%s,%s,%s,%s,%s,%s)"""

# excute 的第二个参数可以将sql缺省语句补全,一般以元组的格式
cursor.execute(sql, (ID, avatar, name, sign, job, education, sex, get_praise, follow, fans))
# 提交到数据库执行
db.commit()

数据库查询操作

sql = 'SELECT * FROM zhihu_cs1'
cursors.execute(sql)
result = cursors.fetchall()

数据库更新

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
cursor.execute(sql)
db.commit()

删除操作

sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
cursor.execute(sql)
db.commit()
上一篇下一篇

猜你喜欢

热点阅读