SQL Server 基础知识之 DML应用,表连接的select语句

实际查询数据,可能在多个表中。有内部连接,和外部连接。
SQL Server 基础知识之 DML应用,表连接的select语句
内部连接语法
核心:找到两个表中相同的部分,就是where后‘’ x = x‘’
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
示例:
SQL Server 基础知识之 DML应用,表连接的select语句
第2种 查询方法:
两点注意:A. 才用 inner join on 的语法
B.同一个表的话,可以用,逗号 省略表名,如学生信息.姓名,学号,性别
SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
示例代码:
SQL Server 基础知识之 DML应用,表连接的select语句
使用别名方式查询
from xx as x,xxx as xxxx

SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
但是,最好将名称写完整。就是加上表名。使用别名的话,加上别名。如下图的划线部分
SQL Server 基础知识之 DML应用,表连接的select语句

SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
上图, select后用的是简写方式
from后用的是别名方式 inner join on是内部连接
(注意内部连接,只有在匹配到相同的数据时才做输出)
and 条件
order by 排序 desc降序

做个练习:
SQL Server 基础知识之 DML应用,表连接的select语句
代码如下:
SQL Server 基础知识之 DML应用,表连接的select语句
使用外部连接
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
注意:
左表: 先写的表
右表:后写的表

左外连接
LEFT OUTER JOIN
SQL Server 基础知识之 DML应用,表连接的select语句
案例:
SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
学生信息 这个表就是左表
左表都显,右表没有的补null。。。

右外连接

SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
代码示例
类似上图左外部连接,只要将right改成left即可
SQL Server 基础知识之 DML应用,表连接的select语句
完全连接
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
结果如下:
SQL Server 基础知识之 DML应用,表连接的select语句
子查询
其实就是 where子句的条件
用括号()括起来
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
代码示例:
先看这个
SQL Server 基础知识之 DML应用,表连接的select语句
再看这个:
SQL Server 基础知识之 DML应用,表连接的select语句
第一个图中的9512101,9512102,9512103就是第二个图中()里的。只不过第二个图用了嵌套
SQL Server 基础知识之 DML应用,表连接的select语句这个题剖析一下:
先写上第一个条件 where cno = ‘c02’
然后写上第二个条件 and grade > 平均成绩
(这里要做个聚合函数求均值,聚合又不能放在where后,只好做个子查询喽)
用括号括起来 (select AVG(grade)
from sc
where cno =‘c02’ )
完整如下:
SQL Server 基础知识之 DML应用,表连接的select语句SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
SQL Server 基础知识之 DML应用,表连接的select语句
select 语句 到此结束