使用MySQL内置工具(命令)
表名: admin
列:
id,整型,自增,主键。
username字符串 不为空,
pasword 字符串不为空,
mobile 字符串不为空
python代码实现:
create table admin(
id int not null auto_increment primary key,
username varchar(17) not null,
pasword varchar(12) not null,
mobile varchar(11) not null
)
default charset=utf8;
insert into unicom(username,pasword,mobile) values("123","234","345");
用python操作MySQL并发送指令
需要安装一个第三方的模块
pip install pymysql
import pymysql
# 连接数据 注意是utf8 而不是 utf-8(这样会报错)
# 千万不要用字符串格式化做SQL的拼接,会有安全隐患sql的注入
# 千万不要用字符串格式化做SQL的拼接,会有安全隐患sql的注入
# 千万不要用字符串格式化做SQL的拼接,会有安全隐患sql的注入
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
#创建一个发送指令的游标(重要)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 创建指令
cursor.execute("insert into admin(username,pasword,mobile) values('1wqe3','23wqe4','34asfd5')")
# 提交数据
conn.commit()
# 关闭
cursor.close()
conn.close()
最终在数据库中返回的结果
mysql> select * from admin;
+----+----------+---------+---------+
| id | username | pasword | mobile |
+----+----------+---------+---------+
| 1 | 123 | 234 | 345 |
| 2 | 1wqe3 | 23wqe4 | 34asfd5 |
+----+----------+---------+---------+
2 rows in set (0.00 sec)
小知识点:sql注入
SQL注入(SQL Injection)是指攻击者通过在Web应用的用户输入参数中注入恶意的SQL语句,从而使Web应用执行这些恶意的SQL语句,进而导致数据库被攻击者非法获取或操作的一种安全漏洞。攻击者通过SQL注入漏洞,可以绕过Web应用程序的身份验证和授权机制,实现非法访问敏感数据、篡改或者删除数据等恶意操作。因此SQL注入被广泛认为是Web应用程序中最常见的漏洞类型之一。为避免SQL注入攻击,应该在编写Web应用程序时,对用户的输入进行严格的合法性检查,并对输入参数进行参数化处理,从而避免注入攻击。
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "insert into admin(username,pasword,mobile) values(%s,%s,%s)"
cursor.execute(sql,["小明","qwe123","asdzxc"])
conn.commit()
cursor.close()
conn.close()
方式2:
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "insert into admin(username,pasword,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql, {"n1": "小明1", "n2": "qwe", "n3": "asc"})
conn.commit()
cursor.close()
conn.close()
简单案例:
import pymysql
user = input("请输入用户名")
pasword = input("请输入密码")
email = input("请输入邮箱")
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "insert into admin(username,pasword,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql, {"n1": user, "n2": pasword, "n3": email})
conn.commit()
cursor.close()
conn.close()
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "select * from admin"
cursor.execute(sql)
# 读数据,把所有的数据都拿到
data = cursor.fetchall() #无数据的话,返回一个空列表
for i in data:
#返回来的数据是字典样式
print(i)
conn.commit()
cursor.close()
conn.close()
#只获取符合条件的第一条数据
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "select * from admin"
cursor.execute(sql)
data = cursor.fetchone() #无数据的话,返回一个NONE
print(data)
conn.commit()
cursor.close()
conn.close()
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "delete from admin where id=%s"
cursor.execute(sql,[4, ])
sql = "select * from admin"
cursor.execute(sql)
data = cursor.fetchall()
for i in data:
print(i)
conn.commit()
cursor.close()
conn.close()
import pymysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', password="123", charset='utf8', db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "update admin set pasword='123' where id = %s"
cursor.execute(sql, [5, ])
sql = "select * from admin"
cursor.execute(sql)
data = cursor.fetchall()
for i in data:
print(i)
conn.commit()
cursor.close()
conn.close()
cursor.execute("....")
conn.commit()
cursor.execute("....")
# 第一条数据,字典, 无数据时时空列表
v1 = cursor.fetchall()
# 所有数据,字典, 无数据时None
v1 = cursor.fetchone()
1.【快速开发网站】
2.【浏览器能识别的标签1】
3.【浏览器能识别的标签2】
4.【浏览器能识别的标签3】
5.【浏览器能识别的标签4】
6.【案例1:用户注册】
7.【案例2:用户注册改进】
8.【快速了解 CSS】
9.【常用选择器概念讲解】
10.【CSS基础样式介绍1】
11.【CSS基础样式介绍2】
12.【CSS基础样式介绍3】
13.【CSS基础样式介绍3】
14.【案例 小米商城头标】
15.【案例 小米商城头标总结】
16.【案例 小米商城二级菜单】
17.【案例 商品推荐部分】
18.【伪类简单了解】
19.【position】
20.【案例 小米商城中app图标代码】
21.【边框及总结】
22.【BootSrap初了解】
23.【BootSrap的目录栏】
24.【BootSrap的栅格系统】
25.【案例 博客案例】
26.【案例 登录】
27.【案例 后台管理样例】
28.【图标】
29.【BootStrap依赖】
30.【javascript初了解】
31.【jJavaScript的变量】
32.【JavaScript的字符串类型】
33.【JavaScript的数组介绍】
34.【案例 动态数据】
35.【javascript 对象(字典)】
36.【案例 动态表格】
37.【Javascript的条件语句和函数】
38.【DOM初了解】
39.【DOM的事件了解】
40.【jQuery初了解】
41.【jQuery寻找标签】
42.【jQuery寻找标签2】
43.【jQuery寻找标签(间接寻找)】
44.【案例 菜单的切换】
45.【案例 只能打开一个菜单】
46.【jQuery 简单操作】
47.【案例 动态创建数据】
48.【案例 点击获取文本】
49.【案例 点击删除文本】
50.【案例 表格操作】
51.【案例 添加页面】
52.【初识MySQL】
53.【MySQL命令介绍一】
54.【MySQL命令介绍二】
55.【MySQL命令介绍三】