SQL数据查询语言
基本的select
使用
select
使用select
可以从一个或多个表中选取一特定的行和列,并将结果存放到临时的表中。
许多子句以及它们的组合都可以用于select
语句中:
from
:指定从哪些表中获取数据from
子句在select
语句中是可选项,它出现在语句的表达式之后,而表达式是在select
关键字后面出现。from
子句指定语句要处理的表。非限定表名
from <table-name>
限定的表名
from <database-name>.<table-name>
表的别名
在SQL语句里,在
from
子句里引用的表可以给定一个临时的名称,该名称叫做表的别名。
distinct
:消除重复的记录行如果查询的结果里包含重复的记录,该重复记录要被删除以生成每行都是唯一结果集。为了达到这个目的,可在
select
关键字后添加distinct
关键字。select distinct Hobby from Student_info;
在指定的列里,
distinct
将所有的NULL
值当作相同的值。where
:只返回满足特定条件(也叫过滤器)的记录行单关系查询:
SELECT SName FROM Student_Info;
多关系查询:
order by
:按照表达式列表排序记录limit
:返回特定部分的数据,而不是所有的结果集
附加基本运算
更名运算
为查询结果重新取属性名称
select old-name as new-name from ...
示例:从学生信息表中查询学生兴趣爱好,并将查询结果的属性命名为“兴趣”。
select Hobby as "兴趣" from Student_info;
字符串运算(查询通配符)
关键词like
可以看作谓词,用以进行字符串的匹配,格式如下:
[not]like '<匹配串>' [escape '<换码字符>' ]
表示查找指定属性列的值与匹配串相匹配的元组。匹配串可以是一个完整的字符串,也可以含有通配符“%”和“-”。
匹配串设置方式是:
通配字符百分号%:表示可以与任意长的字符匹配。
例如a%b表示以a开头,以b 结尾的任意长度的字符串。像acb ,affrrd,ab等。
通配字符下划线_:表示可以与单个的任意字符相配。
例如a_b表示以a开头,以b 结尾的长度为3的任意字符串。像acb,afb ,abb等。
示例:从课程信息表中查询课程名含有“软件”的所有课程名称。
其他运算符
MySQL支持许多不同类型的运算符,这依赖于操作数的数据类型,或操作数与运算符处理的值的数据类型。运算、比较、逻辑
示例:从课程信息表中查询学时大于40,学分大于2学分的课程名称
示例:从学生信息表中查询出生日期在1990至2022年的所有学生信息
使用order by
order by
如果有必要让输出记录按某一特定的顺序返回,可以使用order by
子句以显示如何排序结果集。
select CName from Course_Info order by CName;
可以在order by
表达式后使用asc
或desc
来明确指定记录按升序或降序排列。
还可以用多个表达式同时排序,每个表达式有自己的排列顺序。
使用limit
limit
当一个查询返回许多记录行时,有必要通过增加limit
子句来限定只显示部分记录。
limit
子句可以采用下一个或两个参数:
limit row_count
limit skip_count, row_count
示例:查询课程信息表中前3个课程名称, 以及第3-5个课程名称
它常见的用处是获取包含某个特定列的最小或最大值的行
Last updated