T-SQL语言中,最重要的的部分是它的查询功能,查询语言用来对已经存在域数据库中的数据按照特定的行,列,条件表达式或者一定义次序进行检索。
T-SQL对数据库的查询使用SELECT 语句,SELECT 语句具有灵活的使用方式和强大的功能,SELECT 语句的语法格式如下:
ELECT select_list /*指定要选择的列*/
FROM table_source /*FROM子句,指定表或视图*/
[ WHERE search_condition ] /*WHERE子句,指定查询条件*/
[ GROUP BY group_by_expression ] /*GROUP BY子句,指定分组表达式*/
[ HAVING search_condition ] /*HAVING子句,指定分组统计条件*/
[ ORDER BY order_expression [ ASC | DESC ]] /*ORDER子句,指定排序表达式和顺序*/
1,投影查询。
投影查询通过SELECT 语句的SELECT 子句来标识,由所选表中的部分或者全部列组成结果表,SELECT子句的语法格式如下:
SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ] [ WITH TIES ] ]
select_list指出了结果的形式,其格式为:
{ * /*选择当前表或视图的所有列*/
| { table_name | view_name | table_alias } . * /*选择指定的表或视图的所有列*/
| { colume_name | expression | $IDENTITY | $ROWGUID [ [ AS ] column_alias ] /*选择指定的列并更改列标题,为列指定别名,还可用于为表达式结果指定名称,*/
| column_alias = expression
} [ , … n ]
A,投影指定的列。
使用SELECT语句可选择表中的一个列或者多个列,如果是多个列,各列名中间要用逗号分开,其语法格式如下:
SELECT column_name [ , column_name…]
FROM table_name
WHERE search_condition
其中,FROM子句用于指定表,WHERE用于在该表中检索符合search_condition条件的列。
例如,查询student表中所有的学生的学号,姓名和专业:
USE stsc
SELECT stno, stname, specialist
FROM student
B,投影全部列
在SELECT 子句指定的位置上使用 “*” 号时,则为查询表中的所有列。
例如,查询student表中的所有列:
USE stsc
SELECT *
FROM student
C,
修改查询结果的列标题
------------------分享-------------------------
之前我在这个上面吃过亏,不能算是吃亏,我用的是SQL语法,没有使用T-SQL的扩展语法,当时想修改查询结果中的列名,结果,做出来,写的挺麻烦的,现在再来看看T-SQL,简单的很哦。推荐使用这种方法
-------------------------------------------------
为了改变查询结果中的列名,可以在列名后使用AS子句,其语法格式如下:
AS column_alias
其中,
colum_alias 用于指定显示的列标题,
AS 可省略。
例如,查询student表中的 stno,stname,tc列,将结果中各列的标题分别修改为学好,姓名,总学分。
USE stsc
SELECT stno AS '学号', stname AS '姓名', tc AS '总学分'
FROM student
D,去掉重复行
去掉结果中的重复行可使用DISTINCT 关键字,其语法格式如下:
SELECT DISTINCT column_name [ , column_name…]
例如,查询student 表中的specialist列,消除结果中的重复行
USE stsc
SELECT DISTINCT specialist
FROM student