python 使用 pymysql 操作mysql 初体验.
import pymysql
def create_table(bg_data_name, table_name, sql, drop):
""" 创建数据库表
:param bg_data_name: str: 连接数据库的名称
:param table_name: str: 表名
:param sql: str: 创建数据库语句
:param drop: bool: 如果表存在,是否是删除旧的表,重新创建
:return:
"""
print("创建表的语句 = ", sql)
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("如果表存在则删除 exist = ", exist)
if exist:
print("表已存在")
if drop:
print("删除表,重新创建")
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS %s" % table_name)
print("创建表")
cursor.execute(sql)
db.commit()
else:
print("创建表")
cursor.execute(sql)
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
def del_table(bg_data_name, table_name):
""" 删除数据库中的表
:param bg_data_name: str: 连接数据库的名称
:param table_name: str: 表名
:return:
"""
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("判断数据库中是否存在表 exist = ", exist)
if exist:
print("表存在 删除表")
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS %s" % table_name)
else:
print("数据库中没有该表")
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
def add_table_row(bg_data_name, table_name, field_name, row):
add_table_rows(bg_data_name, table_name, field_name, [row])
def add_table_rows(bg_data_name, table_name, field_name, rows):
""" 向数据库添加数据
:param bg_data_name: str: 连接数据库的名称
:param table_name: str: 表名
:param field_name: str: 字段名 多个逗号隔开
:param rows: list(tuple): 添加的数据
:return:
"""
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("数据库中是否存在表 exist = ", exist)
if exist:
print("表存在")
string = str(rows)
string1 = string.replace("[", "")
value = string1.replace("]", "")
sql = """INSERT INTO %s(%s) VALUES %s""" % (table_name, field_name, value)
print("插入表的操作语句 = ", sql)
cursor.execute(sql)
db.commit()
else:
print("插入失败 不存在表")
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
def sql_table(bg_data_name, table_name, sql):
""" 操作数据库
:param bg_data_name: str: 连接数据库的名称
:param table_name: str: 表名
:param sql: str: 数据库操作语句
:return:
"""
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("数据库中是否存在表 exist = ", exist)
cursor.execute(sql)
db.commit()
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
def find_table(bg_data_name, table_name, sql):
""" 操作数据库
:param bg_data_name: str: 连接数据库的名称
:param table_name: str: 表名
:param sql: str: 数据库操作语句
:return: tuple
"""
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("数据库中是否存在表 exist = ", exist)
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
return results
def del_table_row(bg_data_name, table_name, sql):
# 打开数据库连接
db = pymysql.connect("127.0.0.1", "root", "chunyan", bg_data_name)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 判断数据库中是否存在表
exist = cursor.execute("show tables like '%s'" % table_name)
print("数据库中是否存在表 exist = ", exist)
if exist:
print("执行删除语句")
cursor.execute(sql)
# 提交修改
db.commit()
else:
print("删除失败 不存在表")
print("关闭数据库连接")
cursor.close()
# 关闭数据库连接
db.close()
def temp_call():
table_name = "temp_table6"
bg_name = "crawler"
# 创建一个表
# sql_str = """CREATE TABLE %s (
# NAME CHAR(20) NOT NULL,
# AGE INT,
# SEX CHAR(1)
# )""" % table_name
# 创建一个主键自增长
# sql_str = """CREATE TABLE %s (
# id INT AUTO_INCREMENT,
# name CHAR(20) NOT NULL,
# age INT,
# sex CHAR(1),
# PRIMARY KEY (id)
# )""" % table_name
# 创建表
# create_table(bg_name, table_name, sql_str, True)
# 删除表
# del_table(bg_name, name)
# 向表中添加数据
# add_table_rows(bg_name, table_name, "name, age, sex", [("主角", 9, "男"), ("配角", 2, "女")])
# sql = ""
# insert_table_row(bg_name, table_name, sql)
# 删除表中的数据
# sql = "DELETE FROM %s WHERE AGE = %d" % (table_name, 10)
# print(sql)
# del_table_row(bg_name, table_name, sql)
# 更新数据 向 ID 为2的那一行数据,更新 age 为3.
# sql = "UPDATE %s SET AGE = 3 WHERE ID = %d" % (table_name, 2)
# sql_table(bg_name, table_name, sql)
# 查询表中所有数据
sql = "SELECT * FROM %s" % table_name
obj = find_table(bg_name, table_name, sql)
print(obj)
temp_call()
网友评论