1)掌握运用Transact-SQL语句实现表的更新操作。
2)掌握运用Transact-SQL语句实现表的查询操作。
包括:
(1)掌握SELECT子句以及WHERE子句的使用方法。
(2)学会应用ORDER BY子句。
(3)掌握5种基本的聚合函数。
(4)学会分组统计。
1)熟悉SQL Server 2005查询分析器环境。
2)运用T-SQL语句对表中的数据进行插入、修改和删除操作。
3)运用Transact-SQL语句实现:
(1)SELECT子句的应用。
(2)WHERE子句的应用。
(3)ORDER BY子句的应用。
(4)聚合函数的应用。
(5)聚合操作与分组统计的应用。
3. 实验过程
3.1表的更新
(1)插入
create table XS_KC1
(
学号 char(6) not null foreign key references XSQK(学号),
课程号 char(3) not null foreign key references KC(课程号),
成绩 tinyint
)
insert into XS_KC1(学号,课程号,成绩)
values ('020101','101','85'),
('020101','102','87'),
('020101','107','88'),
('020102','101','58'),
('020102','102','63'),
('020104','107','76'),
('020202','103','55'),
('020202','108','80'),
('020203','103','57'),
('020204','103','71')
ALTER TABLE XS_KC1
ADD
CONSTRAINT 成绩_chk check (成绩 BETWEEN 0 AND 100)
(2)
ALTER TABLE XS_KC1
ADD
CONSTRAINT 成绩_chk1 check (成绩 BETWEEN 0 AND 100)
ALTER TABLE XS_KC1
DROP CONSTRAINT 成绩_chk1
ALTER TABLE XSQK1
ALTER COLUMN
姓名 char(10)
SELECT 学号,姓名,出生日期
FROM XSQK
ALTER TABLE KC
ADD
教师性别 int,
教师年龄 int
ALTER TABLE KC
ALTER COLUMN
课程名 char(30)
ALTER TABLE XS_KC1
ADD
CONSTRAINT 成绩_chk1 check (成绩 BETWEEN 0 AND 100)
ALTER TABLE XS_KC1
DROP CONSTRAINT 成绩_chk1
SELECT 学号,姓名,出生日期
FROM XSQK
WHERE 性别='1'
SELECT 学号,姓名,出生日期
FROM XSQK
WHERE 性别='1'
ORDER BY 出生日期 DESC
SELECT SUM(成绩) AS Tolalscore,AVG(成绩) AS Avgscore
FROM XS_KC
WHERE 学号='020101'
SELECT MAX(成绩) AS Maxscore,MIN(成绩) AS Minscore,MAX(成绩)-MIN(成绩) AS Diff
FROM XS_KC
WHERE 学号='020101'
SELECT 学号,COUNT(*) AS 课数
FROM XS_KC
GROUP BY 学号
SELECT 学号,COUNT(*) AS 课数
FROM XS_KC
GROUP BY 学号
HAVING(COUNT(*)>=2)
此次上机实验进行的练习为数据更新和简单查询,通过回顾之前课堂中老师讲授的知识以及自己翻看课本进行实验,使得我对使用SQL语言对表的各类操作有了熟练而又清晰的条理与思路,且对于五种基本的聚合函数也熟悉了其基本的使用方法。在以后的学习中我会更加熟练运用库函数以及分组统计的。
WHERE子句与HAVING子句有何不同?
答:WHERE子句与HAVING子句的根本区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组;HAVING子句作用于组,选择满足条件的组,且必须用在GROUP BY 子句之后,但GROUP BY子句可没有HAVING子句。