范例1:复制emp表 —— 新的表名称为myemp
CREATE TABLE myemp AS SELECT * FROM emp ; |
范例2:查看c##scott用户的全部表
SELECT * FROM tab ; |
范例3:查询myemp表中是否存在数据
SELECT * FROM myemp ; |
范例4:向myemp数据表之中增加一条新的数据
INSERT INTO myemp(empno,job,hiredate,ename,mgr,sal,comm,deptno) VALUES (8888,'CLERK',SYSDATE,'李兴华',7369,800,100,20); |
INSERT INTO myemp VALUES (8899,'魔乐科技','MANAGER',7369,TO_DATE('1981-09-19','yyyy-mm-dd'),1000,100,20); |
范例5:查询myemp表中的全部记录
SELECT * FROM myemp ; |
范例6:增加一个没有领导、没有部门、没有奖金的新雇员
INSERT INTO myemp(empno,ename,job,hiredate,sal) VALUES (6612,'李楠','CLERK',TO_DATE('1989-09-19','yyyy-mm-dd'),600); |
INSERT INTO myemp VALUES (6616,'李楠','CLERK',null,TO_DATE('1989-09-19','yyyy-mm-dd'),600,null,null); |
范例7:查询myemp表中是否存在编号为6612和6616的信息
SELECT * FROM myemp WHERE empno IN(6612,6616) ; |
范例8:通过子查询增加myemp表数据
INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) SELECT * FROM emp WHERE deptno=20 ; |
INSERT INTO myemp SELECT * FROM emp WHERE deptno=10 ; |
范例9:查询myemp表中的数据
SELECT * FROM myemp ; |
范例10:将SMITH(雇员编号为7369)的工资修改为3000元,并且每个月有500元的奖金
UPDATE myemp SET sal=3000,comm=500 WHERE empno=7369 ; |
范例11:查询SMITH的完整信息
SELECT * FROM myemp WHERE empno=7369 ; |
范例12:将工资低于公司平均薪金的雇员的基本工资上涨20%
UPDATE myemp SET sal=sal*1.2 WHERE sal<( SELECT AVG(sal) FROM myemp) ; |
范例13:一次性上涨公司全部雇员的基本工资,每个雇员的基本工资上涨10%
UPDATE myemp SET sal=sal*1.1 ; |
范例14:将雇员7369的职位、基本工资、雇佣日期更新为与7839相同的信息
UPDATE myemp SET(job,sal,hiredate)=( SELECT job,sal,hiredate FROM myemp WHERE empno=7839) WHERE empno=7369 ; |
范例15:查询更新之后的7369和7839的雇员完整信息
SELECT * FROM myemp WHERE empno IN (7369,7839) ; |
范例16:删除雇员编号是7566的雇员信息
DELETE FROM myemp WHERE empno=7566 ; |
范例17:验证7566雇员的信息是否还存在
SELECT * FROM myemp WHERE empno=7566 ; |
范例18:删除30部门内的所有雇员
DELETE FROM myemp WHERE deptno=30 ; |
范例19:查询30部门是否还存在雇员
SELECT * FROM myemp WHERE deptno=30 ; |
范例20:删除雇员编号为7369、7566、7788的雇员信息
DELETE FROM myemp WHERE empno IN (7369,7566,7788) ; |
范例21:删除所有在1987年雇佣的雇员
DELETE FROM myemp WHERE TO_CHAR(hiredate,'yyyy')='1987' ; |
范例22:删除公司工资最高的雇员
DELETE FROM myemp WHERE sal=( SELECT MAX(sal) FROM myemp) ; |
范例23:查询myemp表中的全部数据
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例24:第一个sqlplus窗口执行以下的数据库更新操作
DELETE FROM myemp WHERE MONTHS_BETWEEN(sysdate,hiredate)/12>32 ; |
范例25:第一个sqlplus窗口执行以下的数据库查询操作
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例26:第二个sqlplus窗口执行以下的数据库查询操作
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例27:在第一个sqlplus窗口中使用ROLLBACK回滚事务
ROLLBACK ; |
范例28:当事务回滚完成之后,再次查询myemp表中的相关数据
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例29:删除myemp表中的数据同时提交事务
DELETE FROM myemp WHERE MONTHS_BETWEEN(sysdate,hiredate)/12>32 ; |
COMMIT ; |
范例30:通过第二个sqlplus窗口查看删除后的myemp表内容
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例32:查询现在myemp表中的数据
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例33:回滚到保存点
ROLLBACK TO sp_b ; |
范例34:查看回滚到sp_b存储点之后的数据表内容
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例35:回滚到保存点
ROLLBACK TO sp_a ; |
范例36:查看回滚到sp_b存储点之后的数据表内容
SELECT empno,ename,hiredate,job,sal FROM myemp ; |
范例37:将事务设置成自动提交
SET AUTOCOMMIT ON ; |
范例38:插入新的记录
INSERT INTO myemp(empno,ename,hiredate,job,sal) VALUES (8888,'王月清',TO_DATE('2003-09-27','yyyy-mm-dd'),'总裁',8000) ; |
范例39:第一个SESSION(c##scott/tiger连接)执行以下操作。
SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; |
范例40:第二个SESSION(c##scott/tiger连接)执行同样的操作。
SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; |
范例41:第一个session更新雇员编号是7369雇员的工资
UPDATE myemp SET sal=5600 WHERE empno=7369 ; |
范例42:第二个session更新雇员编号是7369雇员工作
UPDATE myemp SET job='MANAGER' WHERE empno=7369 ; |
范例43:在第一个SESSION上针对于emp表使用共享锁
LOCK TABLE myemp IN SHARE MODE NOWAIT ; |
范例44:第二个SESSION删除emp表全部数据
DELETE FROM myemp ; |
范例45:第一个SESSION(c##scott/tiger连接)执行以下操作。
SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; |
范例46:第二个SESSION(c##scott/tiger连接)执行同样的操作。
SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; |
范例47:查看数据库中的锁定情况
SELECT session_id,oracle_username,process from v$locked_object ; |
范例48:查询v$session数据字典
SELECT sid,serial#,username,lockwait,status FROM v$session where sid IN (125,241) ; |
范例49:解除死锁
ALTER SYSTEM KILL SESSION '125,711' ; |