Navicat可视化软件
- Navicat可以充当数据库软件的客户端,最主要用于mysql
- Navicat功能十分好用,可以加快sql的操作效率
- 使用Navicat要注意先学好mysql
Navicat下载
使用python操作数据库
模板:
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db',
charset='utf8mb4',
autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql1 = 'select * from class'
cursor.execute(sql1)
res = cursor.fetchone()
print(res)
cursor.fetchone()
cursor.fetchall()
cursor.fetchmany()
cursor.scroll(0, mode='absolute')
cursor.scroll(2, mode='relative')
获取结果
例:
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db',
charset='utf8mb4',
autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql1 = 'select * from class'
cursor.execute(sql1)
res = cursor.fetchone()
print(res)
cursor.scroll(1, mode='relative')
res1 = cursor.fetchmany(2)
print(res1)
- 结果

SQL注入
- 如何通过pymysql实现用户登录功能呢
- 表数据

修改前认为的逻辑P:
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db1',
charset='utf8mb4',
autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
username = input('username>>>:').strip()
password = input('password>>>:').strip()
sql = "select name,pwd from login where name='%s' and pwd='%s'"% (username,password)
cursor.execute(sql)
res = cursor.fetchall()
if res:
print('登录成功')
else:
print('用户名密码错误')
- 我们现在的登录操作会因为用户输入的特殊符号可能会变为sql的语法。
- 为了避免这样的情况出现,我们需要将格式化获取到的用户数据操作放到 cursor.execute()方法内
修改后的:
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db1',
charset='utf8mb4',
autocommit=True
)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
username = input('username>>>:').strip()
password = input('password>>>:').strip()
sql = "select name,pwd from login where name='%s' and pwd='%s'"
cursor.execute(sql,(username,password))
res = cursor.fetchall()
if res:
print('登录成功')
else:
print('用户名密码错误')