Select语句之基础
SQL server的语句分为三类:
数据操纵语言(DML):用于检索和修改数据结构。常见语句有(INSERT、UPDATE、SELECT、DELETE)
数据控制语言(DCL):用于规定数据库用户的使用权限。常见语句有:(GRANT、REVOKE)
其中最重要的就是数据操纵语句中的SELECT语句,在耿建玲老师的视频中,耿建玲老师重点强调了SELECT语句,用四集将 近九十分钟详细讲述了SELECT语句。那SELECT语句到底是怎么样的呢?
看下图:
SELECT语句的特点和范围就不用说了,上图一目了然,主要看下面的子句吧~~~~~ 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 ] [ TOP n ] < select_list > 分析:select_list表示需要检索的字段的列表。若此时是select * ,则系统将返回数据表中的所有字段。 ALL指明查询结果中可 以显示值相同的列,同时all也是系统默认值。 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数据类型限制 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 {{ AVG/COUNT/MAX/MIN/SUM} ( expression) }[,....n] [ BY expression [ ,....n ] ] 分析:expression指定需要统计的列的名称,此列必须包含在select列表中,且不能用别名。 BY expression在查询结果中生成分类统计的行,使用此项必须使用ORDER BY子句(order_by_name) 9)UNION子句:将两个或两个以上的查询结果合并为一个结果集。 语法:SELECT语句 UNION[ all ] SELECT语句 分析:UNION子句将从最终结果集中删除重复的记录,如果想保留所有记录,则使用all子句 只能在最后的SELECT语句使用ORDER BY或COMPUTE子句。 基本规则:列的数目和顺序在所有查询中一致 数据类型要兼容