11.子查询和嵌套查询
子查询
where(这个值是计算出来的)
本质:在where子句中嵌套一个子查询语句
使用连接查询
SELECT `score`,`tid`,`tname`
FROM `sc` s
RIGHT JOIN `course` c
ON s.sid=c.sid
INNER JOIN `teacher` t
ON c.`cname`=t.`cname`
WHERE tid >2
ORDER BY `score` DESC

使用子查询(由里即外)
查询所有使用语文科目的学生id
SELECT `sid`,`cname`,`cid` FROM `course` WHERE `cname`=(
SELECT `cname` FROM `course` WHERE `cname`='语文'

分数不小于80分的学生学号和姓名
=================================================
嵌套查询
group by 分组
having 过滤
===============================
MD5
主要增强算法复杂度和不可逆性 具体的MD5值是一样的 MD5破解网站的原理是背后有一个字典
CREATE TABLE `testmd5`(
`id` INT(4) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id` )
)ENGINE=INNODB DEFAULT CHARSET=utf8
--明文密码
INSERT INTO testmd5 VALUES(1,'chris','123456'),(2,'jack','133456'),(3,'tony','136456')
--加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1
--插入的时候加密
NSERT INTO testmd5 VALUES(1,'xiaoming',MD5('123456'))
--如何校验:将用户传入进来的密码,进行MD5加密,然后对比加密后的值

======================
select 总结
select 去重 要查询的字段 from 表
xxx join 要连接的表 on 等值判断
where (具体的值或者查询语句)
group by (通过哪个字段来分组)
having(过滤分组后的信息)
order by 通过哪个字段排序 升序和降序ASC/DESC
limit startindex,pagesize

浙公网安备 33010602011771号