数据库——SQL-SERVER练习(6) 数据库安全性

一、实验准备

(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 ('',''))
)

扫描二维码关注公众号,回复: 6201193 查看本文章


建立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)
)

猜你喜欢

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