实验三:数据更新和简单查询

1. 实验目的

1)掌握运用Transact-SQL语句实现表的更新操作。
2)掌握运用Transact-SQL语句实现表的查询操作。
包括:
(1)掌握SELECT子句以及WHERE子句的使用方法。
(2)学会应用ORDER BY子句。
(3)掌握5种基本的聚合函数。
(4)学会分组统计。

2.实验内容

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)

实验三:数据更新和简单查询_第1张图片
(2)删除

(2)
         ALTER TABLE XS_KC1
		 ADD
		 CONSTRAINT 成绩_chk1 check (成绩 BETWEEN 0 AND 100)

		 ALTER TABLE XS_KC1
         DROP CONSTRAINT 成绩_chk1

实验三:数据更新和简单查询_第2张图片
(3)修改

     ALTER TABLE XSQK1
		 ALTER COLUMN 
         姓名 char(10)

实验三:数据更新和简单查询_第3张图片
3.2表的查询
(1)SELECT子句的应用。

        SELECT 学号,姓名,出生日期
		FROM XSQK

实验三:数据更新和简单查询_第4张图片
例1:插入

ALTER TABLE KC
ADD
教师性别 int,
教师年龄 int

实验三:数据更新和简单查询_第5张图片
例2:修改

ALTER TABLE KC
ALTER COLUMN
课程名 char(30) 

实验三:数据更新和简单查询_第6张图片
例3:删除

 ALTER TABLE XS_KC1
		 ADD
		 CONSTRAINT 成绩_chk1 check (成绩 BETWEEN 0 AND 100)

		 ALTER TABLE XS_KC1
         DROP CONSTRAINT 成绩_chk1

实验三:数据更新和简单查询_第7张图片
(2)WHERE子句的应用。

 SELECT 学号,姓名,出生日期
		FROM XSQK
		WHERE 性别='1'

实验三:数据更新和简单查询_第8张图片
(3)ORDER BY子句的应用。

 SELECT 学号,姓名,出生日期
		FROM XSQK
		WHERE 性别='1'
		ORDER BY 出生日期 DESC

实验三:数据更新和简单查询_第9张图片
(4)聚合函数的应用。

     SELECT SUM(成绩) AS Tolalscore,AVG(成绩) AS Avgscore
		FROM  XS_KC
		WHERE 学号='020101'

实验三:数据更新和简单查询_第10张图片

  SELECT MAX(成绩) AS Maxscore,MIN(成绩) AS Minscore,MAX(成绩)-MIN(成绩) AS Diff
		FROM  XS_KC
		WHERE 学号='020101'

实验三:数据更新和简单查询_第11张图片
(5)聚合操作与分组统计的应用。
例1:

         SELECT 学号,COUNT(*) AS 课数
		 FROM  XS_KC
		 GROUP BY 学号	

实验三:数据更新和简单查询_第12张图片
例2:

        SELECT 学号,COUNT(*) AS 课数
		FROM  XS_KC
		GROUP BY 学号
	    HAVING(COUNT(*)>=2) 

实验三:数据更新和简单查询_第13张图片

4.实验总结

此次上机实验进行的练习为数据更新和简单查询,通过回顾之前课堂中老师讲授的知识以及自己翻看课本进行实验,使得我对使用SQL语言对表的各类操作有了熟练而又清晰的条理与思路,且对于五种基本的聚合函数也熟悉了其基本的使用方法。在以后的学习中我会更加熟练运用库函数以及分组统计的。

5.问题解答

WHERE子句与HAVING子句有何不同?
答:WHERE子句与HAVING子句的根本区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组;HAVING子句作用于组,选择满足条件的组,且必须用在GROUP BY 子句之后,但GROUP BY子句可没有HAVING子句。

你可能感兴趣的:(数据库)