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

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)

在这里插入图片描述
(2)删除

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

		 ALTER TABLE XS_KC1
         DROP CONSTRAINT 成绩_chk1

在这里插入图片描述
(3)修改

     ALTER TABLE XSQK1
		 ALTER COLUMN 
         姓名 char(10)

在这里插入图片描述
3.2表的查询
(1)SELECT子句的应用。

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

在这里插入图片描述
例1:插入

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

在这里插入图片描述
例2:修改

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

在这里插入图片描述
例3:删除

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

		 ALTER TABLE XS_KC1
         DROP CONSTRAINT 成绩_chk1

在这里插入图片描述
(2)WHERE子句的应用。

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

在这里插入图片描述
(3)ORDER BY子句的应用。

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

在这里插入图片描述
(4)聚合函数的应用。

     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'

在这里插入图片描述
(5)聚合操作与分组统计的应用。
例1:

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

在这里插入图片描述
例2:

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

在这里插入图片描述

4.实验总结

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

5.问题解答

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

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值