写出SQL查询语句的基本结构,并说明结构中各子句表示的含义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写出SQL查询语句的基本结构,并说明结构中各子句表示的含义相关的知识,希望对你有一定的参考价值。
参考技术A 语法SELECT [predicate] * | table.* | [table.]field1 [AS alias1] [,[table.]field2 [AS alias2] [,...]]
FROM tableexpression [,...] [IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]
SELECT 语句包含以下部分:
部分 说明
predicate 这些谓词之一:ALL、DISTINCT、DISTINCTROW 或 TOP.可以使用谓词来限定返回记录的数量.如果没有指定谓词,默认值为 ALL.
* 指定选择所指定的表的所有字段.
table 表的名称,该表包含了其记录被选择的字段.
field1,field2 字段名,这些字段包含了要检索的数据.如果包括多个字段,将按它们的排列顺序对其进行检索.
alias1,alias2 用作列标题的名称,不是 table 中的原始列名.
tableexpression 其中包含要检索的数据的表的名称.
externaldatabase 如果 tableexpression 中的表不在当前数据库中,则使用该参数指定该数据库名.
说明
若要执行此项操作,Microsoft?Jet 数据库引擎会搜索指定的表,并提取出选定的列,再选择出符合条件的列,然后按指定的顺序对得到的行进行排序或分组.
SELECT 语句不会更改数据库中的数据.
SELECT 通常是 SQL 语句中的第一个词.大多数 SQL 语句是 SELECT 或 SELECT...INTO 语句.
SELECT 语句最简化的语法为:
SELECT fields FROM table
可以通过星号 (*) 来选择表中所有的字段.以下的示例选择在 Employees 表中的所有字段:
SELECT * FROM Employees;
如果一个字段名包括于 FROM 子句内的多个表中,请在该字段前面加上表名和 .(圆点)号.在下面的示例中,Department 字段同时存在于 Employees 表和 Supervisors 表中.SQL 语句从 Employees 表中选择出部门并从 Supervisors 表中选择出主管名:
SELECT Employees.Department,Supervisors.SupvName
FROM Employees INNER JOIN Supervisors
WHERE Employees.Department = Supervisors.Department;
创建 Recordset 对象时,Microsoft Jet 数据库引擎将使用表的字段名作为 Recordset 对象中的 Field 对象名.如果需要一个不同的字段名或者名称不适合用来生成该字段的表达式,请使用 AS 保留字.下面的示例使用标题 Birth 来命名在所得到的 Recordset 对象中的返回 Field 对象:
SELECT BirthDate
AS Birth FROM Employees;
只要使用的聚合函数或查询返回的是不明确的或重复的 Field 对象名称,就必须使用 AS 子句为该 Field 对象另外提供一个替代名称.下面的示例使用标题 HeadCount 来命名在结果 Recordset 对象中的返回 Field 对象:
SELECT COUNT(EmployeeID)
AS HeadCount FROM Employees;
可以在 SELECT 语句中使用其他子句进一步约束和组织所返回的数据.有关详细信息,请参阅相应子句的帮助主题.
请参阅
ALL DISTINCT、DISTINCTROW、TOP 谓词 ORDER BY 子句 (Microsoft Jet SQL)
DELETE 语句 SELECT...INTO 语句
FROM 子句 SQL 聚合函数
GROUP BY 子句 UNION 操作
HAVING 子句 UPDATE 语句
IN 子句 WHERE 子句
INSERT INTO 语句 WITH OWNERACCESS OPTION 声明
Sql Server 导出数据库表结构的SQL查询语句
1 --导出数据库所有表 2 3 SELECT 4 表名 = Case When A.colorder=1 Then D.name Else ‘‘ End, 5 表说明 = Case When A.colorder=1 Then isnull(F.value,‘‘) Else ‘‘ End, 6 字段序号 = A.colorder, 7 字段名 = A.name, 8 字段说明 = isnull(G.[value],‘‘), 9 标识 = Case When COLUMNPROPERTY( A.id,A.name,‘IsIdentity‘)=1 Then ‘√‘Else ‘‘ End, 10 主键 = Case When exists(SELECT 1 FROM sysobjects Where xtype=‘PK‘ and parent_obj=A.id and name in ( 11 SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = A.id AND colid=A.colid))) then ‘√‘ else ‘‘ end, 12 类型 = B.name, 13 占用字节数 = A.Length, 14 长度 = COLUMNPROPERTY(A.id,A.name,‘PRECISION‘), 15 小数位数 = isnull(COLUMNPROPERTY(A.id,A.name,‘Scale‘),0), 16 允许空 = Case When A.isnullable=1 Then ‘√‘Else ‘‘ End, 17 默认值 = isnull(E.Text,‘‘) 18 FROM 19 syscolumns A 20 Left Join 21 systypes B 22 On 23 A.xusertype=B.xusertype 24 Inner Join 25 sysobjects D 26 On 27 A.id=D.id and D.xtype=‘U‘ and D.name<>‘dtproperties‘ 28 Left Join 29 syscomments E 30 on 31 A.cdefault=E.id 32 Left Join 33 sys.extended_properties G 34 on 35 A.id=G.major_id and A.colid=G.minor_id 36 Left Join 37 38 sys.extended_properties F 39 On 40 D.id=F.major_id and F.minor_id=0 41 --where d.name=‘OrderInfo‘ --如果只查询指定表,加上此条件 42 Order By 43 A.id,A.colorder
以上是关于写出SQL查询语句的基本结构,并说明结构中各子句表示的含义的主要内容,如果未能解决你的问题,请参考以下文章