insert
添加、修改和刪出都屬于DML,主要包含的語(yǔ)句:insert、update、delete。
● Insert語(yǔ)法格式
Insert into 表名(字段,。。。。) values(值,………..)
● 省略字段的插入
insert into emp values(9999, 'zhangsan', 'MANAGER', NULL, NULL, 200, 100, 10);
不建議使用此種方式,因?yàn)楫?dāng)數(shù)據(jù)庫(kù)表中的字段位置發(fā)生改變的時(shí)候會(huì)影響到insert語(yǔ)句。
● 指定字段的插入(建議使用此種方式)
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 行出現(xiàn)錯(cuò)誤:
ORA-00001: 違反唯一約束條件 (SCOTT.PK_EMP)
● 主鍵不能重復(fù)
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
● 表內(nèi)容的復(fù)制
create table emp_bak as select * from emp;
以上的語(yǔ)句會(huì)自動(dòng)創(chuàng)建一張表,將所有的數(shù)據(jù)復(fù)制到新表中,但是不能將表的約束條件進(jìn)行復(fù)制,比如:主鍵約束。
● 如何將查詢的數(shù)據(jù)直接放到已經(jīng)存在的表中,可以使用條件?
insert into emp_bak select * from emp where job='MANAGER';
可以修改數(shù)據(jù),可以根據(jù)條件修改數(shù)據(jù)。
● 語(yǔ)法格式:
update 表名 set 字段名稱1=需要修改的值1, 字段名稱2=需要修改的值2 where …….
● 將job為manager的員工的工資上漲10%
update emp set sal=sal+sal*0.1 where job='MANAGER';
delete
可以刪除數(shù)據(jù),可以根據(jù)條件刪除數(shù)據(jù)。
● 語(yǔ)法格式:
Delete from表名 where 。。。。。
● 刪除津貼為300的員工
delete from emp where comm=300;
● 刪除津貼為null的員工
delete from emp where comm is null;