——疼说明你还活着,想不通说明你还在思考,不要放弃,再坚持一下,你已经在路上
本章目标:
1.理解查询的机制
2.使用SELETE语句进行调节查询
3.掌握查询排序
4.使用表达式、运算符和函数实现查询
T-SQL查询机制
查询是针对表中已经存在的数据行而言的,可以简单的理解为”筛选“,将符合条件的数据抽取出来。
数据表在接受查询请求的时候,可以简单的理解为”它将逐行判断“,判断是否符合查询条件。如果符合查询条件就提取出来,然后把所有被选中的行组织在一起,形成另外一个类似于表的结构,构成查询的结果,通常叫做记录集(RecordSet)。
由于记录集的结构实际上和表的结构类似,都是有行组成的,因此在记录集上依然可以进行再次查询。
使用SELECT 语句进行查询
语法:
SELECT <列名> FROM <表名> WHERE <查询条件表达式> [WHERE <查询条件表达式>] [ORDER BY <排序的列名>[ASC 或 DESC]]
其中,WHERE条件是可选的,若不限制,则查询返回所有行的数据项。ORDER BY是用来排序的。
1.查询所有的数据行和列
把表中所有行和列都列举出来比较简单,这时候可以使用”*“标示所有的列
SELECT * FROM Students
2.查询部分行和列
查询部分列需要列举不同的列名,而查询部分行需要使用WHERE子句进行条件限制,例:
SELECT SCode,SName,SAddress FROM Students WHERE SAddress = ’北京‘
3.在查询中使用列的别名
AS子句可以用来改变结果集中的列的名称,也可以为组合或者计算出的列指定名称。
SELECT SCode AS 学生编号,SName AS 学生姓名,SAddress AS 学生地址 FROM Students WHERE SAddress <> '北京'
4.查询空值
在SQL语句中采用”IS NLL“ 或者 ”IS NOT NULL“ 来判断是否为空。
例:查询学生表中没有填写E-mail信息的学生,可以使用一下查询语句。
SELECT SName FROM Students WHERE SEmail IS NLL
5.在查询中使用常量列
有时候,需要将一些常量的默认信息添加到查询输出中,以方便统计或计算。
例:查询学生信息的时候,学校名称统一都是’北京‘
SELECT 姓名=SName,地址=SAddress,’北京‘ AS 学生名称 FROM Students
6.查询返回限制的行数
一些查询需要返回限制的行数,没有必要查询输出全部的数据,以提高查询速度,这是就要用到限制返回行数的查询。
在T-SQL,限制行数使用TOP关键字来约束。
例:查询返回众多学生记录中前五位女生的姓名和地址
SELECT TOP 5 SName, SAddress FROM Students WHERE SSex = 0
查询排序
如何使用ORDER BY
如果需要按照一定顺序排列查询语句中的行,则需要使用ORDER BY 子句,并且排序可以是升序(ASC)或者降序(DESC)。如果不指定ASC或者DESC,结果按默认ASC升序排列。
例:查询学生成绩的时候,如果把所有的成绩都降低10%后加5分,在查询几个成绩并按照成绩高低来进行排序
SELECT StudentID AS 学生编号,(SCORE*0.9+5) AS 综合成绩 FROM Score WHERE (Score*0.9+5) >60 ORDER BY Score
在查询中使用函数
SQL Server提供了一些内部行数,每个函数都实现不同的功能,不同类型的行数都可以和SELECT、UPDATE、INSERET语句联合使用。
常用的有四类函数,分别是字符串函数、日期函数、日期函数、数学函数、系统函数。
字符串函数:字符串函数用于对字符串数据进行处理,并返回一个字符串或数字。
日期函数:日期函数用于操作日期值,不能直接对日期运用数学函数。日期函数帮助提前日期值中的日、月及年,以便分别操作它们。
数学函数:数学函数用于对数值类型数据进行处理,并返回处理结果。
系统函数:系统函数用来获取有关SQL Server中对象和设置的系统信息。
2015年11月4日23:37:53