插入空值
执行以下的查询:
INSERT INTO emp(empno,ename,job,sal) VALUES(1005,'杨华', 'CLERK',null);
复制数据:该形式一次可以插入多行数据。
步骤1:创建一个新表manager:
CREATE TABLE manager AS SELECT empno,ename,sal FROM emp WHERE job='MANAGER';
步骤2:从emp表拷贝数据到manager:
INSERT INTO manager
SELECT empno, ename, sal
FROM emp
WHERE job = 'CLERK';
步骤3:查询结果:
SELECT * FROM MANAGER;
使用序列
步骤1:创建从2000起始,增量为1 的序列abc:
CREATE SEQUENCE abc INCREMENT BY 1 START WITH 2000
MAXVALUE 99999 CYCLE NOCACHE;
步骤2:在INSERT 语句使用序列,序列的名称为abc:
INSERT INTO manager VALUES(abc.nextval,'小王',2500);
INSERT INTO manager VALUES(abc.nextval,'小赵',2800);
步骤3:使用SELECT语句观察结果:
SELECT empno,ename,sal FROM emp;
说明:步骤1创建序列,步骤2在插入时使用序列来填充雇员编号,使用abc.nextval可获得序列中的下一个值。
修改数据
修改小李(编号为1000)的工资为3000。
执行以下的查询:
UPDATE emp SET sal = 3000 WHERE empno = 1000;
将小李(编号为1000)的雇佣日期改成当前
系统日期,部门编号改为50。
执行以下的查询:
UPDATE emp
SET hiredate=sysdate, deptno=50
WHERE empno = 1000;
UPDATE语句的另外一种用法:
根据其他表修改数据。
UPDATE manager
SET (ename, sal) =(SELECT ename,sal FROM emp WHERE empno = 7788)
WHERE empno = 1000;
删除数据
删除雇员编号为1000的新插入的雇员。
DELETE FROM emp WHERE empno=1000;
彻底删除manager表的内容。
TRUNCATE TABLE manager;
DELETE命令进行的删除可以撤销,但TRUNCATE命令进行的删除不可撤销。
注意:TRUNCATE TABLE命令用来删除表的全部数据而不是删除表,表依旧存在
基本的增删改查,没有深入研究到性能方面