数据库——SQL-SERVER练习(4) 建表及数据完整性

1、 输入下图的语句, 建立学生表STU.

CREATE TABLE STU
(
      SNO NUMERIC(5) PRIMARY KEY,
      SNANE CHAR(6) NOT NULL,
      SSEX CHAR(2) CHECK (SSEX IN ('','')),
      SDEPT CHAR(10)
);

2、输入下图的语句, 建立课程表COU.

CREATE TABLE COU
(
      CNO NUMERIC(2) PRIMARY KEY,
      CNANE CHAR(10) NOT NULL UNIQUE,
      CPNO NUMERIC(2) REFERENCES COU(CNO),
      CCREDIT NUMERIC(2)
);

3、输入下图的语句, 建立选课表STUCOU.

CREATE TABLE STUCOU
(
      SNO NUMERIC(5) REFERENCES STU(SNO), 
      CNO NUMERIC(2) REFERENCES COU(CNO),
      GRADE NUMERIC(6,2),
      PRIMARY KEY(SNO,CNO)
);

4、 建立供应商表:   ST(Sno,Sname,City)  
     各列数据类型分别为( CHAR(8), CHAR(20), CHAR(20) )
     约束:Sno为主码,Sname唯一,City非空

CREATE TABLE ST
(
      SNO CHAR(8) PRIMARY KEY,
      SNAME CHAR(20) UNIQUE,
      CITY CHAR(20) NOT NULL
)


5、建立零件表:  PT(Pno,Pname,Color)
     各列数据类型分别为( CHAR(8), CHAR(20), CHAR(20) )
     约束:Pno为主码,Pname非空,Color只能是红,黑,蓝

CREATE TABLE PT
(
      PNO CHAR(8) PRIMARY KEY,
      PNAME CHAR(20) NOT NULL,
      COLOR CHAR(20) CHECK (COLOR IN ('','',''))
)

 6、建立工程表:  JT(Jno,Jname)        
     各列数据类型分别为( CHAR(8),  CHAR(20) )
     约束:Jno为主码,Jname唯一

CREATE TABLE JT
(
      JNO CHAR(8) PRIMARY KEY,
      JNAME CHAR(20) UNIQUE
)

7、建立供应表:  SPJT(Sno,Pno,Jno,Qty)
     各列数据类型分别为( CHAR(8),CHAR(8),CHAR(8), INT )
     约束:(Sno,Pno,Jno)为主码,   Qty要大于0
      Sno是外码参照ST,Pno是外码参照PT, Jno是外码参照JT

CREATE TABLE SPJT
(
      SNO CHAR(8) REFERENCES ST(SNO),
      PNO CHAR(8) REFERENCES PT(PNO),
      JNO CHAR(8) REFERENCES JT(JNO),
      QTY INT CHECK (QTY>0),
      PRIMARY KEY (SNO,PNO,JNO)
)

8、查看批处理文件CREATE_TABLES.SQL中对学生三个表的定义(不用执行),  写出以下引起完整性约束报错的操作语句,记录显示的出错信息,并解释操作违反了何种数据完整性?

(1) 执行下面语句:

insert INTO STUDENT(sname, ssex,sage,sdept) values( '刘楠','',20,'CS');

1).出错信息

2). 对出错信息的解释( 出错原因, 违反了哪种完整性等):

出错原因,主属性为空置,违反了实体完整性。

猜你喜欢

转载自www.cnblogs.com/wkfvawl/p/10845289.html