正文
MySQL py模块的链接Navicat可视化工具
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
数据库可视化工具Navicat |
1 基本操作:
1 库 表 字段 记录(增删改查)
2 添加主建,添加自增。
3 添加外键,外键的链接
4 模型建表,模型添加外键。(逆向数据库到模型,运行SQL文件导入SQL数据,导入时注意字符编码)
5 新建查询,美化SQL语句。注释方法于pycharm相同。
Pymysql 模块的使用 |
1 下载安装pymsql模块。
2 基本参数配置
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='day41',
charset='utf8'
)
cursor=conn.cursor(pymysql.cursors.DictCursor) # 将查询的结果做成字典格式。
res=cursor.execute('select * from course') # 执行sql语句,返回查询到的数据条数。
print(cursor.fetchone()) # 获取一条查询结果,
print(cursor.fetchone()) # 在上次fetchone的基础上,再获取一条查询结果,
# cursor.scroll(1,'relative') # 移动光标,相对移动,相对上一条向后移动一个数据位置。
cursor.scroll(0,'absolute') # 移动光标,绝对移动,从第一天数据开始计数。
print(cursor.fetchall()) # 获取所有查询到的数据。
3 校验账户及密码
import pymysqlconn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='day41',
charset='utf8',
autocommit = True # 及时更新到数据库
)
cursor=conn.cursor(pymysql.cursors.DictCursor)
while True:
name=input('username>>:')
password=input('password>>:')
# sql='insert into userinfo(name,pwd) values (%s,%s)'
sql='select * from userinfo where name=%s and pwd=%s'
res=cursor.execute(sql,(name,password)) # 模块语法,将sql语句及字段交给执行,它来拼接字符串,避免查询漏洞。
conn.commit() # 确认数据无误之后 commit之后才会将数据真正修改到数据库
if res:
print('验证成功')
else:
print('用户名或密码错误!')
4 sql注入问题
# 不要手动去拼接查询的sql语句
username = input(">>>:").strip()
password = input(">>>:").strip()
sql = "select * from user where username='%s' and password='%s'"%(username,password)# 用户名正确
username >>>: jason' -- jjsakfjjdkjjkjs
# 用户名密码都不对的情况
username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljad
password >>>: ''
5 增删改
# 增
sql = "insert into user(username,password) values(%s,%s)"
rows = cursor.excute(sql,('jason',''))# 修改
sql = "update user set username='jasonDSB' where id=1"
rows = cursor.excute(sql)"""
增和改单单执行excute并不会真正影响到数据,需要再执行conn.commit()才可以完成真正的增改
"""# 一次插入多行记录
res = cursor,excutemany(sql,[(),(),()]