一、实验准备
(1)运行SQL-SERVER服务管理器, 启动服务
(2)运行查询分析器, 以DBA身份登录数据库服务器:
用户名sa, 密码123456
(3)打开CREATE-TABLE.SQL并执行, 建立有关表.
“CREATE-TABLES.SQL”文件 https://www.cnblogs.com/wkfvawl/p/10843788.html
二 实验内容
1. 建立图书管理有关表,要求有完整性约束(实体,参照,用户定义):
注意: 外码与对应主码的类型一致!
出版社( 出版社号, 出版社名) 主码?
PUBLISHER(PNO,PNAME)
图书(书号,书名,价格,作者, 出版社号) 主码?外码?
BOOK(BNO,TITLE, PRICE, AUTHOR , PNO)
读者(读者号,姓名,性别,年龄)主码?
READER(RNO,NAME, AGE, SEX)
借阅(读者号,书号,借日期,还日期) 日期类型DATETIME,主码?外码?
LOAN(RNO, BNO, LOANDATE, RETURNDATE)
数据类型:
CHAR(n) 字符型
INT 整型
NUMERIC ( 精度,小数位数) 实型 精度是总有效位数
DATETIME 日期型
建立PUBLISHER的语句截图:
CREATE TABLE PUBLISHER ( PNO CHAR(10) PRIMARY KEY, PNAME CHAR(20) NOT NULL )
建立BOOK的语句截图:
CREATE TABLE BOOK ( BNO CHAR(10) PRIMARY KEY, TITLE CHAR(40) NOT NULL, PRICE NUMERIC(5,2) NOT NULL, AUTHOR CHAR(20) NOT NULL, PNO CHAR(10) REFERENCES PUBLISHER(PNO) )
建立READER的语句截图:
CREATE TABLE READER ( RNO CHAR(10) PRIMARY KEY, RNAME CHAR(20) NOT NULL, AGE INT NOT NULL, SEX CHAR(20) CHECK (SEX IN ('男','女')) )
建立LOAN的语句截图(约束还书日期>=借书日期,
(CHECK约束涉及多个列, 用元组级CHECK实现)
CREATE TABLE LOAN ( RNO CHAR(10), BNO CHAR(10), LOANDATE DATETIME, RETURNDATE DATETIME, PRIMARY KEY(RNO,BNO), FOREIGN KEY (RNO) REFERENCES READER(RNO), FOREIGN KEY (BNO) REFERENCES BOOK (BNO), CHECK (RETURNDATE>=LOANDATE) )