SQL Server数据库技术(58)

心空365

心空365

2016-01-29 16:58

SQL Server数据库技术(58),SQL Server数据库技术(58)
   数据库是为更方便有效地管理信息而存在的人们,希望数据库可以随时提供所需要的数据信息。因此,对用户来说,数据查询是数据
库最重要的功能。本章将讲述数据查询的实现方法。

在数据库中,数据查询是通过SELECT 语句来完成的。SELECT 语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。我们在“Transact-SQL 语言”章节及前面的章节中已经初步接触到了SELECT 语句的一些用法,在本章中将分类讲述其具体用法。

本节讲述SELECT 语句完整的语法结构,这是一个非常冗长、枯燥的过程。读者可以跳过本节,从第二节开始阅读,而将本节作为理解、编写查询语句的语法参考资料。 SELECT 语句完整的语法结构如下:
SELECT statement ::=

[ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } [,...n] ]
[ COMPUTE { { AVG | COUNT | MAX | MIN | SUM } (expression) } [,...n]
[ BY expression [,...n] ] ]
[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY base64 ] }
[ OPTION ( [,...n]) ]
::=
{ | () }
[UNION [ALL] ) [...n] ]
::=
SELECT [ ALL | DISTINCT ]
[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]

[ INTO new_table ]
[ FROM {} [,...n] ]
[ WHERE ]
[ GROUP BY [ALL] group_by_expression [,...n]
[ WITH { CUBE | ROLLUP } ] ]
[ HAVING ]
由于SELECT 语句特别复杂,上述结构还不能完全说明其用法,因此我们将它拆分为若干部分来讲述。

10.1.1 SELECT 子句
SELECT 子句指定需要通过查询返回的表的列,其语法如下:
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] [ WITH TIES] ]

::=
{ *
| { table_name | view_name | table_alias }.*
| { column_name | expression | IDENTITYCOL | ROWGUIDCOL }
[ [AS] column_alias ]
| column_alias = expression
} [,...n]
各参数说明如下:

ALL
指明查询结果中可以显示值相同的列。ALL 是系统默认的。 DISTINCT
指明查询结果中如果有值相同的列,则只显示其中的一列。对DISTINCT 选项来说, Null 值被认为是相同的值。 TOP n [PERCENT]
指定返回查询结果的前n 行数据。如果PERCENT 关键字指定的话,则返回查询结果的前百分之n 行数据。 WITH TIES
此选项只能在使用了ORDER BY 子句后才能使用当指定此项时,除了返回由TOP n (PERCENT) 指定的数据行外,还要返回与TOP n (PERCENT) 返回的最后一行记录中由ORDER BY 子句指定的列的列值相同的数据行。 select_list
select_list 是所要查询的表的列的集合,多个列之间用逗号分开。 * 通配符,返回所有对象的所有列。
table_name | view_name | table_alias.*
限制通配符*的作用范围。凡是带*的项,均返回其中所有的列。 column_name
指定返回的列名 expression
表达式可以为列名、常量、函数或它们的组合。 IDENTITYCOL
返回IDENTITY 列。如果FROM 子句中有多个表含有IDENTITY 列,则在IDENTTYCOL 选项前必须加上表名,如Table1.IDENTITYCOL。 ROWGUIDCOL
返回表的ROWGUIDCOL 列。同IDENTITYCOL 选项相同,当要指定多个ROWGUIDCOL 列时,选项前必须加上表名,如Table1. ROWGUIDCOL。 column_alias
在返回的查询结果中用此别名替代列的原名。column_alias 可用于ORDER BY 子句,但不能用于WHERE GROUP BY 或HAVING 子句如果查询是游标声明命令DECLARE CURSOR 的一部分,则column_alias 还不能用于FOR UPDATE 子句(有关游标的介绍请参见“游标和视图”章节)。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)10.1.2 INTO 子句
INTO 子句用于把查询结果存放到一个新建的表中。SELECT...INTO 句式不能与COMPUTE 子句一起使用。其语法如下:
INTO new_table
参数new_table 指定了新建的表的名称。新表的列由SELECT 子句中指定的列构成,新表中的数据行是由WHERE 子句指定的。但如果SELECT 子句中指定了计算列,在新表中对应的列则不是计算列,而是一个实际存储在表中的列,其中的数据由执行SELECT...INTO 语句时计算得出。如果数据库的“Select into/bulk copy” 选项设置为“True/On”,则可以用INTO 子句创建表和临时表,反之,则只能创建临时表。

10.1.
展开更多 50%)
分享

猜你喜欢

SQL Server数据库技术(58)

SQLServer
SQL Server数据库技术(58)

SQL Server数据库技术(02)

SQLServer
SQL Server数据库技术(02)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server数据库技术(03)

SQLServer
SQL Server数据库技术(03)

SQL Server数据库技术(06)

SQLServer
SQL Server数据库技术(06)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server数据库技术(09)

SQLServer
SQL Server数据库技术(09)

SQL Server数据库技术(23)

SQLServer
SQL Server数据库技术(23)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《侠盗猎车5》全抢劫任务不死技巧分享

《侠盗猎车5》全抢劫任务不死技巧分享

360怎么升级win10?360一键免费升级win10教程

360怎么升级win10?360一键免费升级win10教程
下拉加载更多内容 ↓