Oracle教程
Oracle练习题

Oracle添加、修改和删除

insert

添加、修改和删出都属于DML,主要包含的语句:insert、update、delete。

● Insert语法格式

Insert into 表名(字段,。。。。) values(值,………..)

● 省略字段的插入

insert into emp values(9999, 'zhangsan', 'MANAGER', NULL, NULL, 200, 100, 10);

不建议使用此种方式,因为当数据库表中的字段位置发生改变的时候会影响到insert语句。

● 指定字段的插入(建议使用此种方式)

SQL> insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9999, 'zhangsan', 'MANAGER', NULL, NULL, 200, 100, 10);
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9999, 'zhangsan', 'MANAGER', NULL, NULL, 200, 100, 10)
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP)

● 主键不能重复

insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(8887, 'zhangsan', 'MANAGER', null, sysdate, 200, 100, 10);

insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(8888, 'zhangsan', 'MANAGER', null, to_date('2001-01-01', 'yyyy-mm-dd'), 200, 100, 10);

注意sysdate或to_date

● 表内容的复制

create table emp_bak as select * from emp;

以上的语句会自动创建一张表,将所有的数据复制到新表中,但是不能将表的约束条件进行复制,比如:主键约束。

● 如何将查询的数据直接放到已经存在的表中,可以使用条件?

insert into emp_bak select * from emp where job='MANAGER';

update

可以修改数据,可以根据条件修改数据。

● 语法格式:

update 表名 set 字段名称1=需要修改的值1, 字段名称2=需要修改的值2 where …….

● 将job为manager的员工的工资上涨10%

update emp set sal=sal+sal*0.1 where job='MANAGER';

delete

可以删除数据,可以根据条件删除数据。

● 语法格式:

Delete from表名 where 。。。。。

● 删除津贴为300的员工

delete from emp where comm=300;

● 删除津贴为null的员工

delete from emp where comm is null;

 

全部教程