数据库原理及应用教程宿舍分配实验

 

 

 

 

 

 

 

 

 

 

 

CREATE DATABASE MYBASE
CREATE TABLE COLLEGE
(CID VARCHAR(6) PRIMARY KEY,
CNAME VARCHAR(10),
CSNUM INT,
CTEL VARCHAR(15)
)
CREATE TABLE ROOM1
(RID VARCHAR(6) PRIMARY KEY,
TYPE1 VARCHAR(8),
LOCATION1 VARCHAR(11),
NORM VARCHAR(6)
)
CREATE TABLE ADMIN1
(AID VARCHAR(6) PRIMARY KEY,
ANAME VARCHAR(8),
ASEX VARCHAR(4) NOT NULL DEFAULT '男',
ATEL VARCHAR(14))
SELECT *
FROM COLLEGE
SELECT *
FROM ROOM1
SELECT *
FROM ADMIN1
CREATE TABLE MANAGE
(RID VARCHAR(6)FOREIGN KEY REFERENCES ROOM1(RID),
AID VARCHAR(6)FOREIGN KEY REFERENCES ADMIN1(AID),
DUTY VARCHAR(8),
PRIMARY KEY (RID,AID)
)
CREATE TABLE ASSIGN
(CID VARCHAR(6) FOREIGN KEY REFERENCES COLLEGE(CID),
RID VARCHAR(6) FOREIGN KEY REFERENCES ROOM1(RID),
ADATE DATE ,
PRIMARY KEY (CID,RID)
)
SELECT *
FROM MANAGE
SELECT *
FROM ASSIGN
INSERT INTO COLLEGE VALUES ('C001','信息学院',1500,'0743-8563673'),
('C002','数统学院',1200,'0743-8564884'),
('C003','外国语学院',1000,'0743-8563663'),
('C004','化工学院',600,'0743-8564126'),
('C005','物电学院',1300,'0743-8564899'),
('C006','资环学院',500,'0743-8564666')
INSERT INTO ROOM1 VALUES ('R001','女生宿舍','1栋201室','4人间'),
('R002','女生宿舍','3栋202室','8人间'),
('R003','男生宿舍','2栋101室','4人间'),
('R004','男生宿舍','2栋202室','6人间'),
('R005','男生宿舍','3栋301室','6人间'),
('R006','男生宿舍','3栋401室','6人间')
INSERT INTO ADMIN1 VALUES ('A001','张三','女','13578787436'),
('A002','刘宫美','女','13574338909'),
('A003','舒敏','女','15074331212'),
('A004','张子恒','男','13974335083'),
('A005','张俊杰','男','13574331218')
INSERT INTO MANAGE VALUES ('R001','A002','主责任人'),
('R002','A003','主责任人'),
('R002','A002','副责任人'),
('R003','A004','主责任人'),
('R004','A004','副责任人')
INSERT INTO ASSIGN VALUES ('C005','R002','2022-04-09'),
('C006','R001','2022-04-11'),
('C002','R004','2022-04-09'),
('C002','R005','2022-04-09'),
('C003','R006','2022-04-20')
SELECT *
FROM COLLEGE
SELECT *
FROM ROOM1
SELECT *
FROM ADMIN1
SELECT *
FROM MANAGE
SELECT *
FROM ASSIGN
/*连接查询*/
SELECT CNAME,CTEL
FROM COLLEGE,ROOM1,ASSIGN
WHERE TYPE1='女生宿舍' AND ASSIGN.CID=COLLEGE.CID AND ROOM1.RID=ASSIGN.RID
/*DISTINCT,消去重复行*/
SELECT DISTINCT NORM
FROM ROOM1
/**/
UPDATE ROOM1
SET NORM='4人间'
WHERE LOCATION1 LIKE '3栋%'
SELECT *
FROM ROOM1
ORDER BY DESC
ORDER BY DESC/*降序排序*/
SELECT ADMIN1.AID,ANAME,COUNT(RID) AS 管理间数/*COUNT统计个数*/
FROM MANAGE,ADMIN1
WHERE MANAGE.AID=ADMIN1.AID
GROUP BY ADMIN1.AID,ANAME/*GROUP BY分组统计*/

CREATE VIEW ASSIGNINF
AS SELECT ROOM1.RID,TYPE1,NORM,CNAME,CTEL
FROM COLLEGE,ROOM1,ASSIGN
WHERE ASSIGN.CID=COLLEGE.CID AND ASSIGN.RID=ROOM1.RID AND ADATE ='2022-04-09'
SELECT *
FROM ASSIGNINF
CREATE FUNCTION A1/*创建内联表值函数*/
(@ANAME VARCHAR(8))
RETURNS @D TABLE
(ANAME VARCHAR(8),
RID VARCHAR(12),
LOCATION1 VARCHAR(11),
DUTY VARCHAR(8)
)
AS
BEGIN
  INSERT INTO @D
  SELECT ROOM1.RID,LOCATION1,ANAME,DUTY
  FROM ROOM1,ADMIN1,MANAGE
  WHERE ROOM1.RID=MANAGE.RID AND MANAGE.AID=ADMIN1.AID AND @ANAME=ANAME
  RETURN
END
SELECT * FROM A1('刘宫美')WHERE DUTY='主责任人'

create procedure Myproc/*创建存储过程*/
(
@Cid varchar(20),
@Cname varchar(20),
@Csnum int=1000,
@Ctel varchar(20)
)
as insert into College values(@Cid,@Cname,@Csnum,@Ctel)
exec MyProc @Cid='C008',@Cname='软件工程学院',@Csnum=1600,@Ctel='0744-6256226'

 时间原因,部分题目代码未验证,如有错漏,请评论指出,不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值