mysql高阶语句

目录

1 子查询

2 exists用来判断子查询的结果是否为空

 3 mysql的视图

4 创建多张表的视图

5总结


1 子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
子语句可以与主语句所查询的表相同,也可以是不同表

多表查询

mysql高阶语句_第1张图片 mysql高阶语句_第2张图片

 两张表关联查询关键是关联词id

mysql高阶语句_第3张图片

 子查询不仅可以在select语句中使用,在inert ,update ,delete中同样适用在查询时可以多层嵌套.

mysql高阶语句_第4张图片mysql高阶语句_第5张图片

 mysql高阶语句_第6张图片

 mysql高阶语句_第7张图片

2 exists用来判断子查询的结果是否为空

mysql高阶语句_第8张图片

 将查询的结果作为一张表查询时就需要用到别名了

mysql高阶语句_第9张图片

 3 mysql的视图

数据库中的虚拟表,虚拟表不包含真实数据,只是做了真实数据的映射

视图可以理解为镜花水月 可以解决高并发的问题

mysql高阶语句_第10张图片

 mysql高阶语句_第11张图片

4 创建多张表的视图

mysql高阶语句_第12张图片


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;

你可能感兴趣的:(mysql,数据库)