声明:本博文如存在问题,欢迎各位dalao指正!!!
实验目的与任务:
掌握对数据库和表对象的操作及管理。
一.创建数据库library
CREATE DATABASE libary;
二.进入数据库
USE library;
三.开始建库建表
1.借阅人员分类信息表:Clas_User
DROP TABLE IF EXISTS Class_User;
CREATE TABLE Class_User(
classNo TINYINT NOT NULL PRIMARY KEY,
cname VARCHAR(20) NOT NULL UNIQUE,
term TINYINT NOT NULL default 30,
ceilingNum TINYINT NOT NULL
);
2.图书信息表:BookInfo
DROP TABLE IF EXISTS BookInfo;
CREATE TABLE BookInfo(
ISBN CHAR(13) NOT NULL PRIMARY KEY,
bname VARCHAR(60) NOT NULL,
author VARCHAR(30) NOT NULL,
press VARCHAR(40) NOT NULL,
price FLOAT NOT NULL,
language VARCHAR(20) DEFAULT '中文',
pages int
);
3.图书目录表:Books
DROP TABLE IF EXISTS Books;
CREATE TABLE Books(
bookNo CHAR(9) PRIMARY KEY,
ISBN CHAR(13),
location VARCHAR(40) ,
bstatus CHAR(1),
ctr_no TINYINT,
CHECK(bstatus='0' OR bstatus='1' OR bstatus='2' OR bstatus='3'),
FOREIGN KEY (ISBN) REFERENCES BookInfo(ISBN)
);
4.借阅人员的信息表:Users
DROP TABLE IF EXISTS Users;
CREATE TABLE Users(
loanNo VARCHAR(16) NOT NULL PRIMARY KEY,
lname VARCHAR(30) NOT NULL,
pwd VARCHAR(16) NOT NULL,
unitName VARCHAR(50) NOT NULL,
registerDate DATE NOT NULL,
classNo TINYINT NOT NULL,
email VARCHAR(40)
);
5.借阅信息表:Loan
DROP TABLE IF EXISTS Loan;
CREATE TABLE Loan(
bookNo CHAR(9) NOT NULL PRIMARY KEY,
loanNo VARCHAR(16)NOT NULL,
borrowDate DATETIME NOT NULL,
FOREIGN KEY(loanNo) REFERENCES Users(loanNo),
FOREIGN KEY(bookNo) REFERENCES Books(bookNo)
);
6.借阅历史表:LoanHist
DROP TABLE IF EXISTS LoanHist;
CREATE TABLE LoanHist(
loanNo VARCHAR(16) NOT NULL,
bookNo CHAR(9) NOT NULL,
borrowDate DATETIME NOT NULL,
returnDate DATETIME NOT NULL,
primary key(bookNo,loanNo,borrowDate),
foreign key(bookNo) references Books(bookNo),
foreign key(loanNo) references Users(loanNo)
);
7.预约表:Reservation
DROP TABLE IF EXISTS Reservation;
CREATE TABLE Reservation(
ISBN CHAR(13) NOT NULL,
loanNo VARCHAR(16) NOT NULL,
reservation_Date DATETIME NOT NULL,
rsratus CHAR(1) NOT NULL,
primary key(ISBN,loanNo,reservation_Date),
foreign key(ISBN) references BookInfo(ISBN),
foreign key(loanNo) references Users(loanNo)
);
8.收费表:Money
DROP TABLE IF EXISTS Money;
CREATE TABLE Money(
ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
loanNo VARCHAR(16) NOT NULL,
bookNo CHAR(9),
amount FLOAT ,
reason ENUM('过期罚款','损坏赔偿','丢失赔偿','办证费','办证押金'),
billdate DATETIME NOT NULL
);