您的当前位置:首页表数据的插入、修改和删除[总结]

表数据的插入、修改和删除[总结]

来源:小侦探旅游网
表数据的插入、修改和删除一、 实验目的

1. 在数据表中用Insert增加记录。

2. 用Update修改数据表中的数据。

3. 用Delete删除表中的数据。4. 了解事务处理过程及其命令。

二、 实验环境

安装了oracle数据库的计算机一台

三、 实验步骤和内容

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命令如下:

UPDATE table[alias]

SET column[,column….] = {expression, subquery}[WHERE condition]; 命令由三部分组成:

① update后跟一个或多个要修改的表,这部分是必不可少的。

② set后跟一个或多个要修改的表列,这也是必不可少的。

③ where后跟查询条件,这是选项;如果WHERE子句忽略,UPDATE命令将修

改数据表中所有记录。

例如:修改EMP表中SCOTT的记录数据,把他调到销售部,并且工资提高10%,

具体命令如下:

UPDATE EMP

SET JOB =’SALESMAN’,HIREDATE = SYSDATE,SAL = SAL*1.1

WHERE ENAME = ‘SCOTT’;

1 record updated.

3.Delete命令

Delete命令用来从表中删除一行或多行记录。命令格式如下:

DELETE FROM table [WHERE condition]; 该命令由两部分组成:

① 关键字delete from 后跟准备要从中删除数据的表名,这是必不可少的。

② 关键字where后跟删除条件,是可选项;如果不用WHERE子句,数据表中的

所有记录将被删除。

例如删除EMP表中部门号是10的记录:

DELETE FROM EMP WHERE DEPTNO = 10;

4.事务(Transaction)

事务是由一串修改数据库的操作组成的。Oracle中有两种事务:DML事务和DDL事务。DML事务是一些DML语句组成的,Oracle把事务作为单个实体或逻辑工作单元来处理;DDL事务只能由一条DDL语句组成。

事务的执行必须是完整的,也就是说事务处理中一部分提交给数据库而其他

部分不提交这是不允许的。对于事务来说,要么事务中所有处理都提交,要么所

有的处理都放弃。

事务是以可执行的DML或DDL命令开始,以下面的情况结束:

① COMMIT/ROLLBACK

② DDL命令(DDL语句是自动提交)③ 一些错误(如死锁)④ 注销(如退出SQL*Plus)⑤ 硬件错误1)、永久性修改

为了使修改变成永久性,这些修改必须提交给数据库。COMMIT命令可以用来使数据库永久性改变。而ROLLBACK可以撤消或放弃修改。在两次提交之间对数据库的修改就是事务。 2)、撤消修改

ROLLBACK可以放弃不提交的修改。ROLLBACK可以恢复上次提交之后修改

过的数据。3)、系统错误

事务被一些严重错误(例如系统错误)的中断时,它将自动回滚。这阻止了由错误造成的对数据不完整的修改,而恢复到最近提交之后的数据表的状态。用这种方式SQL*Plus保护了数据的完整性。自动回滚通常是系统错误造成的,例如断电或RESET。而在输入命令时的错误,例如拼写错误或没有授权的操作,不会造成事务的中断或者自动回滚。这是因为错误是在编译时而不是在运行时检测到的。

4)、用SQL语句控制事务

ⅰ)、COMMIT [WORK];

① 使当前事务永久的修改。

② 清除这个事务中所有的保存点。

③ 结束事务。 ④ 释放事务中的锁操作。

⑤ 关键字WORK是可选的。

一般情况下,应在应用程序中用COMMIT(或ROLLBACK)显式的结束事务。

隐式(自动)结束事务在下列情况发生:

① DDL命令之前。② DDL语句之后。③ 和一个数据库正常断开之后。ⅱ)、SAVEPOINT savepoint_name

① 保存点能把事务分割成更小的部分。

② 保存点允许在任意点阻止工作的进行。 ③ 如果第二个保存点的名字和第一个保存点的名字相同,那么第一个保存点

自动失效。

④ 保存点的最大数默认是5;但可以修改。

ⅲ)、ROLLBACK [WORK] to [SAVEPOINT] savepoint_name

ROLLBACK语句用来撤消工作。

① 关键字WORK是可选的。SAVEPOINT也是可选的。 ② 如果ROLLBACK语句中没有TO SAVEPOINT子句,那么它将结束事务;

回滚这个事务中所有的操作;清除这个事务中所有的保存点;释放这个事务的锁操作。

(二)、实验代码

1. 用Insert在基本表customer中插入数据

SQL>insert into customer values (‘Nicholson’,’CA’,6989.99);

1 row created.

SQL>insert into customer values (‘Martin’,’CA’,2345.45);

1 row created.

SQL>insert into customer values (‘Laursen’,’CA’,34.34);

1 row created.

SQL>insert into customer values (‘Bambi’,’CA’,1234.55);1 row created.

SQL>insert into customer values (‘McGraw’,’NJ’,123.45);1 row created. 2.在表STATE中插入指定的字段

SQL>insert into state (state_name,state_cd)

2values (‘Massachusetttes’,’MA’);

1 row created.

SQL>insert into state (state_name,state_cd)

2values (‘California’, ’CA’);

1 row created.

SQL>insert into state (state_name,state_cd)

2values (‘NewJersey’,’NJ’);

1 created.

SQL>insert into state (state_name,state_cd)2values (‘NewYork’,’NY’);

1 created.

3.修改数据

把state表中NewYork改为Florida,NY改为FD:

UPDATE state SET state_name = ‘Florida’, state_cd = ‘FD’

where state_name = ‘NewYork’ and state_cd = ‘NY’;

4.删除数据

从STATE表删除state_name为Florida和state_cd为FD的记录:

DELETE FROM STATE WHERE state_name = ‘Florida’ AND state_cd = ‘FD’;

四、 结果分析

1. Insert命令可以用来在数据表中增加记录;增加从其他数据表查询出的数据;

2. Update命令用来修改数据;

3. Delete命令用来从表中删除一行或多行记录;

因篇幅问题不能全部显示,请点此查看更多更全内容