10、写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束。
答:
(1)“图书表”结构如下:
书号:统一编码定长类型,长度为6,主码
书名:统一编码可变长类型,长度为30,非空
第一作者:普通编码定长类型,长度为10,非空
出版日期:小日期时间类型
价格:定点小数,小数部分1位,整数部分3位
Create table 图书表(
书号 nchar(6) primary key,
书名nvarchar (30 ) not null,
第一作者char(10) not null,
出版日期smalldatetime ,
价格: numeric ( 4,1)
(2)“书店表”结构如下:
书店编号:统一编码定长类型,长度为6,主码
店名:统一编码可变长类型,长度为30,非空
电话:普通编码定长字符类型,8位长,每一位的取值均是0~9的数字
地址:普通编码可变长字符类型,40位长
邮政编码:普通编码定长字符类型,6位长
Create table书店表(
书店编号nchar ( 6) primary key,
店名nvarchar (30 ) not null,
电话char ( 8) check (电话like'[O-9] [0-9][0-9][0-9] [0-9][0-9][0-9][ O-9]’ ),
地址 varchar ( 40) ,
邮政编码char (6)
(3)“图书销售表”结构如下:
书号:统一编码定长类型,长度为6,非空
书店编号:统一编码定长类型,长度为6,非空
销售日期:小日期时间类型,非空
销售数量:微整形,大于等于1
主码为(书号,书店编号,销售日期);其中“书号”为引用“图书表”的“书号”的外码;“书店编号”为引用“书店表”的“书店编号”的外码。
Create table图书销售表(
书号nchar ( 6) not null,
书店编号nchar( 6) not null,
销售日期smalldatetime no tnull;
销售数量smalldatetime check(销售数量>= 1);
11.为“图书表”添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。
答: alter table图书表 Add印刷数量int check(印刷数量>= 1000 )
12.删除“书店表”中的“邮政编码”列。
答: alter table书店表Drop co lumn邮政编码
13.将“图书销售表”中的“销售数量”列的数据类型改为整型。答: alter table图书销售表Alter column销售数量int
浙公网安备 33010602011771号