实验题目:创建数据表与修改数据表
1、实验目的
理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。
2、实验内容及要求
理解和掌握SQL DDL语句的语法,特别是各种参数的具体含义和使用方法;使用SQL语句创建、修改和删除数据库、模式和基本表。掌握SQL语句常见语法错误的调试方法。
3、实验步骤
(1)写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束。
①“图书表”结构如下:
书号:统一字符编码定长类型,长度为6,主码
书名:统一字符编码可变长类型,长度为30,非空
第一作者:普通编码定长字符类型,长度为10,非空
出版日期:小日期时间型
价格:定点小数,小数部分1位,整数部分3位
create table 图书表(
书号 nchar(6) primary key,
书名 nvarchar(30) not null,
第一作者 char(10) not null,
出版日期 smalldatetime,
价格 numeric(4,1)
)
image.png
②“书店表”结构如下:
书店编号:统一字符编码定长类型,长度为6,主码
店名:统一字符编码可变长类型,长度为30,非空
电话:普通编码定长字符类型,8位长,每一位的取值均是0~9的数字
地址:普通邮编可变长字符类型,40位长
邮政编码:普通编码定长字符类型,6位长
create table 书店表(
书店编号 nchar(6) primary key,
店名 nvarchar(30) not null,
电话 char(8) check(电话 like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),
地址 varchar(40),
邮政编码 char(6)
)
image.png
③“图书销售表”结构如下:
书号:统一字符编码定长类型,长度为6,非空
书店编号:统一字符编码定长类型,长度为6,非空
销售日期:小日期时间型,非空
销售数量:微整型,大于等于1
主码为(书号,书店编号,销售日期);其中“书号”为引用“图书表”的“书号”的外码;“书店编号”为引用“书店表”的“书店编号”的外码。
create table 图书销售表(
书号 nchar(6) not null,
书店编号 nchar(6) not null,
销售日期 smalldatetime not null,
销售数量 smallint check(销售数量>=1),
primary key(书号,书店编号,销售日期),
foreign key(书号) references 图书表(书号),
foreign key(书店编号) references 书店表(书店编号)
)
image.png
(2)为图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于或等于1000。
alter table 图书表
add 印刷数量 int check(印刷数量>=1000)
image.png
(3)删除书店表中的“邮政编码”列。
alter table 书店表
drop column 邮政编码
image.png
(4)将图书销售表的“销售数量”列的数据类型改为整型。
alter table 图书销售表
alter column 销售数量 int
头部.gif