步骤
1.建立数据库连接
对象名 = pymysql.connect('主机地址', '用户名', '密码', '库名', charset='utf8', port=3306)
db = pymysql.connect('localhost', 'root', 'yellow', 'database_name', charset='utf8')
数据库对象的方法:
.cursor()
.commit()
.rollback()
.close()
2.创建游标对象
对象名 = db.cursor()
3.使用游标对象的方法和SQL语句操作数据库
游标对象方法:
.execute() 执行MySQL基本命令
.fetchone() 取得结果集的第1行记录
.fetchmany(size) 取得结果集的size行记录
.fetchall() 取得结果集的所有行记录
.close() 关闭游标对象
4.提交commit
游标对象.commit()
5.关闭游标对象
游标对象.close()
6.关闭数据库连接
数据库对象.close()
翻译
cursor
光标;[计]游标,指针;
commit
vt 犯罪;把...委托给;[计]提交
fetch
vt. 取来
vi. 卖得
n. 诡计
连接数据库
import pymysql
# 创建数据库连接
db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8')
# 利用connect的对象创建一个游标对象
cursor = db.cursor()
# 利用游标对象的方法,操作mysql数据库
# .execute(MySQL语句)
cursor.execute('use z_51cto_41;')
cursor.execute('show tables;')
# 提交到数据库执行 ____________________________________________ 增删改需要提交,查询可以不用
db.commit()
# 关闭游标对象
cursor.close()
# 关闭数据库的链接
db.close()
模拟mysql界面
import pymysql
def select_n(DATABASE):
db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8', db=DATABASE)
cursor = db.cursor()
cursor.execute('show tables;')
print(cursor.fetchall())
while True:
sentence = ''
while ';' not in sentence:
clause = input('mysql> ').rstrip() + '\n'
sentence += clause
if sentence == ';\n':
break
try:
cursor.execute(sentence)
for i in cursor.fetchall():
print(*i, sep='\t')
except Exception as error:
print(error)
游标对象.execute(self,query,args)
import pymysql
db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8')
cursor = db.cursor()
cursor.execute('use z_51cto_41')
cursor.execute('show tables;')
query = 'select * from score where id = %s'
score_id = '1'
cursor.execute(query, score_id)
result = cursor.fetchone()
print(*result)
query = 'select * from score where student_id = %s and course_id = %s'
sid, cid = '2', '2'
cursor.execute(query, [sid, cid])
result = cursor.fetchone()
print(*result)
query = 'select * from score where student_id = %(a)s and course_id = %(b)s'
sid, cid = '4', '4'
cursor.execute(query, {'a': sid, 'b': cid})
result = cursor.fetchone()
print(*result)
cursor.close()
db.close()