pymysql模块

pycharm如何操作MySQL(pymysql模块)

'''
支持python代码支持操作数据库MySQL
'''

pip3 install pymysql

代码

import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user = 'root',
    password='123456',
    database='day48',  # 一定要指定一个库
    charset='utf8'  # 编码千万不要写-
)  # 连接数据库

cursor= conn.cursor(cursor=pymysql.cursors.DictCursor)  # 产生一个游标对象(就是用来帮你执行命令的)
'''
cursor=pymysql.cursors.DictCursor 将查询结果以字典形式返回
'''
sql = 'select * from teacher;'
res = cursor.execute(sql)
# print(res)  # execute返回的是你当前sql语句所影响的行数 该返回值一般不用
# 获取命令执行的查询结果
# print(cursor.fetchone()) # 只拿一条
# print(cursor.fetchall()) # 拿所有
# print(cursor.fetchmany(2))  # 可以指定拿几条
print(cursor.fetchone())
print(cursor.fetchone())  # 读取数据类似于文件光标的移动
# cursor.scroll(1,'relative')  # 相对于光标所在的位置继续往后移动一位
cursor.scroll(1,'absolute')  # 相对于数据的开头往后继续移动一位
print(cursor.fetchall())

sql注入

"""
利用一些语法的特性 书写一些特点的语句实现固定的语法
MySQL利用的是MySQL的注释语法

日常生活中很多软件在注册的时候都不能含有特殊符号
因为怕你构造出特定的语句侵入数据库,不安全
"""

# 敏感的数据不要自己做拼接 ,交给execute帮你拼接即可
# 结合数据库完成一个用户的登陆功能
import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user = 'root',
    password='123456',
    database='day48',  # 一定要指定一个库
    charset='utf8'  # 编码千万不要写
)  # 连接数据库
cursor= conn.cursor(cursor=pymysql.cursors.DictCursor)  # 产生一个游标对象(就是用来帮你执行命令的)

username = input('username>>>: ').strip()
password = input('password>>>: ').strip()
sql = 'select * from user where name=%s and password=%s'
# 不要手动拼接数据 先用%s占位,之后将需要拼接的数据直接交给execute方法即可
print(sql)
rows = cursor.execute(sql,(username,password))  # 自动识别sql里面的%s,用后面元组里面的数据进行替换
if rows:
    print('登陆成功')
    print(cursor.fetchall())
else:
    print('登陆失败')

pymysql模块增删改查数据操作

针对增删改 pymysql需要二次确认才能真正的操作数据

import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user = 'root',
    password='123456',
    db='day48',
    charset='utf8',
    autocommit=True  # 设置自动提交
)
cursor = conn.cursor(pymysql.cursors.DictCursor)

#
sql = 'insert into user(name,password) values(%s,%s)'
# rows = cursor.execute(sql,('zhzhang',123))
rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据
# print(rows)
# conn.commit()  # 确认

# 修改
# sql = 'update user set name="egonSB" where id=1'
# rows=cursor.execute(sql)
# print(rows)
# conn.commit()  # 确认

# 删除
# sql  = 'delete from user where id=11'
# rows = cursor.execute(sql)
# print(rows)
# conn.commit()  # 确认


#
sql = 'select * from user '
cursor.execute(sql)
print(cursor.fetchall())


'''
增删改查中 
    删改增它们的操作涉及到数据的修改
    需要二次确认
'''

pycharm补充

# 针对增删改 pymysql需要二次确认才能真正的操作数据
import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user = 'root',
    password='123456',
    db='day48',
    charset='utf8',
    autocommit=True  # 设置自动提交
)
cursor = conn.cursor(pymysql.cursors.DictCursor)

#
sql = 'insert into user(name,password) values(%s,%s)'
# rows = cursor.execute(sql,('zhzhang',123))
rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据
# print(rows)
# conn.commit()  # 确认

# 修改
# sql = 'update user set name="egonSB" where id=1'
# rows=cursor.execute(sql)
# print(rows)
# conn.commit()  # 确认

# 删除
# sql  = 'delete from user where id=11'
# rows = cursor.execute(sql)
# print(rows)
# conn.commit()  # 确认


#
sql = 'select * from user '
cursor.execute(sql)
print(cursor.fetchall())


''' 
增删改查中 
    删改增它们的操作涉及到数据的修改
    需要二次确认
'''


# 还可以一次性插入N多条数据
rows = cursor.executemany(sql,[('zhzhang',123),('tom',456)])  # 添加多条数据

 

posted @ 2021-06-10 16:42  Palpitate~  阅读(35)  评论(0编辑  收藏  举报