写出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查询语句的基本结构,并说明结构中各子句表示的含义的主要内容,如果未能解决你的问题,请参考以下文章

请根据给出的数据库表的结构和要求,写出相应的Sql语句

SQL语句的结构

请根据给出的数据库表的结构和要求,写出相应的Sql语句。

创建学生表STUDENT,其结构如下表所示。请写出实现该创建功能的SQL语句。

MySQL执行计划

如何写出高性能的sql语句?