多测师课堂008_mysql之多表(002)高级讲师肖sir

什么是多表关联查询 ?
有时候查询的数据需要从2个表或者更多的表中提取,这个时候就需要使用多表关联查询多表查询分1.内连接2.左连接3.右连接 4、全外连接

1、笛卡尔积查询
两张表相乘得到的结果:比如,左边有m条记录,右边有n条记录,查询出来的结果就是m*n,这种查询包含大量的错误结果,通常不会使用这种查询
select * from 表1,表2 ;
格式:select * from dept,emp ;
2、内连接 (普通内连接,隐藏内连接)
查询两个表共有的关联的数据
普通内连接:
select * from dept inner join emp on dept.dept1=emp.dept2;
隐藏内连接:
select * FROM dept,emp where dept.dept1=emp.dept2 ;
左连接:
select * from dept left join emp on dept.dept1=emp.dept2 ;
右连接:
select * from dept right join emp on dept.dept1=emp.dept2 ;

左表独有的数据:
select * from dept left join emp on dept.dept1=emp.dept2 where name is null;

右表独有的数据:
select * from dept right join emp on dept.dept1=emp.dept2 where name is null;

左表和右表独有的数据:union
select * from dept left join emp on dept.dept1=emp.dept2 where name is null
union
select * from dept right join emp on dept.dept1=emp.dept2 where name is null;

全外连接:

方法一:内连接 左右独有

select * FROM dept,emp where dept.dept1=emp.dept2
UNION
select * from dept left join emp on dept.dept1=emp.dept2 where name is null
union
select * from dept right join emp on dept.dept1=emp.dept2 where name is null;
方法二:左连接 右独有数据

select * from dept left join emp on dept.dept1=emp.dept2
union
select * from dept right join emp on dept.dept1=emp.dept2 where name is nul
方法三:右连接 左独有的数据

子查询:
什么是子查询?一个查询嵌套另一个查询子查询分
1. 标量子查询(返回一个值)
标量子查询把一个sql执行返回的一个值,作为另一个sql的一个条件
得到的结果是一行一列,一般出现在where之后

注意点:标量子查询允许使用的符号
=,!=,> ,>=,=<,<
select * from emp where dept2=(

select dept1 from dept where dept_name="财务" ) ;
2. 列子查询(返回一个列)
定义:返回的是一列值

注意点:通常在where 条件的后使用,使用的是in 或not in ,不允许使用=,>,<
例题:
求出工资>2000部门

select DISTINCT(dept2) from emp where incoming >5000 ;

select dept_name from dept where dept1 in (select DISTINCT(dept2) from emp where incoming >5000 )

select dept_name from dept where dept1 in (select DISTINCT(dept2) from emp where incoming >5000 )
3. 行子查询(返回一行多列)
指子查询返回的结果集是一行多列
一般出现在where后

select age ,dept2,incoming from emp1 where name="牛十
select * from emp1 where (age,dept2) =any (select age ,dept2 from emp1 where name="牛十");

4. 表子查询(返回一个表) from的后面指子查询返回的结果是一个表(多行多列)select dept2,max(incoming) from emp group by dept2

select dept_name ,s.c from dept ,( select dept2,max(incoming) c from emp group by dept2) s where dept.dept1=s.dept2 ;

select DISTINCT(dept_name) from dept inner join (select dept2,age from emp where dept2=101 )as s on dept.dept1=s.dept2 ;

注意:临时表 取别名 ,聚合函数取别名 ,

1、带in关键字的子查询

一个查询预计的条件可能落在另一select语句的查询结果中

2、比较运算符的子查询

= ,> ,>,>= ,=<
3、带any关键字的子查询
=any 与 in 等效
与比较运算符联合使用,表示子查询返回的任何值比较为真,则返回真

4、some

5、带all的关键字的字查询
!=all 或者 <>all 与 not in 等效
表示满足所有的条件

6、带exists 关键字的子查询
理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果,来决定主查询的是数据结构
在子查询到记录,则进行外层查询,否则,不执行外层查询
7、合并查询 union 去除重复的记录

union all 不会去除重复的记录

注意:
1、子查询必须放在一对小括号内;
2、“=”是比较运算符,还可以与其他比较运算符一起使用,要求子查询的列只有一个一行一列
3、子查询通常作为where的条件,表子查询一般在from的后面
4、子查询不能包含order by的语句

select a.dept1 from (select * from dept where dept_name="财务" or dept_name="销售")a where dept1>101;

select DISTINCT(dept_name) from dept inner join (select dept2,age from emp where dept2=101 )as s on dept.dept1=s.dept2 ;

mysql 删除表的操作(delete,truncate,drop)

delete:删除整张表

格式:delete from 表名 删除整个表
delete from 表名 where 条件

truncate:删除表的数据

格式:truncate table 表名
例题:truncate table bb

drop:删除表结构和表数据,以及约束,触发器,索引

格式:drop table 表名

区别:
1、执行速度 drop>truncate>delete
2、应用范围:tuncate 只能对table,delete可以是table和view ;
3、表所占的空间
drop 把表占的空间全部释放
delete 删除不会减少表所占的空间
turncate 删除会恢复到初始大小
4、tuncate 删除后不能恢复数据,delect删除数据可以恢复

来源:https://www.icode9.com/content-2-755701.html

(0)

相关推荐

  • MySQL基础

    数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库?* 用于存储和管理数据的仓库.3. 数据库的特点:1. 持久化存储数据的.其实数据库就是一个文件系统2. ...

  • SQL语句的多表查询方式

    例如:按照department_id查询employees(员工表)和departments(部门表) 的信息. 方式一(通用型):SELECT - FROM - WHERE SELECT e.las ...

  • Oracle数据库-简单代码

    Oracle数据库-简单代码

  • 明师课堂《长方形和正方形的周长》——林灯

    明师 课堂 主持人:史宁中教授认为:"数学模型的构建与应用,是现代数学得以健康发展的重要源泉". 图形的周长模型构建需要学生经历说理的全过程,说理课堂让每个师生成为主动的思考者. ...

  • 活动开展|会昌县北片区小学语文“双师课堂”比赛

    双师课赛展风采,以赛促教共成长 --会昌县北片区小学语文"双师课堂"比赛 春风送暖,是独属于人间四月天的温柔与美好.在这春暖花开的季节,会昌县北片区小学语文"双师课堂&q ...

  • 从双师课堂到三师课堂

    从双师课堂到三师课堂 自留地君原创收录于话题#双师课堂3#联合教学3#技术派教师102 前几天,到一所学校观课,收获良多. 这所学校名叫黄草朗小学,是东莞东坑镇的一所学校,校长叫陈爱华.在走马观花观摩 ...

  • 未来学习下的联合教学、合作教师、双师课堂

    未来学习下的联合教学.合作教师.双师课堂 自留地君原创EduTech自留地收录于话题#焦建利教授:做技术派教师 这些年,双师课堂大热,不仅是各级教育行政部门的工作抓手,而且是许多企业的兵家必争之地. ...

  • 品名师课堂,寻教学本真

    英语名师蒋亚红老师一直我的偶像,她任教高年级英语多年,有过硬的教学基本功,有丰富的教学经验,有独到的教学方法,有精湛的教学艺术.得知我要和她讲同一堂课,内心既庆幸又期待. 周六,我怀着崇敬的心情再次聆 ...

  • “双师课堂”模式的实践及其影响分析

    王勇 "双师课堂"模式界定 任何事物都有其自身的规律,线上教学也必然有其自身的教学规律和教学方法.2月21日,教育部对"停课不停学"有关工作做了文件发布,指出& ...

  • 王勇:“双师课堂”模式的实践及其影响分析

    ​何为"双师课堂"?就是指采用录播或直播教师统一授课与本校任课教师网上辅导相结合方式实施教学.具体地说,在网络直播或录播的时候,实际上是有两种角色在同时进行:课上,班主任和班级任课 ...

  • 【摄影双师课堂】郑壬杰:摄影专题组照是怎样创作的?

    尤金·史密斯<乡村医生>作品节选 你了解摄影专题组照吗? 国内外各类摄影展览和竞赛中,获得优异奖项的作品中从来不缺少组照作品.然而,大多数摄影人都习惯拍摄单幅照片,很少拍组照.不是因为不想 ...

  • 掌门优课不断激活创新因子,借力AI打造智能双师课堂

    近日,以"智联世界 众智成城"为主题的2021世界人工智能大会在沪举办.此次大会围绕"AI赋能城市数字化转型"方向,汇聚世界人工智能领域的前沿成果以及观点.同时 ...