本文不讲述基本语句的语法,只是举例复习常用的、基础的操作。不适合初学者用来学习,可用于期末或者面试的时候快速复习。
概述
设计一个“图书借阅数据库系统”,对图书表 book、读者表 reader、借阅记录表 record 等进行数据表的详细设计。
创建数据表
1. 创建表
创建读者表 reader
CREATE TABLE reader (
reader_id char(8) NOT NULL PRIMARY KEY, //创建主键方法1
reader_name nvarchar(50) NOT NULL,
reader_sex char(2) NOT NULL,
reader_department nvarchar (60) NOT NULL,
CONSTRAINT ck_idr CHECK ( reader_id like ‘[0~9] [0~9] [0~9] [0~9] [0~9] [0~9] [0~9] [0~9]’) //检查约束
//PRIMARY KEY (reader_id ),//创建主键方法2
) GO
创建图书表book
CREATE TABLE book (
book_id char(8) NOT NULL,
book_name nvarchar(50) NOT NULL,
book_isbn char(17) NOT NULL,
book_author nvarchar(10) NOT NULL,
book_publisher nvarchar(50) NOT NULL,
interview_times smallint NOT NULL,
price money NOT NULL,
CONSTRAINT un_isbn UNIQUE (book_isbn) //唯一性约束
) GO
创建借阅记录表record
CREATE TABLE record (
reader_id char(8) NOT NULL,
book_id char(8) NOT NULL,
borrow_date date NOT NULL DEFAULT getdate( ), //默认值约束
return_date date NOT NULL,
notes nvarchar(50) NOT NULL,
PRIMARY KEY (reader_id,book_id),
CONSTRAINT fk_reader FOREIGN KEY (reader_id) REFERENCES reader(reader_id), CONSTRAINT fk_book FOREIGN KEY (book_id) REFERENCES book(book_id),
) GO
2. 修改数据表结构
插入列
在图书表 book 中插入列“total smallint NOT NULL”
ALTER TABLE book
ADD total smallint NOT NULL
GO
注意:在数据表中已有数据的情况下,新增列必须允许新增列为空。否则, 表中已有数据行的那些新增列的值为空与新增列不允许为空相矛盾,会导致新增列操作失败。
修改列的数据类型
在图书表 book 中修改 interview_times 列的数据类型