数据库基础——SQL语言

158 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情

数据操纵

数据查询

  • 查询语句是数据库使用中最基本和最重要的语句之一,其功能是从数据库中检索满足条件的数据;
  • 数据源可以是一张表,也可以是多张表或视图;
  • 查询结果是关系。
  • 语句格式 SELECT [ALL|DISTINCT] <目标列表达式>

image.png

简单查询

仅涉及一个表的查询称为简单查询。

  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子句的<目标列表达式>可以为: 算术表达式、常量、函数、列别名
      • [例4] 查全体学生的姓名及其出生年份。
      • SELECT Sname,2021-Sage FROM Student

改变列标题

  • 语法: 列名|表达式[AS ]列别名或:列别名一列名|表达式

例:

SELECT Sname姓名,2021-Sage AS出生年份
FROM Student
  1. 选择表中若干行
    • [例]查询选修了课程的学生学号。
    • 解1:SELECT Sno FROM SC 等价于: SELECT ALL Sno FROM SC • 结果中有重复的行。
    • 消除取值重复的行
      • 指定DISTINCT关键词,去掉表中重复的行
      • 查询选修了课程的学生学号。
      • SELECT DISTINCT Sno FROM SC
      • 如果没有指定DISTINCT关键词,则缺省为ALL
    • 查询满足条件的元组:WHERE子句

image.png 空值(NULL)在数据库中有特殊的含义,它表示不确定的值判断某个值是否为NULL值,不能使用普通的比较运算符(=、等),而只能使用专门的判断NULL值的子句来完成判断。

取值为空的语句格式为:列名IS NULL

判断取值不为空的语句格式为:列名IS NOTNULL

  • 逻辑运算符:AND和 OR来联结多个查询条件
    • AND的优先级高于OR
    • 可以用括号改变优先级
  1. ORDER BY子句
  • ORDER BY<列名>[ASC | DESC ][,<列名>...]
    • 可以按一个或多个属性列排序
    • 升序:ASC;降序:DESC;缺省值为升序
  • 当排序列含空值时
    • ASC:排序列为空值的元组最先显示
    • DESC:排序列为空值的元组最后显示

*用TOP限制结果集

在使用SELECT语句时,有时只希望列出结果集中的前几行结果,可用TOP谓词来限制输出结果。格式:Top n [ percent ] [with ties]

  1. 聚集函数

也称为集合函数或聚合函数、计算函数, 其作用是对一组值进行计算并返回一个单值。SQL提 供的聚合函数有:

  • COUNT( * ):统计表中元组个数;
  • COUNT( <列名> ):统计本列列值个数;
  • SUM( <列名> ):计算列值总和;
  • AVG( <列名> ):计算列值平均值;
  • MAX( <列名> ):求列值最大值;
  • MIN( <列名> ):求列值最小值。
  • 上述函数中除COUNT(*)外,其他函数在计算过程 中均忽略NULL值。

这篇讲到的都是一些上机实操时要用到的语法,但是实在有太多这一篇还说不完,后面还会接力的