数据库作业13:第五章课后题

数据库作业13:第五章课后题

本文可分为以下几个内容

第六题

在这里插入图片描述

CREATE TABLE 部门
	(部门号 CHAR(9) PRIMARY KEY,
	名称 CHAR(9),
	经理名 CHAR(9),
	电话 CHAR(11)
);

CREATE TABLE 职工
	(职工号 CHAR(20) PRIMARY KEY,
	姓名 CHAR(9),
	年龄 SMALLINT CHECK (年龄<=60),
	职务 CHAR(9),
	工资 SMALLINT,
	部门号 CHAR(9),
	FOREIGN KEY(部门号) REFERENCES 部门(部门号)
);

在这里插入图片描述

第二题

在这里插入图片描述
2.1

IF (EXISTS(SELECT *FROM SYS.OBJECTS WHERE NAME='LSSX'))
BEGIN
	DROP PROCEDURE LSSX
END

GO
CREATE PROCEDURE LSSX
@NAME CHAR(9)
AS
BEGIN TRANSACTION AC
	DECLARE @ONE int,@TWO INT,@THREE INT,@FOUR INT,@FIVE INT,@Cno CHAR(10), @CNT INT
		SELECT @Cno=Cno FROM Course WHERE @NAME=Cname
		SELECT @Cnt=COUNT(*) FROM SC WHERE @Cno=Cno;
	IF @CNT=0
	BEGIN
		PRINT'NOT HAVE STUDENT OR NOT HAVE CLASS'
		ROLLBACK TRANSACTION AC;
	END;
		SELECT @ONE=COUNT(*) FROM SC WHERE @Cno=SC.Cno AND SC.Grade<60;
		SELECT @TWO=COUNT(*) FROM SC WHERE @Cno=SC.Cno AND SC.Grade<70 AND SC.Grade>=60;
		SELECT @THREE=COUNT(*) FROM SC WHERE @Cno=SC.Cno AND SC.Grade<80 AND SC.Grade>=70;
		SELECT @FOUR=COUNT(*) FROM SC WHERE @Cno=SC.Cno AND SC.Grade<90 AND SC.Grade>=80;
		SELECT @FIVE=COUNT(*) FROM SC WHERE @Cno=SC.Cno AND SC.Grade<90 AND SC.Grade>=100;
		PRINT'[0,60):'PRINT @ONE;
		PRINT'[60,70):'PRINT @TWO;
		PRINT'[70,80):'PRINT @THREE;
		PRINT'[80,90):'PRINT @FOUR;
		PRINT'[90,100]:'PRINT @FIVE;
COMMIT TRANSACTION AC;

在这里插入图片描述

EXEC LSSX
@NAME = '离散数学';

在这里插入图片描述

2.2

CREATE PROCEDURE AG
@NAME CHAR(9)
AS
BEGIN TRANSACTION AC
	DECLARE 
		@Cno CHAR(4),
		@SAVG SMALLINT
		SELECT @Cno=Cno FROM Course WHERE @NAME=Cname;
		IF @Cno IS NULL
		BEGIN 
			PRINT 'NOT HAVE THE CLASS'
			ROLLBACK TRANSACTION AC;
		END;
		SELECT @SAVG=AVG(Grade) FROM SC WHERE @Cno=CNO;
		PRINT'THE AVG IS:'+CONVERT(VARCHAR,@SAVG)
		COMMIT;

在这里插入图片描述

EXEC AG
@NAME='离散数学';

在这里插入图片描述
2.3

ALTER TABLE SC
ADD LEVEL CHAR(9)
GO
CREATE PROCEDURE DEJ
AS
	UPDATE SC SET LEVEL='A' WHERE Grade>=90;
	UPDATE SC SET LEVEL='B' WHERE Grade>=80 AND Grade<90;
	UPDATE SC SET LEVEL='C' WHERE Grade>=70 AND Grade<80;
	UPDATE SC SET LEVEL='D' WHERE Grade>=60 AND Grade<70;
	UPDATE SC SET LEVEL='E' WHERE Grade<60;

在这里插入图片描述

EXEC DEJ
SELECT * FROM SC;

在这里插入图片描述
以上为本次作业的全部内容!

感谢阅读~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值