day06 python操作数据库 实现用户登录

这篇博客介绍了如何使用Python操作MySQL数据库,重点在于实现用户注册和登录功能。内容包括多表查询练习、Python与MySQL的交互、防止SQL注入以及增删改操作的二次确认。
摘要由CSDN通过智能技术生成

day06 python操作数据库 实现用户登录

内容回顾

查询关键字

limit  分页 :限制数据的显示行数
	limit 数字1 		:从第0行开始到第一个数字的行
	limit 数字1 数字2  :从数字1行开始,显示数字2个行

多表查询

连表操作
	两个表拼接在一起 然后单表查询 on 指定两个表拼接的依据 那个字段相等
	inner join 内连接
	left join 左连接
	right join 右连接
	select * from emp inner join dep on emp.dep_id = dep.id;
子查询
	一条sql语句的查询结果用于另一条sql语句的条件
	#分布操作 先干这个 在干那个

可视化软件使用

能够充当数据库客户端的可视化软件其实也有很多
	操作MySQL最为方便的当属Navicat(收费 破解版)
   
"""该软件底层操作其实还是SQL语句"""
1.连接数据库
2.查看数据库 表 记录
3.创建数据库 表 记录
4.设计表
5.添加外键(还支持修改SQL)
6.逆向数据库到模型
7.转储SQL文件

今日内容概要

多表查询练习

python操作mysql

基于python与mysql实现用户注册登录

今日内容详细

多表查询练习

-- 7、 查询没有报李平老师课的学生姓名
#需要老师表 课程表 成绩表 学生表
#先找李平老师课程id
-- select course.cid from teacher INNER JOIN course on teacher.tid=course.teacher_id WHERE teacher.tname='李平老师'
#通过课程id去成绩表找上了李平老师课程的同学id

-- select distinct student_id from score where course_id  in (select course.cid from teacher INNER JOIN course on teacher.tid=course.teacher_id WHERE teacher.tname='李平老师') 

#通过id 去找没有



-- 8、 查询没有同时选修物理课程和体育课程的学生姓名
#需要三张表
#先找物理课和体育课程的课程id
-- select cid from course WHERE cname in ('物理','体育')

#在成绩表找有 物理课程和体育课程学生的id

-- select student_id as a1 from score WHERE course_id in (select cid from course WHERE cname in ('物理','体育')) GROUP BY student_id having COUNT(course_id)=1

-- select sname from student where sid in (select student_id as a1 from score WHERE course_id in (select cid from course WHERE cname in ('物理','体育')) GROUP BY student_id having COUNT(course_id)=1
-- )
-- 
-- 9、 查询挂科超过两门(包括两门)的学生姓名和班级
#两张表

#先找挂科超过两门的学生id 

-- select student_id from score where num <60 GROUP BY student_id HAVING count(num)>=2



#通过班级id 找对应班级
select student.sname,class.caption from class INNER JOIN student on student.class_id=class.cid where student.sid in (select student_id from score where num <60 GROUP BY student_id HAVING count(num)>=2)

python代码操作mysql

python  也叫做 胶水语言、调包侠(贬义词>>>褒义词)
python厉害的是他的模块、软件

#python代码操作mysql 主要使用了一个叫做 pymysql的模块
import pymysql  #导入pymysql模块


#定义一个连接对象
conn=pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    charset='utf8',          #这里不能写utf-8   语法规范
    database='db5_1'
)


#定义一个游标 类似于cmd mysql 里面等你输入sql语句的命令行 (里面的保证了cursor.fetchall 获取的是字典)
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
#定义sql语句
sql="select * from userinfo"
#执行sql语句
aa=cursor.execute(sql)  #返回值是受影响的行数 execute 执行sql语句

print(aa)
#获取执行结果 是服务端返回给我们的结果 再进行二次过滤,获取全部 或者一行或者几行 取文件是根据光标取得 读取一次光标移动一次
cursor.scroll(1,'relative') #相对当前位置移动一格 光标在1 获取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值