数据库4-SQL语言-查询语句

单表查询

在这里插入图片描述
 SELECT:投影运算(All所有是默认的)后一般跟分组属性+集函数, DISTINCT去掉重复列。0
 如查找年龄时有多个年龄可用DISTINCT去掉年龄列中重复的

TOP输出前几如(TOP 20 percent:输出前20%FROM<来自于哪>
WHERE<元组选择条件>

SELECT语句

SELECT:投影运算(All所有是默认的)后一般跟分组属性+集函数,DISTINCT去掉重复列
如查找年龄时有多个年龄可用DISTINCT去掉年龄列中重复的
TOP输出前几如(TOP 20 percent:输出前20%)

在这里插入图片描述

WHERE子句

<>是不等于的意思
在这里插入图片描述
判断是否为空:IS NULL,不能用等于
在这里插入图片描述

在这里插入图片描述

模糊查询可用字符匹配,如下
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 当匹配串中有下划线,使用换码字符,在这个下划线前加入\且句子后加ESCAPE‘\’

在这里插入图片描述

  • is NULL中的is不能用=替代,AND优先级高于OR可用括号

在这里插入图片描述

  • 两个条件关系为与

对查询结果排序(ORDER BY句)

  • 用ORDER BY对选择结果排序{ASC为升序,DESC为降序(默认升序)}
    在这里插入图片描述

在这里插入图片描述

聚集函数及GROUP BY子句

在这里插入图片描述
DISTINCT:去掉重复行

在这里插入图片描述
在这里插入图片描述

  • 聚集函数作用于每组而不作用于全体
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
GROUP BY:对查询结果按指定列值分组,将属性列值相等的为一个组,通常会在每组中作用聚集函数
HAVING:对分组后进行选择,满足条件的输出。不能用在WHERE中
WHERE作用于记录,HAVING作用于分组

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里是引用
as:(修改列名),或直接加别名在后

在这里插入图片描述
在这里插入图片描述

连接查询

内 连 接 ( I N N E R    J O I N ) { ① 等 值 ② 自 然 ( 去 掉 重 复 列 ) 内连接(INNER~~JOIN)\begin{cases} ①等值\\ ②自然(去掉重复列)\end{cases} (INNER  JOIN){()
外 连 接 ( O U T E R    J O I N ) 保 留 某 表 非 匹 配 连 接 { ① 左 外 ② 右 外 ③ 全 外 外连接(OUTER~~JOIN)保留某表非匹配连接\begin{cases} ①左外\\ ②右外\\③全外\end{cases} (OUTER  JOIN)
自 连 接 S E L F    J O I N 自连接SELF~~JOIN SELF  JOIN
交 叉 连 接 C R O S S    J O I N 即 笛 卡 尔 积 运 算 交叉连接CROSS~~JOIN即笛卡尔积运算 CROSS  JOIN

两种语法形式:ANSI和SQL Server形式(建议用ANSI各种版本通用)
在这里插入图片描述
在这里插入图片描述

内连接(INNER JOIN)

普通连接(内连接)操作只输出满足连接条件的元组

(1)等值连接

字段类型必须可比
使用“=”

在这里插入图片描述
在这里插入图片描述

(2)自然连接

等值连接连接的基础上去掉重复目标列(SELECT后跟具体属性),如上图中读者卡号出现了两次

在这里插入图片描述
如上仅出现读者表的类别编号

外连接(OUTER JOIN)

外连接以指定表为连接主体,将主体表中不满足连接条件的元组一并输出
在这里插入图片描述

(1)左外连接(LEFT OUTER JOIN)

保留左表中的非匹配元组,及右表中符合条件的元组,其中不匹配的分量在查询结果中显示为NULL。
左、右外连接中的OUTER关键字可以省略

在这里插入图片描述

(2)右外连接(RIGHT OUTER JOIN)

保留右表中的非匹配元组,及左表中符合条件的元组

(3)全外连接(FULL OUTER JOIN)

查询结果中查询匹配和非匹配的所有记录,是左外连接和右外连接的组合。其中满足条件的记录仅显示一次,不满足条件的分量显示为NULL

自连接(SELF JOIN)

自己与自己连接,一个表内自身的连接操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

交叉连接(CROSS JOIN)

即关系代数的笛卡尔积运算,去掉ON之后的连接条件,则为交叉连接

嵌套查询

将一个查询块嵌在另一个的WHERE/HAVING中,排序语句ORDER BY句不能嵌套在里面
①不相关子查询:由里向外逐层处理
②相关子查询:取外层元组依次放到内层查,若满足条件为真,则返回到结果表中(从内到外)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
父查询将表中每一条记录拿去与子查询结果比较,子查询返回True,父查询保留该行,子查询返回False父查询删除该行。父查询最后将得到的结果返回输出
子查询中,在得到的SC表中每一条记录依次查询判断其后的WHERE字句是否成立,成立返回True,否则返回False。

子查询的谓词

  • 带有比较运算符的子查询:
    格式:<字段名><比较符>(<子查询>)
  • 带有IN谓词的子查询
    格式:<字段名>[NOT] IN (<子查询>)
  • 带有ANY或ALL谓词的子查询
  • 带有EXISTS谓词的子查询

带有IN谓词查询的例子在这里插入图片描述

使用ALL、ALL运算符的例子
在这里插入图片描述

ALL、ANY与集函数
在这里插入图片描述
[NOT] EXISTS(<子查询>)
EXISTS的查询在WHERE中一定要带上等于的条件,如下看例题
在这里插入图片描述

例子
在这里插入图片描述
在这里插入图片描述

例子在这里插入图片描述
在这里插入图片描述

例子在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

例题
在这里插入图片描述
在这里插入图片描述

集合查询

将多个SElECT语句的查询结果再进行集合运算。
SQL的组合查询运算符有UNION(并操作)、INTERSECT(交操作)、EXCEPT(差操作)三种。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

综合练习实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值