湘潭大学数据库实验1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档