数据库实验(基于SQL Server) 建立表和定义完整性约束 李越能
(2015-12-02 22:39:03)
标签:
李越能编程sqlserverit数据库 |
实验二 建立表和定义完整性约束
实验名称:建立模式、表和定义完整性约束
实验内容:在实验1建立数据库的基础上,参照图和表建立表并定义完整性约束
实验目的:熟练掌握表的建立和数据完整性约束的定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解
实验方法:在实验1建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束(注意:需要有CREATE SCHEMA和CREATE TABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见第5.2节),用ALTER TABLE命令修改表结构
实验要求:
1.
实验代码:
create database lynum
create schema lyn
2.
代码如下:
//创建仓库表
create table lyn.warehouse(
warehousenumber char(6) primary key check(warehousenumber like '[A-Z][A-Z][0-9][0-9][0-9][0-9]'),
city char(10) unique not null,
demi int check(demi >= 50)
)
//创建职工表
create table lyn.worker(
workernumber char(8) primary key check(workernumber like '[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'),
warehousenumber char(6) references lyn.warehouse(warehousenumber) null,
salary money check(salary between 1000 and 10000)
)
//创建供应商表
create table lyn.businessman(
businessmannumber char(4) primary key check(businessmannumber like '[S][0-9][0-9][0-9]'),
businessmanname char(16),
address char(30)
)
//创建订购单表
create table lyn.list(
workernumber char(8 )foreign key references lyn.worker(workernumber) not null,
busniessmannumber char(4) foreign key references lyn.businessman(businessmannumber) null,
listnumber char(6) primary key check(listnumber like '[O][R][0-9][0-9][0-9][0-9]'),
amountofmoney money default null,
date datetime default getdate()
)
//创建订购单明细表
create table lyn.listdetails(
listnumber char(6) foreign key references lyn.list(listnumber)
on delete cascade
on update cascade not null ,
ordernumber tinyint ,
productname char(20),
unitprice money check(unitprice > 0) default null,
amount int check(amount > 0) not null
primary key (listnumber,ordernumber)
)
3.
(1)
alter table lyn.list
addfinishdate datetime default null
(2)
alter table lyn.listdetails
add check(amount<=1000)
(3)
alter table lyn.businessman
alter column businessmanname varchar(30)