Python连接MySQL+模拟MySQL界面


步骤

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):
    # connect
    db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8', db=DATABASE)
    cursor = db.cursor()
    cursor.execute('show tables;')
    print(cursor.fetchall())
    # select
    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()
# execute
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()

猜你喜欢

转载自blog.csdn.net/yellow_python/article/details/80525574
今日推荐