import pymysql
mysql_conn = pymysql.Connect(
host = 'localhost',
port = 3306,
user = 'root',
password = '',
database = 'spider_py',
charset='utf8')
try:
cursor = mysql_conn.cursor()
sql = 'insert into emp(name,sex,age,dep_id)values("%s","%s",%d,%d)'%('haha','female',20,200)
re = cursor.execute(sql)
mysql_conn.commit()
print('完成录入:',re)
except Exception as e:
print('失败了:', e)
if cursor:
cursor.close()
mysql_conn.rollback()
try:
sql = 'delete from emp where name = "%s"'%'haha'
re = cursor.execute(sql)
mysql_conn.commit()
print('完成录入:', re)
except Exception as e:
print('失败了:', e)
if cursor:
cursor.close()
mysql_conn.rollback()
try:
new_age = input('enter a new age:')
sql = 'update emp set age = %d where id = 3'%new_age
re = cursor.execute(sql)
mysql_conn.commit()
print('完成录入:', re)
except Exception as e:
print('失败了:', e)
if cursor:
cursor.close()
mysql_conn.rollback()
sql = 'select * from emp where age > 30'
cursor.execute(sql)
result = cursor.fetchmany(3)
for re in result:
print(re)
cursor.close()
mysql_conn.close()
import pymysql
from dbutils.pooled_db import PooledDB
from pymysql.cursors import DictCursor
POOL = PooledDB(
creator=pymysql,
maxconnections=10,
mincached=2,
maxcached=5,
blocking=True,
setsession=[],
ping=0,
host='localhost', port=3306, user='root', passwd='', charset="utf8", db='spider_py'
)
conn = POOL.connection()
cursor = conn.cursor(cursor=DictCursor)
cursor.execute("select * from user where token=%s", [str,])
result = cursor.fetchone()
cursor.close()
conn.close()
INSERT INTO table_name(col1, col2, col3...) values (val1,val2,val3)
Delete from table_name
Delete from table_name where 'col+条件,如:COLUMN=value'
UPDATE table_name SET col1 = val1, col2 = val2... where clause
SELECT sname (as '名字') FROM student;
select * from table_name wehre col1+条件1 and/or col2+条件2;
SELECT * FROM student WHERE sname LIKE 'lee%';
#对group by后的列进行分组
select 列名,要计算的内容 from table_name where 查询条件 group by 列名;
#先分组、计算后筛选
SELECT class_name,AVG(sage) FROM student GROUP BY class_name HAVING AVG(sage) >20;
SELECT * FROM student ORDER BY sage ASC;
SELECT * FROM student ORDER BY sage DESC;
SELECT * FROM student LIMIT 0,3;
- 跳过授权表重置密码的方法
你可以将mysq1获取用户名和密码校验的功能看成是一个装饰器装饰在了客户端请求访问的功能上
我们如果将该装饰器移除 那么mysq1服务端就不会校验用户名和密码了
# 1 先关闭当前mysq1服务端
命令行的方式启动(让mysq1跳过用户名密码验证功能)mysq1d --skip-grant-tables
# 2 直接以无密码的方式连接
mysql -uroot -p 直接回车
# 3 修改当前用户的密码
update mysq.user set password=password(123456) whereuser='root' and host='1ocalhost';
'''
真正存储用户表的密码字段 存储的肯定是密文只有用户自己知道明文是什么 其他人都不知道 这样更加的安全密码比对也只能比对密文
'''
#4立刻将修改数据刷到硬盘
flush privileges;
#5 关闭当前服务端 然后以正常校验授权表的形式启动
- mysql配置文件修改:统一编码格式;和免输入管理员账号密码
在my.ini文件中进行如下配置
[mysq1d]
character-set-server=utf8
collation-server=utf8—genera1—ci
[cIient]
defau1t-character-set=utf8
[mysq1]
user="root"
password=123456
defau1t-character-set=utf8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构