开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情
数据操纵
数据查询
- 查询语句是数据库使用中最基本和最重要的语句之一,其功能是从数据库中检索满足条件的数据;
- 数据源可以是一张表,也可以是多张表或视图;
- 查询结果是关系。
- 语句格式
SELECT [ALL|DISTINCT] <目标列表达式>
简单查询
仅涉及一个表的查询称为简单查询。
- 选择表中若干列
- 查询指定列
- [例1] 查询全体学生的学号与姓名。
解: SELECT Sno,Sname FROM Student- [例2] 查询全体学生的姓名、学号、所在系。
解: SELECT Sname,Sno,Sdept FROM Student
- 查询所有列
- 在SELECT关键字后面列出所有列名
- 将<目标列表达式>指定为 *
- [例3] 查询全体学生的详细记录。
解: SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student
- 查询经过计算的列
- SELECT子句的<目标列表达式>可以为: 算术表达式、常量、函数、列别名
- [例4] 查全体学生的姓名及其出生年份。
SELECT Sname,2021-Sage FROM Student
- 查询指定列
改变列标题
- 语法:
列名|表达式[AS ]列别名或:列别名一列名|表达式
例:
SELECT Sname姓名,2021-Sage AS出生年份
FROM Student
- 选择表中若干行
- [例]查询选修了课程的学生学号。
解1:SELECT Sno FROM SC 等价于: SELECT ALL Sno FROM SC • 结果中有重复的行。- 消除取值重复的行
- 指定DISTINCT关键词,去掉表中重复的行
- 查询选修了课程的学生学号。
SELECT DISTINCT Sno FROM SC- 如果没有指定DISTINCT关键词,则缺省为ALL
- 查询满足条件的元组:WHERE子句
空值(NULL)在数据库中有特殊的含义,它表示不确定的值判断某个值是否为NULL值,不能使用普通的比较运算符(=、等),而只能使用专门的判断NULL值的子句来完成判断。
取值为空的语句格式为:列名IS NULL
判断取值不为空的语句格式为:列名IS NOTNULL
- 逻辑运算符:AND和 OR来联结多个查询条件
- AND的优先级高于OR
- 可以用括号改变优先级
- ORDER BY子句
- ORDER BY<列名>[ASC | DESC ][,<列名>...]
- 可以按一个或多个属性列排序
- 升序:ASC;降序:DESC;缺省值为升序
- 当排序列含空值时
- ASC:排序列为空值的元组最先显示
- DESC:排序列为空值的元组最后显示
*用TOP限制结果集
在使用SELECT语句时,有时只希望列出结果集中的前几行结果,可用TOP谓词来限制输出结果。格式:Top n [ percent ] [with ties]
- 聚集函数
也称为集合函数或聚合函数、计算函数, 其作用是对一组值进行计算并返回一个单值。SQL提 供的聚合函数有:
- COUNT( * ):统计表中元组个数;
- COUNT( <列名> ):统计本列列值个数;
- SUM( <列名> ):计算列值总和;
- AVG( <列名> ):计算列值平均值;
- MAX( <列名> ):求列值最大值;
- MIN( <列名> ):求列值最小值。
- 上述函数中除COUNT(*)外,其他函数在计算过程 中均忽略NULL值。
这篇讲到的都是一些上机实操时要用到的语法,但是实在有太多这一篇还说不完,后面还会接力的