sql_server_2005数据库查询
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库查询是数据库中一个最重要也是最基本的功能,它是从数据库中检索符合条件的数据记录的选择过程。
SQL Server 2005的数据库查询使用T-SQL语言,其基本的查询语句是SELECT 语句。
SELECT [ALL|DISTINCT] [ TOP
[
FORM[
JOIN[
[INTO
| TO PRINTER [PROMPT] | TO SCREEN]
[PREFERENCE PreferenceName][NOCONSOLE][PLAIN][NOW AIT]
[WHERE < operator 1> [AND < operator 2>…][AND | OR < operator >…]]
[GROUP BY < operator > ][, < operator > …]]
[HA VING ]< operator > ]
[UNION [ALL]
[ORDER BY < column_name > [ASC |DESC] [, < column_name >
8.1.1 选择列
选择列指的是通过限定返回结果的列组成结果表。
1. 选择指定列
选择指定列指的是选择一个表中的部分列,各列名之间用逗号隔开。
【例】查询学生表中学生的学号、姓名和院系名称。
SELECT 学号,姓名,院系名称
FROM 学生表
GO
【例8-2】查询教师表中教师的姓名和职称。
SELECT 姓名,职称
FROM 教师表
GO
2. 选择所有列
选择所有列指的是选择一个表中的全部列。可以将所有列名都列出,各列之间用逗号隔开,也可以使用符号“*”。
【例8-4】查询所有课程信息。
SELECT 课程号,课程名,学分,备注
FROM 课程表
SELECT *
FROM 课程表
3. 定义列别名
查询结果默认输出的列名都是建表时的列名。但有时用户希望查询结果输出时,显示自己指定的列名显示,这时就可以定义表列的别名。SELECT语句使用AS关键字来定义别名。【例】查询所有学生的姓名、性别,各列的别名是name、sex。
SELECT 姓名AS name,性别AS sex
FROM 学生表
替换结果中数据
在对表进行查询时,有时希望对所查询的某些列使用表达式进行计算。SELECT语句支持表达式的使用。
【例】查询所有学生的分数信息,如果分数大于等于80,则为“优秀”;大于等于60,则为“及格”;小于60,则为“不及格”。
SELECT 学号,课程号,分数,等级=
CASE
WHEN 分数>=80 THEN '优秀'
WHEN 分数>=60 THEN '及格'
ELSE '不及格'
END
FROM 成绩表
GO
8.1.2 选择行
选择行指的是通过限定返回结果的行组成结果表。选择行可以和选择列一起使用。
1. 消除结果中重复行
在对表进行查询时,有时查询结果有许多重复行。SELECT语句使用DISTINCT关键字消除结果中重复行。
其语法格式如下:
DISTINCT column_name [,column_name…]
说明:DISTINCT关键字对后面的所有列消除重复行。一个SELECT语句中DISTINCT只能出现一次,而且必须放在所有列名之前。
2. 限制结果返回行数
⏹如果SELECT语句返回结果有很多行,可以使用TOP关键字限定返回行数。
⏹在SQL Server 2000中,关键字TOP后只能常数数值。
⏹在SQL Server 2005中进行了改进,TOP后还可以使用数值表达式。
其语法格式如下:
TOP n [PERCENT]
说明:其中n表示返回结果的前n行,
n PERCENT表示返回结果的前n%行
【例】查询教师表中前3名教师的信息。
SELECT TOP 3 *
FROM 教师表
GO
SELECT TOP 30 PERCENT * FROM 教师表
GO