【数据库系统概论】第3章-关系数据库标准语言SQL(2)
2023-12-24 16:35:34
3.4 数据查询
- 格式
SQL执行顺序
3.4.1 单表查询
- 基础查询
select * from student
// 不重复
select distinct sname from student
// 命名
select s.sname 姓名 from student s
select sname from student where sage > 20
// 等价 or
select sname from student where sage in (21,22)
select sname from student where sage >= 21 and sage <= 23
// [] 闭区间
select sname from student where sage between 21 and 23
select sname from student where sage < 21 or sage > 23
select sname from student where sage not between 21 and 23
// 模糊查询
// 姓马的
select sname from student where sname like '马%'
// 马?梅的
select sname from student where sname like '马_梅'
// 不叫马冬梅的
select sname from student where sname not like '马冬梅'
// 'DB_'开头的,定义转移字符
select sage from student where sname like 'DB\_%' escape '\'
// 涉及空值的
select sname from student where address is null
select sname from student where address is not null
- order by
// order by, 默认asc
select sname from studnent order by age
// 年龄相同按学号升序排列
select sname from studnent order by age desc, sno asc
- 聚集函数
搭配 distinct 食用会更佳
- group by
需要强调的一点是:select的字段除聚集函数外,必须在group by中出现。而且聚集函数不能作为where子句的条件
要先通过group by 分组后再用Having + avg()
3.4.2 连接查询
- 等值连接与非等值连接
- 等值连接:where中用 ’ = '过滤笛卡尔积结果
例题:
- 自身连接
- 外连接
格式:
select … from aleft join
bon
连接条件,不用where作为介词
- 题目
- 多表连接
两个以上的表进行连接
3.4.3嵌套查询
-
子查询基础
-
不相关子查询
-
带in谓词的子查询
-
带ANY(SOME) 或ALL的子查询
小于任意一个即可。
-
带EXISTS谓词的子查询
- 题目
3.4.4 集合查询
3.4.5 基于派生表的查询
3.4.6 select 语句的目标列
文章来源:https://blog.csdn.net/qq_61832249/article/details/135179363
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!