SELECT语句

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.4 SELECT-SQL命令

[※重点]

SQL(Structured Query Language)是结构化查询语言,是关系数据库语言的标准。SELECT-SQL是从SQL语言中移植过来的查询命令,具有强大的单表和多表查询功能。SELECT语句在任何一种SQL语言中,都是使用频率最高的语句。可以说SELECT语句是SQL语言的灵魂。在第1章中讲述的选择、投影、连接等关系运算,都是由SELECT语句来完成的。

命令格式:

SELECT[ALL|DISTINCT][TOP <数字常数>[PERCENT]]

[<表别名>.]<查询表达式>[AS <列标题>]

[,[<表别名>.]<查询表达式>[AS <列标题>]…]

FROM [FORCE][<数据库名>! ]表名[<表别名>]

[[INNER |LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]JOIN

<数据库名>!]表名[<表别名>]

[ON <联接条件>…

[[INTO <目标>]

|[TO FILE <文件名>[ADDITIVE]

|TO PRINTER [PROMPT]

|TO SCREEN]]

[NOCONSOLE][PLAIN][NOW AIT]

[WHERE <连接条件>[AND <连接条件>…]

[AND|OR <筛选条件> [[AND|OR <筛选条件>…]]]

[GROUP BY <分组表达式>[,<分组表达式>…]]

[HA VING <筛选条件>]

[UNION[ALL]

[ORDER BY <排序表达式>[ASC|DESC]

[,<排序表达式>[ASC|DESC]…]]

命令功能:

返回从指定表中查询的数据结果集。

命令说明:

(1)SELECT:在查询结果中指定要显示的字段、常量和表达式。

(2)FROM :表示上述查询列名的结果来自于那些数据库的哪些表中。

示例:最简单的查询,选择查询“学生管理”数据库的“学生”表的数据。

SELECT * FROM 学生管理!学生

其中,在SELECT语句中“*”表示所有的列。

(3)[ALL|DISTINCT]:参数中的ALL参数将筛选出满足给定条件的所有记录;使用DISTINCT关键字就能够从返回的结果数据集中删除掉重复的行,使返回的结果更简洁。示例:选择查询“学生”表的专业编码。

SELECT 专业编码FROM 学生管理!学生&& 有许多重复记录

SELECT DISTINCT 专业编码FROM 学生管理!学生&& 没有重复记录

(4)[TOP <数字常数>[PERCENT]]:指定只返回前面一定数量的数据。<数字常数>是一个常数,允许的数值范围为 1 到32767;如果使用“PERCENT”关键字的是百分数,则范围为0.001 到99.99。

示例:选择查询“学生”表的前10条记录和前10%的记录数据。

SELECT TOP 10 * from 学生管理!学生ORDER BY 学号

SELECT TOP 10 PERCENT * from 学生管理!学生ORDER BY 学号

(5)[[<表别名>.]<查询表达式>[AS <列标题>]:中的

<查询表达式> 参数指定查询结果中的每一项,它可以是字段名、字段名表达式以及常

若<查询表达式>是一个常量,那么查询结果中的每一行都出现该常量值。

[AS <列标题>]参数为查询结果中的每一项列名加标题。若<查询表达式>是一个字段名,那么[<表别名>.]指明该字段所在表的别名。

示例:设置“学生”表的别名为“A”、字段名“学号”的标题为“学生编码”。

SELECT A.学号AS 学生编码,A.姓名,A.性别from 学生管理!学生A

(6)FROM [FORCE][<数据库名>! ]表名[<表别名>]:FORCE参数表示数据表将按FROM子句出现的顺序联接。

(7)[[INNER |LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]JOIN<数据库名>!]表名[<表别名>][ON <联接条件>…:指定表与表之间的联接方式以及连接的条件表达式。其中:

INNER JOIN:内部联接,只有联接字段中的值相等时,才从两个表中选择记录。

示例:查询学生.学号, 学生.姓名, 课程.课程名称, 成绩.成绩等数据。

SELECT 学生.学号, 学生.姓名, 课程.课程名称, 成绩.成绩;

FROM 学生INNER JOIN 成绩ON 学生.学号= 成绩.学号;

INNER JOIN 课程ON 成绩.课程号= 课程.课程号;

ORDER BY 学生.学号

LEFT [OUTER] JOIN :左[外部]的联接。OUTER(外部)关键字是可选择的;它包括“左字段列表”的全部记录,以及“右字段列表”中所选字段相匹配记录。

示例:查询学生.学号, 学生.姓名,成绩.成绩等数据。

SELECT 学生.学号,学生.姓名, 成绩.成绩;

FROM 学生LEFT OUTER JOIN 成绩ON 学生.学号= 成绩.学号;

ORDER BY 学生.学号

SELECT 学生.学号,学生.姓名, 成绩.成绩;

FROM 成绩LEFT OUTER JOIN 学生ON 学生.学号= 成绩.学号;

ORDER BY 学生.学号

RIGHT [OUTER] JOIN :右[外部]的联接。创建一个联接,它包括“右字段列表”的全部记录,以及“左字段列表”中所选字段相匹配记录。

示例:查询学生.学号, 学生.姓名,成绩.成绩等数据。

SELECT 学生.学号,学生.姓名, 成绩.成绩;

FROM 学生RIGHT OUTER JOIN 成绩ON 学生.学号= 成绩.学号;

ORDER BY 学生.学号

SELECT 学生.学号,学生.姓名, 成绩.成绩;

FROM 成绩RIGHT OUTER JOIN 学生ON 学生.学号= 成绩.学号;

ORDER BY 学生.学号

FULL [OUTER] JOIN:完全[外部]联接。创建一个联接,为所选字段列出两个列表中的所有记录。

示例:查询学生.学号, 学生.姓名,成绩.成绩等数据。

SELECT 学生.学号,学生.姓名, 成绩.成绩FROM 学生FULL OUTER JOIN 成绩ON 学生.学号= 成绩.学号ORDER BY 学生.学号

(8)[[INTO <目标>]:设置查询结果集的输出目标。目标可以是下列形式之一:

●ARRAY <数组名>:输出到数组。

●CURSOR <临时表名>:输出到临时表

●DBF<表名>|TABLE <表名> :输出到表

示例:查询学生.学号, 学生.姓名, 课程.课程名称, 成绩.成绩等数据,生成一个名为“XS”的新表。

SELECT 学生.学号, 学生.姓名, 课程.课程名称, 成绩.成绩;

FROM 学生INNER JOIN 成绩ON 学生.学号= 成绩.学号;

INNER JOIN 课程ON 成绩.课程号= 课程.课程号;

ORDER BY 学生.学号INTO DBF XS

(9)[TO FILE <文件名>[ADDTTIVE]|TO PRINTER[PROMPT]|TO SCREEN]]表示分别将查询结果送到一个文本文件、打印机、屏幕中去。

(10)[PREFERENCE PreferenceName]表示当输出方向为“测览”窗口时保存该窗口的属性,以便下一次调用。

(11)[NOCONSOLE]表示在将查询结果输出到文本文件或打印机上去的同时禁止在屏幕上显示查询结果。

(12)[PLAIN]表示禁止列标题出现在查询结果中。

(13)[NOW AIT]表示在打开浏览窗口将查询结果输出到浏览窗口中去后,允许程序继续执行。

(14)[WHERE <连接条件>[AND <连接条件>…][AND|OR <筛选条件> [[AND|OR <筛选条件>…]]]:子句用以设置多表连接条件以及筛选条件。

★WHERE子句中的几点说明:

使用WHERE子句可以限制查询的范围,提高查询的效率。在使用时,必须注意WHERE 子句必须紧跟FROM子句后面。WHERE子句中的条件表达式包括算术表达式和逻辑表达式两种。

相关文档
最新文档