pymysql操作
- 一、连接数据库
- 二、数据库中创建新表
- 三、向表中插入数据
- 四、查询表中的数据
- 五、更新表中的数据
- 六、删除表中的数据
- 七、删除数据库中的表
参考教程:Python连接MySQL数据库【趣学Python】 SQL常用语句可参考:mysql sql常用语句大全 Python连接数据库的常见操作:
在连接数据库之前,需要确保已经创建数据库
一、连接数据库
语法:connect()
用于连接数据库,括号中为各种参数,常用的有host(主机名)、user(用户名)、
password(密码)、database(数据库名)
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
except pymysql.Error as e: # 连接不成功打印错误
print("数据库连接失败:" + str(e))
二、数据库中创建新表
语法:cursor()
用以创建游标对象,用以操作数据库execute()
用以执行SQL语句
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
cur.execute("DROP TABLE IF EXISTS Student") # 执行SQL语句,创建表之前先查询是否存在,如果存在则删除
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int)" # 编辑SQL语句:创建表,表名为 Student,具有Name,Email,Age
cur.execute(sqlQuery) # 执行SQL语句
print("表格创建成功!")
except pymysql.Error as e: # 连接不成功打印错误
print("表格创建失败:" + str(e))
三、向表中插入数据
语法:commit()
用以将数据提交给数据库rollback()
用以发生错误时回滚
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名a
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
sqlQuery = "INSERT INTO Student(Name, Email, Age) VALUE (%s, %s, %s)" # 编辑SQL语句:向表中插入信息
value = ("Mike", "123@qq.com", "20") # 要插入的具体信息
cur.execute(sqlQuery, value) # 执行SQL语句
db.commit() # 提交到数据库
print("数据插入成功!")
except pymysql.Error as e: # 连接不成功打印错误
print("数据插入失败:" + str(e))
db.rollback() # 如果发生错误则回滚
db.close() # 关闭数据库连接
四、查询表中的数据
语法:fetchall()
用以接收全部的返回结果
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名a
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
sqlQuery = "SELECT * FROM Student" # 编辑SQL语句:查询数据库 Student 中的内容
cur.execute(sqlQuery) # 执行SQL语句
result = cur.fetchall() # 接收全部的返回结果
for row in result: # 遍历以打印出数据库信息
name = row[0]
email = row[1]
age = row[2]
print("Name:%s,Email:%s,Age:%s" % (name, email, age))
# print(f"Name:{name},Email:{email},Age:{age}")
# print("Name:", name, ",Email:", email, ",Age:", age)
except pymysql.Error as e: # 连接不成功打印错误
print("数据查询失败:" + str(e))
db.close() # 关闭数据库连接
五、更新表中的数据
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名a
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
sqlQuery = "UPDATE Student set Name = %s where Name = %s" # 编辑SQL语句:更新数据库 Student 中的信息
value = ("John", "Mike") # 要更新的具体信息
cur.execute(sqlQuery, value) # 执行SQL语句
db.commit() # 提交到数据库
print("数据更新成功")
except pymysql.Error as e: # 连接不成功打印错误
print("数据更新失败:" + str(e))
db.rollback() # 如果发生错误则回滚
db.close() # 关闭数据库连接
六、删除表中的数据
实例:
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名a
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
sqlQuery = "DELETE FROM Student WHERE Name = %s" # 编辑SQL语句:删除数据库 Student 中的信息
value = ("John") # 要删除的具体信息
cur.execute(sqlQuery, value) # 执行SQL语句
db.commit() # 提交到数据库
print("数据删除成功")
except pymysql.Error as e: # 连接不成功打印错误
print("数据删除失败:" + str(e))
db.rollback() # 如果发生错误则回滚
db.close() # 关闭数据库连接
七、删除数据库中的表
import pymysql
# 数据库信息:
DBHOST = 'localhost' # 主机名
DBUSER = 'root' # 用户名
DBPASS = '1234' # 密码
DBNAME = 'xuexi_mysql' # 数据库名a
try:
db = pymysql.connect(host=DBHOST, user=DBUSER, password=DBPASS, database=DBNAME)
print("数据库连接成功!")
cur = db.cursor() # 声明一个游标,用以操作数据库
sqlQuery = "DROP TABLE IF EXISTS Student" # 编辑SQL语句:删除数据库 Student 中的一张表
cur.execute(sqlQuery) # 执行SQL语句
print("表格删除成功")
except pymysql.Error as e: # 连接不成功打印错误
print("表格删除失败:" + str(e))
db.rollback() # 如果发生错误则回滚
db.close() # 关闭数据库连接