21+ORACLE实验指导(3)

2019-08-03 12:10

表约束命令格式:

,[CONSTRAINT constraint_name] FOREIGN KEY (Column, Column, …) REFERENCES table (column, column, …)

字段约束命令格式:

[CONSTRAINT constraint_name] FOREIGN KEY table (column) 例如:

CREATE TABLE EMP (…

CONSTRAINT DEPT(DEPTNO));

5)、Check约束

CHECK约束定义了每条记录必须满足的条件

语法:

[CONSTRAINT constraint_name] CHECK (condition)

6. Alter命令

ALTER TABLE命令可用来修改数据表的定义。 命令格式:

ALTER TABLE tablename

[ADD或MODIFY或DROP options ](column_spec [column_constraint]) [ENABLE clause 或DISABLE clause]

ADD关键字可以用来给已存在的数据表增加一个字段或约束。 如:给EMP增加一个字段

增加一列(字段):alter table tablename add column_name datatype. ALTER TABLE EMP

ADD (SPOUSES_NAME CHAR(10)); Table altered。

MODIFY关键字可以用来修改已存在的数据表定义。 如:把EMP中ENAME长度改为25个字符 ALTER TABLE EMP

MODIFY (ENAM CHAR(25)); Table altered。

DROP关键字可以用来删除已存在数据表的约束。 如:把EMP中主键删除 ALTER TABLE EMP DROP PRIMARY KEY; Table altered。

7. Drop 命令

用DROP TABLE命令删除Oracle数据表的定义。 命令格式:

DROP TABLE table_name [CASCADE CONSTRAINT] 例如:

第11页

FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES

DROP TABLE EMP;

CASCADE CONSTRAINT选项说明了也把完整性约束一起删除。 注意:

? DROP TABLE也把数据表中的数据删除。 ? 数据表的VIEWS和SYNOMNYMS保留下来,但它们变成了不合法的。 ? 任何悬而未决的事务将被提交。

?

只有数据表的生成者或DBA才有权删除它。

三.上机内容

1. 创建表EMP

CREATE TABLE EMP

(EMPNO NUMBER(4) NOT NULL PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(10), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2),

DEPTNO NUMBER(2) NOT NULL); Table created.

用SQL*PLUS命令DESCRIBE来看生成的EMP表的列明细清单: 输入命令:DESCRIBE EMP

EMP生成的数据表结构显示如下: Name Null? Type EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(10) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NOT NULL NUMBER(2)

2. 从其他表中抽取字段生成数据表

CREATE TABLE EMP_PART AS

SELECT EMPNO,ENAME,JOB,SAL,COMM FROM EMP; Table Created.

输入命令:DESCRIBE EMP_PART

EMP_Part生成的数据表结构结果显示如下: Name Null? Type

EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(10) SAL NUMBER(7,2) COMM NUMBER(7,2)

3. DROP命令删除数据表

第12页

DROP TABLE EMP_PART; Table dropped.

4. 给数据表EMP增加一个字段SPOUSES_NAME

ALTER TABLE EMP

ADD (SPOUSES_NAME CHAR(10)); 输入命令:DESCRIBE EMP

EMP生成的数据表结构显示如下: Name Null? EMPNO NOT NULL ENAME JOB MGR HIREDATE SAL COMM DEPTNO NOT NULL SPOUSES_NAME

5. 用ALTER的MODIFY命令修改已存在的字段的定义

ALTER TABLE EMP

MODIFY (ENAME VARCHAR2(12));

Table Altered.

输入命令:DESCRIBE EMP

EMP生成的数据表结构显示如下: Name Null? EMPNO NOT NULL ENAME JOB MGR HIREDATE SAL COMM DEPTNO NOT NULL SPOUSES_NAME

6. 用ALTER的DROP命令删除数据表中已存在的约束

ALTER TABLE EMP DROP PRIMARY KEY;

Table Altered.

7.创建表CUSTOMER

create table customer( last_name varchar2 (30) not null, state_cd

varchar(2),

sales

number);

Table created.

8.创建表STATE

create table state(

state_cd

varchar(2) not null,

Type

NUMBER(4) VARCHAR2(10) VARCHAR2(10) NUMBER(4) DATE

NUMBER(7,2) NUMBER(7,2) NUMBER(2) CHAR(10)

Type

NUMBER(4) VARCHAR2(12) VARCHAR2(10) NUMBER(4) DATE

NUMBER(7,2) NUMBER(7,2) NUMBER(2) CHAR(10)

第13页

sate_name Table created.

varchar2(30));

四.上机作业

1.创建如下三个基表:

S (S#,SNAME,AGE,SEX) 对应的中文为: [学生 (学号,姓名,年龄,性别)]

SC (S#,C#,GRADE) 对应的中文为: [学习(学号,课程号,成绩)]

C(C#,CNAME,TEACHER) 对应的中文为: [课程(课程号,课程名,任课教师)] 注:以后的实验要用到这三个基本表。

2.生成一个数据表PROJECTS,其字段定义如下,其中PROJID是主键并且要求P_END_DATE不能比P_START_DATE早。 字段名称 数据类型 长度 PROJID NUMBER 4 P_DESC VARCHAR2 20 P_START_DATE DATE P_END_DATE DATE BUDGET_AMOUNT NUMBER 7,2 MAX_NO_STAFF NUMBER 2

3.生成一个数据表ASSIGNMENTS,其字段定义如下,其中PROJID是外键引自PROJECTS数据表,EMPNO是数据表EMP的外键,并且要求PROJID和EMPNO不能为NULL。 字段名称 数据类型 长度 PROJID NUMBER 4 EMPNO NUMBER 4 A_START_DATE DATE A_END_DATE DATE BILL_RATE NUMBER 4,2 ASSIGN_TYPE VARCHAR2 2 4.用DESCRIBE命令查看1和2题定义的字段。

5.给1题中的PROJECTS数据表增加一个COMMENTS字段,其类型为LONG。给2题中的ASSIGNMENTS数据表增加一个HOURS字段,其类型为NUMBER。

第14页

第三章 数据插入、修改和删除

一.上机目的

1.在数据表中用Insert增加记录。 2.用Update修改数据表中的数据。 3.用Delete删除表中的数据。 4.了解事务处理过程及其命令。

二.预备知识

1. Insert命令

1)用来在数据表中增加记录,格式如下:

INSERT INTO tablename [(column, column, ….)]

VALUES (value, value, ….);

命令中[(column, column, ….)]是可选的。一般情况下,为了编程的方便,最好指定字段列表。该命令每次只能增加一条记录。注意,CHARACTER和DATE必须用单引号括起来。

例如:INSERT INTO DEPT (DEPTNO,DNAME,LOC)

VALUES (50,’市场部’,’上海’);

在DEPT中增加一个新部门,忽略部门名称,这时字段列表必须指定否则出错,可用如下命令:

INSERT INTO DEPT (DEPTNO, LOC) VALUES (50,’上海’);

另外,如果部门名称不能确定,可用NULL代替,如下: INSERT INTO DEPT (DEPTNO,DNAME,LOC) VALUES (50,NULL,’上海’);

增加DATE类型的数值,常用格式是DD-MON-YY。默认的世纪是20世纪,ORCALE已克服了Y2K(千年虫)问题。 如下:

INSERT INTO EMP (EMPNO,NAM,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) VALUES (7568,’MASON’,

’ANALYST’,7566, TO_DATE(‘24/06/2084 9:30’,’DD/MM/YYYY HH:MI’), 3000,NULL,20);

2)增加从其他数据表查询出的数据

命令格式:

INSERT INTO table [(column, column, ….)] SELECT select-list

FROM table(s);

2. Update命令

在需要修改表中数据时,可使用update命令如下:

第15页


21+ORACLE实验指导(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《国际结算》期末试卷及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: