安装PyMysql:
pip install PyMySQL
1、数据库连接:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询,获取数据库版本
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print(data)
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
2、创建数据表
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用预处理语句创建表
sql = """CREATE TABLE `User` (
`ID` INT primary key AUTO_INCREMENT COMMENT 'ID',
`USER_NAME` CHAR(20) COMMENT '姓名',
`AGE` INT DEFAULT '0' COMMENT '年龄',
`SEX` CHAR(1) COMMENT '性别',
`SCORE` FLOAT DEFAULT '0' COMMENT '积分'
)"""
#执行sql语句
cursor.execute(sql)
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
3、插入操作
插入单行:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
try:
# 执行sql语句
cursor.execute("INSERT INTO User(USER_NAME,AGE,SEX,SCORE) VALUES ('watson2017', 20, 'M', 2000)")
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
插入多行:
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 多行数据
data = [('watson2017', 20, 'M', 2000),('hepburn', 18, 'F', 3000)]
try:
# 执行sql语句
cursor.executemany("INSERT INTO User(USER_NAME, AGE, SEX, SCORE) VALUES (%s,%s,%s,%s)", data)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
4、查询操作
- fetchone():该方法获取下一个查询结果集。结果集是一个对象
- fetchall():接收全部的返回结果行
- fetchmany(number):接收指定数量的返回结果行
- rowcount:这是一个只读属性,并返回执行execute()方法后影响的行数。
使用 fetchone()
方法获取单条数据,使用fetchall()
方法获取多条数据。
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT USER_NAME, AGE, SEX, SCORE FROM User WHERE SCORE > %f" % (1000)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表,以元组来存储
results = cursor.fetchall()
print(results)
# 遍历元组存值
for row in results:
name = row[0]
age = row[1]
sex = row[2]
score = row[3]
# 打印结果
print("name=%s,age=%d,sex=%s,score =%f" % (name, age, sex, score))
except:
print("错误:没有查找到数据")
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
5、更新操作
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE User SET SCORE = %f WHERE ID = %d" % (1000, 2)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()
6、删除操作
import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
user='root',
password='123456',
database='mydb')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM User WHERE AGE > %d" % (22)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭不使用的游标对象
cursor.close()
# 关闭数据库连接
db.close()