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

posted @ 2021-05-24 16:21  白语  阅读(374)  评论(0)    收藏  举报