湘潭大学数据库实验1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》实验教学指导书
实验一数据模型设计与实现撰写人:郭云飞
湘潭大学
信息工程学院
二○一六年四月
实验一数据模型设计与实现
一.上机目的
1.了解并掌握数据模型的设计。
2.了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义。3.了解并掌握Oracle中的用Alter命令和Drop命令对表的修改和删除。
二.预备知识
1.E-R图图例
图例一(教材第5版)
矩形,表示实体集
菱形,表示联系集
线段
椭圆,表示属性
下划线标识主键属性
图例二(教材第6版)
矩形,表示实体集
菱形,表示联系集
线段
属性在实体矩形内列出
下划线标识主键属性
2.Oracle数据类型
3.CREATE TABLE命令
1)CREATE TABLE table_name( column_name type(size), column_name type(size), …);
2)CREATE TABLE table_name [(column_name,…)] AS SELECT statement;
新建一张表,用于保存查询结果。
4.完整性约束
Oracle允许用户为表和列定义完整性约束来增强一定的规则。
可分为:表约束和属性约束
1)NOT NULL约束
NOT NULL约束保证属性值不能为NULL。没有NOT NULL约束的属性,值可以为NULL。
2)UNIQUE约束
指定一个属性或者属性的集合为唯一键。在表中没有两行具有相同的值。如果唯一键是基于单条记录的,NULL是允许的。
表约束命令格式:
,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …)
属性约束命令格式:
[CONSTRAINT constraint_name] UNIQUE
3)主键约束(Primary Key Constraint)
主键约束强制属性和属性集合的唯一性,并且用一个唯一索引来管理它。每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。NULL值不允许在主键属性出现。
表约束命令格式:
,[CONSTRAINT constraint_name] PRIMARY KEY (Column, Column, …)
属性约束命令格式:
[CONSTRAINT constraint_name] PRIMARY KEY
4)外键约束
外键提供表内或表间的完整性规则。外键必须依赖于一个primary或unique key。
表约束命令格式:
,[CONSTRAINT constraint_name] FOREIGN KE Y (Column, Column, …) REFERENCE S table (column, column, …)
属性约束命令格式:
[CONSTRAINT constraint_name] FOREIGN KEY table (column)
5)Check约束
CHECK约束定义了每条记录必须满足的条件
语法:
[CONSTRAINT constraint_name] CHECK (condition)
5.ALTER TABLE命令
ALTER TABLE命令可用来修改数据表的定义。
6.DROP TABLE命令
用DROP TABLE命令删除Oracle数据表的定义。
命令格式:
DROP TABLE table_name [CASCADE CONSTRAINT];
CASCADE CONSTRAINT选项说明了也把完整性约束一起删除。
注意:
●D ROP TABLE也把数据表中的数据删除。
●数据表的VIEWS和SYNOMNYMS保留下来,但它们变成了不合法的。
●任何悬而未决的事务将被提交。
●只有数据表的生成者或DBA才有权删除它。
三.示例
1.根据查询结果创建表
CREATE TABLE DEPT1 AS
SELECT DEPTNO,DNAME,LOC FROM DEPT WHERE 1=1;
用DESCRIBE命令查看DEPT1表的结构。
输入命令:DESCRIBE DEPT1
表结构显示如下:
Name Null? Type
DEPTNO NOT NULL NUMBER(2)
DNAME V ARCHAR2(14)
LOC V ARCHAR2(13)
2.创建表EMP1
CREATE TABLE EMP1
(EMPNO NUMBER(4) PRIMARY KEY,
ENAME V ARCHAR2(10),
JOB V ARCHAR2(10),
MGR NUMBER(4),
HIREDA TE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) ,
CONSTRAINT fk_emp1 FOREIGN KEY (DEPTNO) REFERENCES DEPT, CONSTRAINT chk_sal CHECK( SAL > 0 ));
其中fk_emp1与chk_sal是一个约束名。
用DESCRIBE命令查看EMP1表的结构。
输入命令:DESCRIBE EMP1
表结构显示如下:
Name Null? Type
EMPNO NOT NULL NUMBER(4)
ENAME V ARCHAR2(10) JOB V ARCHAR2(10) MGR NUMBER(4)
HIREDA TE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NOT NULL NUMBER(2)
3.给数据表EMP1增加一个属性age
ALTER TABLE EMP1
ADD (AGE NUMBER(2));
输入命令:DESCRIBE EMP1
表结构显示如下:
Name Null? Type