【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
📋 前言
⏰诗赋清音:墨激雷霆势,心随碧波飘。山河承豪情滔天,梦御风云志浩荡。
🎉欢迎大家关注🔍点赞👍收藏⭐️留言📝
🔔作者留言:
欢迎来到我的【SQL Server】魔法学堂!这里是探索数据库世界的秘境,我的学习笔记博客为你打开SQL Server的魔法之门。在这里,我不仅分享SQL Server的基础知识和高级技巧,还有着涉猎实用技术和项目经验的魔法药水。无论你是新手还是数据库巫师,这个魔法堂会为你施展出奇幻的学习魔法,帮助你在SQL Server的魔法森林中踏上一场奇妙之旅。准备好了吗?跟着我,让我们一起编织属于自己的SQL Server魔法代码!
目录
📋 前言
🌌第三章 关系数据库标准语言SQL
🌍1. 数据查询
🪐1.1 单表查询:查询仅涉及一个表
🌕1. 选择表中的若干列
🌕2. 选择表中的若干元组
🌕3. ORDER BY子句
🌕4. 聚集函数
🌕5. GROUP BY子句
🪐1.2 连接查询:同时涉及两个以上的表的查询
🌕1. 等值与非等值连接查询
🌕2. 自身连接
🌕3. 外连接
🌕4. 多表连接:两个以上的表进行连接
🪐1.3 嵌套查询
🌕1. 带有IN谓词的子查询
🌕2. 带有比较运算符的子查询
🌕3.带有ANY(SOME)或ALL谓词的子查询
🌕4.带有EXISTS谓词的子查询
🪐1.4 集合查询
🪐1.5基于派生表的查询
🪐1.6 Select语句的一般形式
🌍2. 数据修改
🪐2.1 插入数据
🪐2.2 修改数据
🌍3. 数据更新
🌍4. 空值的处理
📝总结
🌌第三章 关系数据库标准语言SQL
🌍1. 数据查询
语句格式
SELECT [ALL|DISTINCT] [,] …
FROM [, ]…|(SELECT 语句)
[AS]
[ WHERE ]
[ GROUP BY [ HAVING ] ]
[ ORDER BY [ ASC|DESC ] ];
说明:
- SELECT子句:指定要显示的属性列
- FROM子句:指定查询对象(基本表或视图)
- WHERE子句:指定查询条件
- GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。
- HAVING短语:只有满足指定条件的组才予以输出
- ORDER BY子句:对查询结果表按指定列值的升序或降序排序
🪐1.1 单表查询:查询仅涉及一个表
🌕1. 选择表中的若干列
查询指定列:
【1】查询全体学生的学号与姓名。
SELECT Sno,Sname
FROM Student;
【2】查询全体学生的姓名、学号、所在系。SELECT Sname,Sno,Sdept
FROM Student;
查询全部列:在SELECT关键字后面列出所有列名 ,将指定为 *
【3】查询全体学生的详细记录
SELECT Sno,Sname,Ssex,Sage,Sdept
FROM Student;
或
SELECT *
FROM Student;
查询经过计算的值 :SELECT子句的不仅可为表中的属性列,也可是表达式
【4】查全体学生的姓名及其出生年份。SELECT Sname,2014-Sage /*假设当时为2014年*/
FROM Student;
输出结果:
Sname 2014-Sage
李勇 1994
刘晨 1995
王敏 1996
张立 1995
【5】查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名。
SELECT Sname,'Year of Birth: ',2014-Sage,LOWER(Sdept)
FROM Student;
输出结果:
Sname 'Year of Birth:' 2014-Sage LOWER(Sdept)
李勇 Year of Birth: 1994 cs
刘晨 Year of Birth: 1995 cs
王敏 Year of Birth: 1996 ma
张立 Year of Birth: 1995 is
【6】使用列别名改变查询结果的列标题:
SELECT Sname NAME,'Year of Birth:' BIRTH,
2014-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT
FROM Student;
输出结果:
NAME BIRTH BIRTHDAY DEPARTMENT
李勇 Year of Birth: 1994 cs
刘晨 Year of Birth: 1995 cs
王敏 Year of Birth: 1996 ma
张立 Year of Birth: 1995 is
🌕2. 选择表中的若干元组
消除取值重复的行,如果没有指定DISTINCT关键词,则缺省为ALL
【1】查询选修了课程的学生学号。SELECT Sno FROM SC;
等价于:
SELECT ALL Sno FROM SC;
执行上面的SELECT语句后,结果为:
Sno
201215121
201215121
201215121
201215122
201215122
指定DISTINCT关键词,去掉表中重复的行
SELECT DISTINCT Sno
FROM SC;
执行结果:
Sno
201215121
201215122
【1】查询计算机科学系全体学生的名单。
SELECT Sname
FROM Student
WHERE Sdept=‘CS’;
【1】查询所有年龄在20岁以下的学生姓名及其年龄。SELECT Sname,Sage
FROM Student
WHERE Sage 【1】查询考试成绩有不及格的学生的学号。
SELECT DISTINCT Sn
FROM SC
WHERE Grade=88;
③执行这个查询,得到
(201215121,1)
(201215121,3)
然后外层查询取出下一个元组重复上述①至③步骤,直到外层的SC元组全部处理完。结果:
(201215121,1)
(201215121,3)
(201215122,2)
🌕3.带有ANY(SOME)或ALL谓词的子查询
使用ANY或ALL谓词时必须同时使用比较运算
语义为:
- > ANY 大于子查询结果中的某个值
- > ALL 大于子查询结果中的所有值
- >= ANY 大于等于子查询结果中的某个值
- >= ALL 大于等于子查询结果中的所有值
还没有评论,来说两句吧...