2024年6月12日发(作者:)
SQL语法
一、 SQL简单查询
㈠ SELECT语句的语法格式
SELECT语句是用户对数据库提出问题的基础。当创建并执行一个SELECT语句时,
其实就是在“查询”数据库。一个SELECT语句由几个独立的关键字组成,这些关键字被称
为子句,可以使用子句的多种形式来定义SELECT语句,从而获得想要的信息。这些子句
中有些是必需的,而另外一些是可选择的。另外,每个子句都有一个或多个关键字,这些关
键字由必须值和可选值来描述。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句
可归纳如下:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SELECT语句中的各子句的功能如下:
SELECT子句:这是SELECT语句中必须包含的最主要的子句,用户可以使用该子句
指定查询的结果集中想要显示的字段。这些字段可以是从用户所指定的一个表或视
图中提取出来的,也可以是同时从多个表中取出的。同时在SELECT子句中也可以
使用一些函数和公式。
INTO子句:该子句用于创建新表并将结果行从查询插入到新表中。用户若要执行
带 INTO 子句的 SELECT 语句,必须在目的数据库内具有 CREATE TABLE 权限。
FROM子句:这是SELECT语句中仅次于SELECT的子句,也是对数据库查询中的必
选项。FROM用来指定SELECT子句中的字段是从哪个表或者视图中取出的。
WHERE子句:该子句是一个可选项。其功能是用来过滤显示结果。只有符合其<
search_condition >所指定条件的记录才会在结果中显示出来。用户可以使用标准
比较运算符、逻辑运算符和特殊运算符来检验表达式。
GROUP BY子句:该子句也是一个可选项。如果用户想使用一些统计函数以便得到
一些统计信息。那么便可以使用GROUP BY子句把这些信息分成不同的组。GROUP BY
关键字后面的分组列可以是任何一列或是某些列的一个序列。
HAVING子句:该子句也是一个可选项。HAVING子句是专门和GROUP BY子句相关的,
用来过滤分组后的信息。和WHERE子句类似。
ORDER BY子句:该子句也是一个可选项。ORDER BY子句用来指出查询结果按哪个
字段进行排序,其中ASC表示按指定字段升序排序,该项为默认选项。DESC选项
表示按指定的字段降序排序。
㈡ 最简单的SELECT语句
在日常的应用中,最常用到的是对一个表的简单查询,使用SELECT进行简单查询的
语法为:
SELECT [ ALL | DISTINCT ]
[ TOP n [ PERCENT ] ]
< select_list >
< select_list > ::=
{*
1
| { table_name | view_name | table_alias }.*
{ column_name | expression}
[ [ AS ] column_alias ]
| column_alias = expression
} [ ,...n ]
[ FROM { < table_source > }]
语法中各参数含义如下:
ALL:用于指定在结果集中可以显示重复行。ALL是默认设置。
DISTINCT:用于指定在结果集中只能显示唯一行。空值被认为相等。
TOP n [PERCENT]:用于指定只从查询结果集中输出前 n 行。n 是介于 0 和
4294967295 之间的整数。如果还指定了 PERCENT,则只从结果集中输出前百分之 n
行。当使用PERCENT关键字时,n 必须是介于 0 和 100 之间的整数。如果查询包
含 ORDER BY 子句,将输出由 ORDER BY 子句排序的前 n 行(或前百分之 n 行)。
如果查询没有 ORDER BY 子句,行的顺序将任意。
< select_list >:为结果集选择的列。选择列表是以逗号分隔的一系列表达式。
table_name:指定在 FROM 子句内返回所有表和视图内的所有列。列名按 FROM 子
句所指定的由表或视图返回,并按它们在表或视图中的顺序返回。
column_name :是要返回的列名。限定 column_name 以避免二义性引用,当 FROM
子句中的两个表内有包含重复名的列时会出现这种情况。
expression :是列名、常量、函数以及由运算符连接的列名、常量和函数的任意
组合,或者是子查询。
column_alias :是查询结果集内替换列名的可选名,也称为别名。column_alias 可
用于 ORDER BY 子句。然而,不能用于 WHERE、GROUP BY 或 HAVING 子句。
1.基本SELECT语句
使用SELECT语句进行数据库查询之前,首先要分析用户的请求,即用户要做些什么?
通过分析用户的请求,要确定用户要查询哪些内容,这些内容可以从哪些数据表中获得。然
后将这些内容逐一替换到SELECT语句的相应位置上。
2.显示特定的字段
在实际的应用中,用户往往只是想查看某些字段的内容,而不是显示表中的所有列的内
容,这时就需要在SELECT子句后加上想要查询的列名。
3.使用DISTINCT关键字
最基本的查询方式会返回从表中搜索到的所有行的记录,而不管数据是否重复。使用
DISTINCT关键字就能够从返回的结果数据集合中删除重复的行,使返回值的结果更加的简
洁。
4.使用TOP、PERCENT关键字
在SQL Server 2000中提供了TOP和PERCENT关键字,用于指定返回前面n行或前百
分之n行的数据。当查询到的数据非常多(如有几万行),而只要对前面的若干条数据进行
浏览时,使用TOP关键字可以大大减少查询所用的时间。
5.操作查询的列名
在SQL Server 2000中提供了在SELECT语句中操作列名的方法。用户可以根据实际的
需要对查询数据的列标题进行修改,或者为没有标题的列指定临时的标题。
对列名进行操作有三种方法,一种是采用符合ANSI规则的标准方法,即在列表达式后
面给出列名。另一种是使用SQL Server 支持的“=”来连接列表达式。第3种是在指定列标
题时,使用AS关键字来连接列表达式和指定的列名。
2
发布评论