数据库原理及应用教程瑜伽实验

  部分借鉴了~晚风微凉~数据库原理及应用教程上机实验考试_~晚风微凉~的博客-CSDN博客

本文用于个人复习,所以仅给出代码,就不详细解释了,如有疑问,请评论,有空回复。

 

 

 

 

 

 

 

 

 

 

CREATE DATABASE YOGA
CREATE TABLE MEMBER3
(MID CHAR(4) PRIMARY KEY,
MNAME VARCHAR(6) NOT NULL,
MSEX VARCHAR(3) DEFAULT '男',
MAGE INT,
MTEL VARCHAR(11),
)

CREATE TABLE ROOM3
(RID CHAR(4) PRIMARY KEY,
RLOC VARCHAR(4),
RTYPE VARCHAR(6),
)

CREATE TABLE COACH3
(CID CHAR(4) PRIMARY KEY,
CNAME VARCHAR(6) NOT NULL,
CTEL VARCHAR(11),
)

CREATE TABLE UTILIZE3
(CID CHAR(4) PRIMARY KEY,
RID CHAR(4) FOREIGN KEY REFERENCES ROOM3(RID),
UDATE VARCHAR(5),
UHOURS INT,
)
ALTER TABLE UTILIZE3
ALTER COLUMN UDATE VARCHAR(6)
CREATE TABLE TRAIN
(CID CHAR(4) FOREIGN KEY REFERENCES COACH3(CID),
MID CHAR(4) PRIMARY KEY,
TDAYS INT,
TCOSTS INT,
)

INSERT INTO MEMBER3 VALUES ('M001','张三','男',20,'13768597338'),
('M002','陈兰','女',28,'13574339090'),
('M003','刘丽','女',38,'13273200222'),
('M004','赵君','男',46,'15073360123'),
('M005','张灵灵','女',39,'18607310909')
INSERT INTO ROOM3 VALUES ('R001','1楼','贵宾室'),
('R002','1楼','贵宾室'),
('R003','1楼','普通室'),
('R004','2楼','普通室'),
('R005','2楼','普通室')
INSERT INTO COACH3 VALUES ('C001','王敏','13574300016'),
('C002','周英','13507430018'),
('C003','李文莉','13807430019'),
('C004','王虹','18007430020'),
('C005','王依依','18107430021')
INSERT INTO UTILIZE3 VALUES ('C001','R001','星期一',8),
('C002','R002','星期二',10),
('C003','R004','星期五',8),
('C004','R003','星期五',6),
('C005','R002','星期五',4)
INSERT INTO TRAIN VALUES ('C001','M002',30,3000),
('C001','M003',20,2000),
('C002','M005',20,1000),
('C002','M001',40,2000),
('C005','M004',30,2500)

SELECT *
FROM MEMBER3
SELECT *
FROM ROOM3
SELECT *
FROM COACH3
SELECT *
FROM UTILIZE3
SELECT *
FROM TRAIN
/* 连接查询*/
SELECT CNAME,MNAME,MSEX,MAGE
FROM COACH3,TRAIN,MEMBER3
WHERE TRAIN.CID=COACH3.CID AND TRAIN.MID=MEMBER3.MID AND CNAME LIKE '王%'

/*分组查询 */
SELECT RTYPE AS 类型,COUNT(*) AS 个数
FROM ROOM3
GROUP BY RTYPE
/*打折降序显示,暂时不会合并 */
UPDATE TRAIN
SET TCOSTS=0.9*TCOSTS
WHERE TCOSTS>=1800
SELECT MNAME,TCOSTS,MTEL,CNAME,CTEL
FROM TRAIN,COACH3,MEMBER3
WHERE TRAIN.CID=COACH3.CID AND TRAIN.MID=MEMBER3.MID
/*子查询 */
SELECT CID,CNAME
FROM COACH3
WHERE CNAME NOT IN(SELECT CNAME
FROM COACH3
WHERE CID IN(SELECT CID
FROM UTILIZE3
WHERE RID='R002'))
/* 视图*/
CREATE VIEW VIPINF
AS SELECT ROOM3.RID,RTYPE,CNAME,MNAME,MTEL
FROM ROOM3,MEMBER3,UTILIZE3,TRAIN,COACH3
WHERE RTYPE='贵宾室' AND ROOM3.RID=UTILIZE3.RID AND UTILIZE3.CID=TRAIN.CID AND TRAIN.MID=MEMBER3.MID AND COACH3.CID=UTILIZE3.CID
SELECT *
FROM VIPINF
/* 内联表值函数*/
CREATE FUNCTION FUN1(@UHOURS INT)
RETURNS TABLE
AS
RETURN SELECT ROOM3.RID,RLOC,RTYPE,UHOURS 
FROM UTILIZE3,ROOM3 
WHERE ROOM3.RID=UTILIZE3.RID AND @UHOURS>=UHOURS
SELECT * FROM FUN1(7)
/* 触发器*/
CREATE TRIGGER TIGG
ON COACH3
AFTER DELETE
AS
 DELETE FROM TRAIN
 WHERE TRAIN.CID
 IN(SELECT CID FROM deleted)
 GO
ALTER TABLE TRAIN
DROP CONSTRAINT FK__TRAIN__CID__33D4B598/*撤除约束,可执行下列*/
DELETE FROM COACH3 
WHERE CID = (SELECT CID
FROM TRAIN
WHERE MID='M001')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值