学号(sno) | 姓名(sname) | 性别(ssex) | 年龄(sage) | 所在系(sdept) |
---|---|---|---|---|
001 002 003 | 孟星 冷燕 王一 | 男 女 男 | 20 19 21 | a a c |
SQL语句执行顺序:
(8)SELECT (9)DISTINCT (11)<Top Num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2) ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
(1).FROM 子句, 组装来自不同数据源的数据
(2).WHERE 子句, 基于指定的条件对记录进行筛选
(3).GROUP BY 子句, 将数据划分为多个分组
(4).使用聚合函数进行计算
(5).使用 HAVING 子句筛选分组
(6).计算所有的表达式
(7).使用 ORDER BY 对结果集进行排序
SQL查询的一般形式:
SELECT [ALL|DISTINCT]目标列1或其表达式,目标列2或其表达式 ....
FROM 表名1,表名2 ....
WHERE 条件表达式
GROUP BY 列名 HAVING 条件表达式
ORDER BY 列名 ASC或DESC
谓词:
比较:=, >=, <=, !=, <>, !<, !>, NOT+左边的运算符
范围:BETWEEN AND, NOT BETWEEN AND
集合:IN, NOT IN
字符匹配:LIKE,NOT LIKE
空值:IS NULL,IS NOT NULL
多条件:AND OR NOT
all:
指查询得到所有行,默认值
distinct:
与all相对,去掉得到的重复的行
like:
having:
因SQL语句中WHERE 关键字无法与合计函数一起使用,所以增加 HAVING 子句来使用;
distinct:
关键词 DISTINCT 用于返回唯一不同的值,排除重复行
count:
计数函数,参数一般是列名,count(参数),得到的结果是行数
exist:
EXISTS语法并没有说哪个字段落在了子查寻的结果中,而是说exists后面的语句执行的结果是不是有记录,只要有记录,则主查询语句就成立。它代表‘存在’,用来引领嵌套查询的子查询,它不返回任何数据,只产生逻辑真值‘true’与逻辑假值‘False’。由EXISTS引出的子查询,其目标列表达式通常都用*(用null也可以),因为带有EXISTS的子查询只返回真值或假值,给出列名没有实际意义。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
关系表:二维表格,表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。
码 :一个字段或几个字段组合的值可唯一标志其对应记录,则称该字段或字段组合为码。
关系(Relation):一个关系对应通常说的一张表
元组(Tuple):表中的一行即为一个元组
属性(Attribute):表中的一列