实验1,数据定义 联系客服

发布时间 : 星期三 文章实验1,数据定义更新完毕开始阅读318cad92daef5ef7ba0d3c84

(2) 在查询分析器中输入如下SQL语句:

USE University_Mis CREATE Table SC( Sno CHAR(5), Cno CHAR(4), Scredit INT,

CONSTRAINT PK_SC PRIMARY KEY(Sno,Cno),

CONSTRAINT FK_SC_Sno FOREIGN KEY(Sno) REFERENCES Stu_Union (Sno) ON DELETE CASCADE,

CONSTRAINT FK_SC_Cno FOREIGN KEY(Cno) REFERENCES Course (Cno) ON DELETE CASCADE );

INSERT INTO SC VALUES('S02','C01',2); INSERT INTO SC VALUES ('S02','C02',2); INSERT INTO SC VALUES ('S01','C01',2); INSERT INTO SC VALUES ('S01','C02',2); SELECT * FROM SC;

(3) 在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT INTO SC VALUES(‘S99’,’C99’,2);

(4) 在查询分析器中输入如下SQL语句:

USE University_Mis

DELETE FROM Stu_Union WHERE Sno=’S01’; SELECT * FROM SC;

(5) 在查询分析器中输入如下SQL语句:

USE University_Mis

DELETE FROM Course WHERE Cno=’C02’; SELECT * FROM SC;

(6) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Stu_Card( Card_id CHAR(14), Sno CHAR(8),

Remained_money DECIMAL(10,2),

Constraint PK_Stu_Card PRIMARY KEY(Card_id),

Constraint FK_Stu_Card_Sno FOREIGN KEY(Sno) REFERENCES Students(Sno) ON DELETE CASCADE )

INSERT INTO Stu_Card VALUES('05212567','S03',400.25);

13

INSERT INTO Stu_Card VALUES('05212222','S09',600.50); SELECT * FROM Stu_card;

(7) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE ICBC_Card( Bank_id CHAR(20), Stu_card_id CHAR(14),

Restored_money DECIMAL(10,2),

constraint PK_ICBC_Card PRIMARY KEY(Bank_id), constraint FK_ICBC_Card_Stu_id FOREIGN KEY(Stu_card_id) REFERENCES Stu_card(card_id) ON DELETE CASCADE )

INSERT INTO ICBC_Card VALUES('9558844022312','05212567',15000.1); INSERT INTO ICBC_Card VALUES('9558844023645','05212222',50000.3); SELECT * FROM ICBC_Card;

(8) 在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Reports DROP [FK_Reports_Sno]; ALTER TABLE Reports ADD

CONSTRAINT [FK_Reports_Students] FOREIGN KEY ( [Sno] ) REFERENCES [dbo].[Students] ( [Sno] ) ON DELETE CASCADE;

DELETE FROM Students WHERE Sno=’S03’; SELECT * FROM Stu_card; SELECT * FROM ICBC_Card;

(9) 在查询分析器中输入如下SQL语句:

ALTER TABLE ICBC_Card

DROP CONSTRAINT FK_ICBC_Card_Stu_id; ALTER TABLE ICBC_Card

ADD CONSTRAINT FK_ICBC_Card_Stu_id FOREIGN KEY (Stu_card_id) REFERENCES Stu_card(Card_id) ON DELETE NO ACTION;

在查询分析器中输入如下SQL语句: Begin Transaction Del

DELETE FROM Stu_Card WHERE Card_id =’05212222’; SELECT * FROM Stu_card; SELECT * FROM ICBC_card; Commit Transaction Del

在查询分析器中输入如下SQL语句:

14

USE University_Mis

SELECT * FROM Stu_card; SELECT * FROM ICBC_card;

(10) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Listen_course( Tno CHAR(6),Tname VARCHAR(20),Cno CHAR(4) CONSTRAINT PK_listen_course PRIMARY KEY(Tno) CONSTRAINT FK_listen_course FOREIGN KEY(Cno) REFERENCES Teach_course(Cno) )

CREATE TABLE Teach_course( Cno CHAR(4),Cname VARCHAR(30),Tno CHAR(6) CONSTRAINT PK_Teach_course PRIMARY KEY(Cno) CONSTRAINT FK_Teach_course FOREIGN KEY(Tno) REFERENCES Listen_course(Tno) )

在查询分析器中输入如下SQL语句: USE University_Mis

CREATE TABLE Listen_course( Tno CHAR(6),Tname VARCHAR(20),Cno CHAR(4) CONSTRAINT PK_listen_Course PRIMARY KEY(Tno) )

在查询分析器中输入如下SQL语句: USE University_Mis

CREATE TABLE Teach_course( Cno CHAR(4),Cname VARCHAR(30),Tno CHAR(6) CONSTRAINT PK_teach_course PRIMARY KEY(Cno) CONSTRAINT FK_teach_course FOREIGN KEY(Tno) REFERENCES Listen_course(Tno) )

ALTER TABLE Listen_course ADD CONSTRAINT FK_listen_course FOREIGN KEY(Cno) REFERENCES Teach_course(Cno);

15

实验9. 用户自定义完整性

9.1 实验目的

学习用户自定义约束,并实践用户自定义完整性,利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。 9.2 实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)建立Teacher表。 建立表Teacher,注意跟前面所建立的Teacher区分开来,

(1) 创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定

Wname Tname字段唯一,U2规定Wage, Tage (级别)字段的上限是28。 (2) 在Worker, Teacher表中插入一条合法记录。

(3) 演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须

<=28。

(4) 去除U2约束。

(5) 重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。 (6) 创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Worker

Teacher的Wsex Tsex字段。

(7) 演示违反规则Rule_sex的插入操作。 9.3 实验步骤

以系统管理员或sa帐号登录查询分析器,在查询分析器窗体下输入如下命令,运行并观察结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Teacher( Tno CHAR(5),

Tname CHAR(8) CONSTRAINT U1 UNIQUE, Tsex CHAR(1),

Tage INT CONSTRAINT U2 CHECK (Tage<=28), Tdept CHAR(20),

CONSTRAINT PK_Teacher PRIMARY KEY(Tno))

(2) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept) VALUES(‘T01’,’李用’,’M’,14,’后勤部’) SELECT * FROM Teacher

(3) 在查询分析器中输入如下SQL语句

USE University_Mis

16