4:代码:
drop database test1
实验一 4图
实验二 建立表和定义完整性约束
实验名称:建立模式、表和定义完整性约束
实验内容:在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。 面积 仓库 仓库号 城市 职工 供应商 职工号 工资 供应商号 供应商名 地址 仓库号 订购单 职工号 供应商订购单号 订购日期 金额 订购单明细 订购单号 序号 产品名称 单价 数量 图1 订货数据库
表1 订货数据库字段和约束说明 表名 仓库 字段名 仓库号 城市 面积 职工 职工号 经理 工资 供应商 供应商号 供应商名 地址 订购单 职工号 供应商号 订购单号 订购日期 金额 订购单明细 订购单号 字段类型 6个字符 数值 8个字符 货币 4个字符 关键字 约束说明 是 是 是 唯一,不允许空值 大于等于50 主键 不为空值 参照仓库的仓库号,允许空值。 大于等于1000,小于等于10000 参照职工表的职工号,不允许空值 参照供应商表的供应商号,允许空值 默认是当前日期 默认空值 参照订购单表的订购单号,不允许空值 10个字符 16个字符 30个字符 6个字符 日期 货币 是 是 序号 产品名称 单价 数量 2位数字 货币 整数 是 大于0,默认空值 大于0,不允许空值 20个字符
实验目的:熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
实验方法:在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束(注意:需要有CREATE SCHEMA和CREATE TABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见课文5.2节),用ALTER TABLE命令修改表结构。 实验要求:
1、 用CREATE SCHEMA命令建立模式(自己命名模式名称)。
2、 在定义的模式下参照图1和表1使用CREATE TABLE命令建立表并定义完整性约束。 3、 使用ALTER TABLE命令按如下要求修改表结构:
a) 为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。 b) 为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,
不允许为空值。
c) 将供应商表的供应商名字段的类型修改为varchar(30)。 相关命令
CREATE SCHEMA命令的基本格式是(详细解释参见课文第3.3.1节): CREATE SCHEMA schema_name
CREATE TABLE命令的基本格式是(详细解释参见课文第3.3.2节): CREATE TABLE [schema_name].table_name
( {
其中列定义(column_definition)的基本格式是: Column_name
{ { PRIMARY KEY | UNIQUE } | FOREIGN KEY ( column [ ,...n ] ) REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] | CHECK ( logical_expression ) }
如果需要还可以定义计算列(computed_column_definition)和表级约束(table_constraint)。 ALTER TABLE命令的基本格式是(详细解释参见课文3.3.2节): ALTER TABLE [schema_name.]table_name
{ ALTER COLUMN column_name
| ADD
1 代码:
create schema kun 、
2 代码:
1)create table kun.仓库 (仓库号char(6)primary key, 城市char(10),
面积char(10) check (面积in('>=50')))
2)create table kun.职工 (职工号char(8) primary key,
仓库号char(6) foreign key references kun.仓库,
工资money check (工资in('between 1000 and 10000')))