用SELECT语句可以实现数据库的查询操作,同时,它还可以使用各种子句对查询结果进行分组统计、合计、排序等操作。SELECT语句还可以将查询结果生成另一个表(临时表或永久表)。
SELECT语句的语法格式:
SELECT [ALL|DISTINCT] select_list [INTO [new_table_name]] [FROM {table_name,table_name2,...|view_name,view_name2,...}] [WHERE clause] [GROUP BY clause(子句)] [HAVING clause(子句)] [ORDER BY clause(子句)] [COMPUTE clause(子句)] [FOR BROWSE]
在使用中,子句可以省略,但在列出时按以上顺序。
1、简单查询
简单查询包括SELECT列表、FROM子句和WHERE子句,它们分别指出所查询的列、查询对象(表或视图)、搜索条件等。
如:查询TongFuHotel表中年龄小于30岁的男性
1 SELECT TongFuHotel.Name,TongFuHotel.Job 2 FROM TongFuHotel 3 WHERE TongFuHotel.Age<30 AND TongFuHotel.Sex='男'
(1)SELECT列表语句
SELECT列表语句(select_list)指定所选择的列,它可以为一组列名列表、星号、表达式、变量等构成。当用星号表示则为选择指定表或视图中的所有列。
SELECT *FROM TongFuHotel
使用SELECT列表语句时,多个被指定的列名之间用逗号分隔。SELECT列表还可以对数值列进行算术运算(包括加、减、乘、除、取模等)。其中,加、减、乘、除操作适用于任何数值型(如int、smallint、tinyint、decimal、numeric、float、money、smallmoney等),而取模运算不能用于money和smallmoney数据类型。此外,还可以指定字符串常量或变量改变它们的输出结果。
在SELECT语句中使用ALL|DISTINCT选项来显示所有行(ALL)或删除重复的行(DISTINCT),缺省时为ALL。使用DISTINCT选项时,对于所有数据重复的SELECT列表数值只显示一次。
SELECT DISTINCT job FROM TongFuHotel
(2)FROM子句
FROM子句指定SELECT语句查询相关的表或视图。最多可指定16个表或视图,相互之间用逗号分隔。如果这些表或视图属于不同的数据库,可用“数据库.所有者名称.对象”格式指定表或视图。
在FROM子句中可为每个表或视图指定一个别名,别名紧跟在对象名称之后,用空格分隔,允许使用别名引用表中各列。
1 SELECT Name,Job 2 FROM TongFuHotel t 3 WHERE t.Age<30 AND t.Sex='男'
(3)WHERE子句限定搜索条件
①WHERE语句可包含条件运算符
a、比较运算符 >、<、>=、<=、=、<>、!>、!< (大小比较)
b、范围运算符 BWTWEEN...AND、NOT BETWEEN...AND (判断表达式值是否在指定范围之内)
c、列表运算符 IN、NOT IN (判断表达式值是否为列表中的指定项)
d、模式匹配符 LIKE、NOT LIKE (判断列植是否与指定的字符统配格式相符)
e、空值判断符 IS NULL、NOT IS NULL (判断表达式值是否为空)
f、逻辑运算符 AND、OR、NOT (用于多条件的逻辑连接)
②WHERE语句可包含模式匹配符
a、%:可匹配任意类型长度的字符
b、_:匹配单个任意字符,常用于限制表达式的字符长度
c、[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一字符
d、[^]:取值与[]相同,但要求所匹配对象为指定字符以外的任一字符
参考文献:精通C#数据库编程.王华杰,黄山编著——北京:科学出版社,2003.10