12.2.2查询功能 数据库中最常见的操作是数据查询,也是SQL的 核心。 SL给出了简单而又丰富的查询语句形式,SQL的 查询命令也称作 SELECT命令,它的基本形式由 SELECT-FROM-WHERE查询块组成,多个查询块可以嵌 套执行。 SELECT-SQL的语法格式如下:
12.2.2 查询功能 数据库中最常见的操作是数据查询,也是SQL的 核心。 SQL给出了简单而又丰富的查询语句形式,SQL的 查 询 命 令 也 称 作 SELECT 命 令 , 它 的 基 本 形 式 由 SELECT-FROM-WHERE查询块组成,多个查询块可以嵌 套执行。SELECT-SQL的语法格式如下:
ELECT[ALL| DISTINCT][T0P〈表达式〉] Select表达式》[AS(列名)[,(le表达式)[AS(列 ROM〈表名 [LINNER LEFT [OUTER] RIGHT [OUTER] FULL [OUTER J0IN〈表名〉[0N(联接条件〉]] WERE(联接条件1)[AND〈联接条件2〉..][AND|OR〈筛选 条件).]] [ GROUP BY〈组表达式〉[,〈组表达式〉...]] [HAVING〈筛选条件)] EUNION[ALL]( SELECT1命令)] [ ORDER BY〈关键字表达式)[ ASC DESC][,〈关键字表达式 [ASC上DESC].] 说明: SELECT-S哑L命令的格式包括三个基本子句: SELECT子句、FROM子句、WERE子句,还包括操作子 句: ORDER子句、 GROUP子句、UNI0N子句以及其他 些选项
SELECT [ALL | DISTINCT] [TOP〈表达式〉] 〈Select表达式〉[AS〈列名〉][,〈Select表达式〉[AS〈列 名〉] ...] FROM 〈表名〉 [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN 〈表名〉 [ON〈联接条件〉]] [WHERE〈联接条件1〉[AND〈联接条件2〉...][AND | OR〈筛选 条件〉...]] [GROUP BY〈组表达式〉[,〈组表达式〉...]] [HAVING〈筛选条件〉] [UNION [ALL]〈SELECT命令〉] [ORDER BY〈关键字表达式〉[ASC | DESC] [,〈关键字表达式〉 [ASC | DESC] ...]] 说明:SELECT-SQL命令的格式包括三个基本子句: SELECT子句、FROM子句、WHERE子句,还包括操作子 句:ORDER子句、GROUP子句、UNION子句以及其他一 些选项
1. SELECT子句 SELECT-子句用来指定查询结果中的数据。其中 选项AL表示选出的记录中包括重复记录,这是缺 省值; DISTINCTI则表示选出的记录中不包括重复记录。 选项TOP〈表达式〉表示在符合条件的记录中选取 指定数量或百分比(〈表达式〉)的记录。 选项〈 Select表达式〉[AS〈列名〉]中的 Select 表达式可以是字段名或字段表达式,列名用于指定输 出时使用的列标题,可以不同于字段名。 〈 Select表达式〉用一个号来表示时,指定所有 的字段
1. SELECT子句 SELECT子句用来指定查询结果中的数据。其中: 选项ALL表示选出的记录中包括重复记录,这是缺 省值;DISTINCT则表示选出的记录中不包括重复记录。 选项TOP〈表达式〉表示在符合条件的记录中选取 指定数量或百分比(〈表达式〉)的记录。 选项〈Select表达式〉[AS〈列名〉] 中的Select 表达式可以是字段名或字段表达式,列名用于指定输 出时使用的列标题,可以不同于字段名。 〈Select表达式〉用一个*号来表示时,指定所有 的字段
2.FROM子句 用于指定查询的表与联接类型。其中: J0IN关键字用于联接其左右两个〈表名〉所指定 的表。 INNER LEFT LOUTER RIGHT LOUTERJ FULL[UTER选项指定两表联接时的联接类型,联接 类型有4种,如表12-2所示。其中的 OUTER选项表示外 部联接,即允许满足联接条件的记录,又允许不满足 联接条件的记录。若省略 OUTER选项,效果不变
2. FROM子句 用于指定查询的表与联接类型。其中: JOIN关键字用于联接其左右两个〈表名〉所指定 的表。 INNER | LEFT[OUTER] | RIGHT[OUTER] | FULL[OUTER]选项指定两表联接时的联接类型,联接 类型有4种,如表12-2所示。其中的OUTER选项表示外 部联接,即允许满足联接条件的记录,又允许不满足 联接条件的记录。若省略OUTER选项,效果不变
表12-2联接类型 联接类型 意义 ner Join内部联接有满是联接条件的记录包含在结果中 Left Outer Join(左联左表某记录与右表所有记录比较字段值,若有满足联接 条件的,则产生一个真实值 若都有满足, NULL值的记录。直至右表所有记录都比较完。 Right outer(右有表某记录与左表所有记录比较字段值,若有满足联接 联接) 条件的,则产生一个真实值记录,若都不满足,则产生 个含NULL值的记录。直至右表所有记录都比较完。 I Full Join(完全联接〉先按右联接比较字段值,再按左联接比较字段值。不列 入重复记录。 0N选项用于指定联接条件。 FORCE选项表示严格 按指定的联接条件来联接表,避免因进行联接优化而 降低查询速度
表12-2 联接类型 联接类型 意义 Inner Join(内部联接) 只有满足联接条件的记录包含在结果中 Left Outer Join (左联 接) 左表某记录与右表所有记录比较字段值,若有满足联接 条件的,则产生一个真实值记录;若都有满足,则产生 一个含.NULL值的记录。直至右表所有记录都比较完。 Right Outer Join(右 联接) 右表某记录与左表所有记录比较字段值,若有满足联接 条件的,则产生一个真实值记录,若都不满足,则产生 一个含.NULL值的记录。直至右表所有记录都比较完。 Full Join (完全联接) 先按右联接比较字段值,再按左联接比较字段值。不列 入重复记录。 ON选项用于指定联接条件。FORCE选项表示严格 按指定的联接条件来联接表,避免因进行联接优化而 降低查询速度