SQL server的重要语句——Select语句基础
SQL server的语句分为三类:
数据定义语言(DDL):用于定义数据结构。常见语句有(CREATE、DROP、ALTER)
数据操纵语言(DML):用于检索和修改数据结构。常见语句有(INSERT、UPDATE、SELECT、DELETE) www.2cto.com
数据控制语言(DCL):用于规定
数据库用户的使用权限。常见语句有:(GRANT、REVOKE)
其中最重要的就是数据操纵语句中的SELECT语句,在耿建玲老师的视频中,耿建玲老师重点强调了SELECT语句,用四集将 近九十分钟详细讲述了SELECT语句。那SELECT语句到底是怎么样的呢?
SELECT语句的特点:
SELECT语句可以由多个查询子句构成;
SELECT语句是数据库检索时使用最频繁的语句;
使用SELECT语句可以在需要的表单中检索到自己需要的数据;
使用SELECT语句检索数据时,需先知道需要的数据存储在哪里。
SELECT语句的检索范围: www.2cto.com
全部的行和特定的列;
全部的行和全部的列;
限定范围的行;
与一组值相匹配的行;
隐藏有重复的行;
根据多个搜索条件检索行。
分析SELECT语句:
结构:SELECT [ ALL / DISTINCT ] select_list
[ INTO [ new_table_name] ]
FROM { table_name/view_name}
[ [ , {table_name2 /view_name2}
[ ...... , { view_name16/ view_name16 } ] ]
[ WHERE search_conditions ]
[ GROUP BY group_by_list]
[ HAVING search_conditions ]
[ ORDER BY order_list [ ASC/DESC ] ]
1)SELECT子句:指定通过查询返回的表的列。
语法:SELECT [ ALL/DISTINCT ] www.2cto.com
[ TOP n ]
< select_list >
分析:select_list表示需要检索的字段的列表。若此时是select * ,则
系统将返回数据表中的所有字段。
DISTINCT知名查询结果中若返回的值有相同的列时,只返回其中的一列。
TOP n指定返回查询结果的前n项数据。
2)INTO子句:用于将查询结果放到一个新表中
语法:INTO new_table
分析:new_table制定了新建表的名称,新表的列由select子句指定的列构成,数据行由where子句指定。
3) FROM子句:指定需要进行数据查询的表。
语法:FROM{ < table_source> } [ ,....n]
分析:Table_source指明select语句要用到的表、视图等数据源。
4) WHERE子句:指定数据查询的条件,过滤掉不需要的数据行。
查询条件:比较查询条件,包括<、>、<=、>=、=、!<、!>、!=
列表查询条件,包括IN、NOTIN
模式查询条件,包括LIKE、NOTLIKE、*(通配符)
空值判断条件,包括IS NULL、IS NOT NULL
还有符合条件的上述条件的逻辑组合:AND、OR、NOT
5) GROUP BY子句:指定查询结果的分组条件。
语法:GROUP BY
[ all ] group_by_expression [ ,...n]
[ with { cube/rollup } ]
分析:group_by_expression指明分组条件,通常是一个列名,但不能是列的别名,对text、ntext、image数据类型限制 www.2cto.com
all返回所有可能查询的结果组合(即使组合中没有where子句)
注意:all不能与cube和rollup同时使用。
cube和rollup的区别下次分析
6)HAVING子句:指定分组搜索条件,通常与GROUP BY子句一起使用。
语法:HAVING < search_condition>,与where子句类似。
分析: WHERE子句作用于表和视图,HAVING子句作用于作用于组
7)ORDER BY 子句:指定查询结果的排序方式。
语法:ORDER BY { order_by_expression
[ ASC/DESC] } [ , .....n]
分析:order_by_expression指定排序规则
ASC选出的项按升序排列
DESC选出的项按降序排列
8)COMPUTE子句:查询结果的末尾生成一个汇总数据行。
语法:COMPUTE