文档介绍:第2讲Transact-SQL语言
Transact-SQL语言概述
第1节单表查询
问题:
我们需要对数据进行哪些维护操作?如何对数据进行查询、统计?
结构化查询语言(Structured Query Language)。这种语言的语法结构类似于英语,易学易用,书写随意。[例如前面第一章讲过的例子]
Transact-SQL语言的组成
1、数据定义语言DDL:用来定义和管理数据库中的对象。
DDL主要的语句有:
CREAT TABLE /*创建表*/
ALTER TABLE /*修改表的属性*/
DROP TABLE /*删除表*/
2、数据操作语言DML:用来操作数据库中的对象和数据,是T-SQL中最常用的部分。
DML主要的语句有:
 SELECT /*从一个表或多个表中检索数据*/
DELETE /*从表中删除数据*/
INSERT /*向一个表中添加数据*/
UPDATE /*修改表中已有的数据*/
 3、数据控制语言DCL:用来控制用户对数据库对象操作的权限。
主要的命令有:
GRANT /*授予权限*/
REMOVE /*回收所授予的权限*/
操作数据
打开一个数据库 
使用SELECT子句
SELECT子句主要用于检索数据,其基本格式为:
SELECT 选择列表
FROM 表的列表
WHEAR 检索的条件
【问题】从Student表中检索学号为00000001的学生的姓名(StuName),要求显示学生的学号和姓名
【练习】要求检索系部编号为01的班级信息,要求显示班级编号和班级名称
1、*的使用
【例】显示学生表中所有信息
【例】从学生表中检索学生所在班的班级编码
2、使用DISTINCT
【例】从学生表中检索学生所在班的班级编码,要求清除值相同的那些行
 3、使用TOP n [PERCENT]
【例】从学生表中检索所有的信息,要求只显示前6行数据
4、修改检索结果中列的标题
【问题】检索学生表中的学号、班级编码和姓名信息,并修改列标题
 
方法有三:
(1)将要显示的列标题用单引号括起来后接等号(=), 后接要检索的列名
(2)将要显示的列标题用单引号括起来后,写在列名后面,两者之间使用空格隔开
(3)将要显示的列标题用单引号括起来后,写在列名后面,两者之间使用AS关键字
 【练习】使用其他两种方法
5、在查询结果中显示字符串
【问题】检索课程表的信息,要求给出检索结果为:
课程名称课程编码
SQL Server实用技术课程编码为: 001
……课程编码为: ……
……课程编码为: ……
 
 
思考:如何检索课程编码是001的课程名称?
6、使用WHERE限制检索的条件
【例】检索课程编码为001的课程名称,要求只显示课程名称
 
【练习】检索上“Linux操作系统”课程的教师名
 
7、表达式作为SELECT语句中的列
【例】要求检索课程表的课程信息,并显示报名人数和限制选课人数之比
思考:如何将上面的检索结果按报名人数和限制选课人数之比的升序排列?
8、使用ORDER BY子句重新排列检索结果
 【升序例子】
【降序例子】
也可以在ORDER BY子句中指定多个列
【例】检索课程表的教师名、课程号、课程名,要求检索结果首先按教师名降序排列,教师名相同时,则按课程号的升序排列
9、使用IN(NOT IN)关键字
【例】检索课程编码为‘001’‘004’‘013’的课程名称
方法一:使用逻辑运算符OR
方法二:使用IN关键字(比使用逻辑运算符更为简单)
问题
检索开设了“信息技术”类课程的教师名及其所开的课程名,要求先按教师名升序排列,教师名相同时,按课程名的降序排列,并将显示的列名改为中文。