目录
1 子查询
子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
子语句可以与主语句所查询的表相同,也可以是不同表
多表查询
两张表关联查询关键是关联词id
子查询不仅可以在select语句中使用,在inert ,update ,delete中同样适用在查询时可以多层嵌套.
2 exists用来判断子查询的结果是否为空
将查询的结果作为一张表查询时就需要用到别名了
3 mysql的视图
数据库中的虚拟表,虚拟表不包含真实数据,只是做了真实数据的映射
视图可以理解为镜花水月 可以解决高并发的问题
4 创建多张表的视图
5总结
子查询把主表和从表用in或者not in来连接起来把从表查询的数值通过相同的字段传输给主表
select name,score from info where id in (select id from info where score >80);
也可以用update select delete insert
select name,score from info where id in (select id from info where score>80);
insert into t1 select * from info where id in (select id from info);
update info set score=50 where id in (select * from ky30 where id=2);
delete from info where id in (select id where score>80);
EXISTS 这个关键字在子查询时,主要用于判断子查询的结果集是否为空。
select count(*) from info where exists(select id from info where score=80);
视图就是解决高并发是一个镜花水月
视图的创建
create view v_info(id,name,score,age) as select info.id,info.name,info.score,test01.age from info,test01 where info.name=test01.name;