- 创建表结构
- Python操作MySQL
- 1连接MySQL
conn=pymysql.connect(host=”127.0.0.1”,port=3306,user=’root’,password=”root”,charset=’utf8’,db=’unicom’)
#2.基于cursor发送指令
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) - 3.发送指令
#3.1生成命令
#3.1.1原始静态插入
# cursor.execute(“insert into admin(username,password,mobile)values(‘xiaoli’,’7894560’,’13333333333’)”) - (千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)!!!!
#3.1.2动态插入数据插入
# sql=”insert into admin(username,password,mobile)values (%s,%s,%s)”
# cursor.execute(sql,[“xiaoming”,”qwer”,”13344444444”]) - 3.1.3字典方式插入数据
sql=”insert into admin(username,password,mobile)values (%(n1)s,%(n2)s,%(n3)s)”
cursor.execute(sql,{“n1”: “济宁”,”n2”:”123456”,”n3”:”18888888888”}) - 3.2提交命令
conn.commit() - 4.关闭连接
cursor.close()
conn.close()` - 3.1.4动态创建数据
while True:
user = input(“用户名: “)
if user.upper()==’Q’:
break
pwd = input(“密码: “)
mobile = input(“手机号: “)
# 1连接MySQL
conn = pymysql.connect(host=”127.0.0.1”, port=3306, user=’root’, password=”root”, charset=’utf8’, db=’unicom’)
# 2.基于cursor发送指令
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 3.1.4动态创建数据
sql = “insert into admin(username,password,mobile)values (%s,%s,%s)”
cursor.execute(sql, [user, pwd, mobile]) - 2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“select * from admin where id > %s”,[2,]) - #2.1.1fetchall获取符合条件的所有数据(可以直接输出,逐行输出)[字典,字典] 空列表
# data_list = cursor.fetchall() - 2.1.2 #fetchone获取符合条件的第一条数据。fetchall只可以搭配print来输出 字典 none
data_list = cursor.fetchone() - 2.2.1直接输出
print(data_list) - 2.2.2 #逐行输出
# for row_dict in data_list:
# print(row_dict) - 3.关闭连接
cursor.close()
conn.close() - 2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“delete from admin where id = %s”,[9,])
conn.commit() - 3.关闭连接
cursor.close()
conn.close() - 2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“update admin set mobile = %s where id = %s”,[16666666666,10])
conn.commit() - 3.关闭连接
cursor.close()
conn.close() - 第一条数据 字典 无数据是空列表
- 所有的数据 列表里面套字典 None
- 创建数据库:unicom
创建一张表:admin
表名:admin 列: id,整型,自增,主键, username 字符串 不为空, password 字符串 不为空, mobile 字符串 不为空
python代码实现
- 添加用户
- 删除用户
- 查看用户
- 更新用户信息
创建表结构
CREATE DATABASE unicom DEFAULT CHARACTER SET utf8 COLLATE utf8_general;
use unicom;
create table admin (
id int not null primary key auto_increment,
name varchar(16) not null,
password char(64) not null,
mobile char(11) not null
)default charset="utf8";
Python操作MySQL
创建数据库
`import pymysql
1连接MySQL
conn=pymysql.connect(host=”127.0.0.1”,port=3306,user=’root’,password=”root”,charset=’utf8’,db=’unicom’)
#2.基于cursor发送指令
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
3.发送指令
#3.1生成命令
#3.1.1原始静态插入
# cursor.execute(“insert into admin(username,password,mobile)values(‘xiaoli’,’7894560’,’13333333333’)”)
(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)!!!!
#3.1.2动态插入数据插入
# sql=”insert into admin(username,password,mobile)values (%s,%s,%s)”
# cursor.execute(sql,[“xiaoming”,”qwer”,”13344444444”])
3.1.3字典方式插入数据
sql=”insert into admin(username,password,mobile)values (%(n1)s,%(n2)s,%(n3)s)”
cursor.execute(sql,{“n1”: “济宁”,”n2”:”123456”,”n3”:”18888888888”})
3.2提交命令
conn.commit()
4.关闭连接
cursor.close()
conn.close()`
动态创建数据库
import pymysql
3.1.4动态创建数据
while True:
user = input(“用户名: “)
if user.upper()==’Q’:
break
pwd = input(“密码: “)
mobile = input(“手机号: “)
# 1连接MySQL
conn = pymysql.connect(host=”127.0.0.1”, port=3306, user=’root’, password=”root”, charset=’utf8’, db=’unicom’)
# 2.基于cursor发送指令
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 3.1.4动态创建数据
sql = “insert into admin(username,password,mobile)values (%s,%s,%s)”
cursor.execute(sql, [user, pwd, mobile])
# 3.2提交命令<br /> conn.commit()
# 4.关闭连接<br /> cursor.close()<br /> conn.close()
查询数据库
import pymysql
#1连接MySQL
conn=pymysql.connect(host=”127.0.0.1”,port=3306,user=’root’,password=”root”,charset=’utf8’,db=’unicom’)
#2.基于cursor发送指令
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“select * from admin where id > %s”,[2,])
#2.1.1fetchall获取符合条件的所有数据(可以直接输出,逐行输出)[字典,字典] 空列表
# data_list = cursor.fetchall()
2.1.2 #fetchone获取符合条件的第一条数据。fetchall只可以搭配print来输出 字典 none
data_list = cursor.fetchone()
2.2.1直接输出
print(data_list)
2.2.2 #逐行输出
# for row_dict in data_list:
# print(row_dict)
3.关闭连接
cursor.close()
conn.close()
删除数据
import pymysql
#1连接MySQL
conn=pymysql.connect(host=”127.0.0.1”,port=3306,user=’root’,password=”root”,charset=’utf8’,db=’unicom’)
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“delete from admin where id = %s”,[9,])
conn.commit()
3.关闭连接
cursor.close()
conn.close()
修改数据
import pymysql
#1连接MySQL
conn=pymysql.connect(host=”127.0.0.1”,port=3306,user=’root’,password=”root”,charset=’utf8’,db=’unicom’)
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
2.执行查询命令(千万不要用字符串格式化去做拼接,安全隐患SQL注入)
cursor.execute(“update admin set mobile = %s where id = %s”,[16666666666,10])
conn.commit()
3.关闭连接
cursor.close()
conn.close()
强调
在进行新增,删除,修改时,一定要记得commit。不然数据库没有数据。
cursor.execute(“update admin set mobile = %s where id = %s”,[16666666666,10])
conn.commit()在查询时,不需要commit,执行fetchall/fetchall.
cursor.execute(“..”)
第一条数据 字典 无数据是空列表
v1=cursor.fetchone()
所有的数据 列表里面套字典 None
v2=cursot.fetchall()
对于SQL语句不要用python的字符串格式化进行拼接(会被SQL注入),一定要用execute+参数
cursor.execute(“…%s..%s”,[“x”,”x”])