加载中…
个人资料
李越能
李越能
  • 博客等级:
  • 博客积分:0
  • 博客访问:124
  • 关注人气:2
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数据库实验(基于SQL Server) 建立表和定义完整性约束 李越能

(2015-12-02 22:39:03)
标签:

李越能

编程

sqlserver

it

数据库


实验二 建立表和定义完整性约束

实验名称:建立模式、表和定义完整性约束

实验内容:在实验1建立数据库的基础上,参照图和表建立表并定义完整性约束

实验目的:熟练掌握表的建立和数据完整性约束的定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解

实验方法:在实验1建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束(注意:需要有CREATE SCHEMACREATE TABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见第5.2节),用ALTER TABLE命令修改表结构

实验要求:

1.  CREATE SCHEMA命令建立模式

实验代码:

create database lynum

create schema lyn

 

 

2.  在定义的模式下参照图和表使用CREATE TABLE命令建立表并定义完整性约束

代码如下:

 

//创建仓库表

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.  使用ALTER TABLE命令按如下要求修改表结构:

(1)  为订购单表增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。

alter table lyn.list

addfinishdate datetime default null


 

(2)  为订单明细表的“数量”字段重新定义约束:大于0,小于等于1000的正整数。

alter table lyn.listdetails

add check(amount<=1000)

 

 

(3)  将供应商表的供应商名字段的类型修改为varchar30

alter table lyn.businessman

alter column businessmanname varchar(30)

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有