锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
select ename, a.deptno as a_deptno,b.deptno as b_deptno ,b.dname as 閮ㄩ棬
from emp a, dept b
絳夊艱繛鎺?br />
select ename, a.deptno as a_deptno,b.deptno as b_deptno ,b.dname as 閮ㄩ棬
from emp a, dept b
where a.deptno = b.deptno;
2錛氶潪絳夊艱繛鎺ワ紝鍦╡mp琛ㄥ拰salgrade琛ㄤ腑鏌ユ壘鍛樺伐鐨勫鍚嶏紝宸ヨ祫錛岀瓑綰э紝宸ヨ祫涓婄嚎錛屽伐璧勪笅綰?br />
select ename as 濮撳悕, sal as 宸ヨ祫, grade as 宸ヨ祫絳夌駭,losal as 宸ヨ祫涓婄嚎錛宧isal as 宸ヨ祫涓嬬嚎
from emp, salgrade
where sal between losal and hisal;
3:澶栬繛
鍙沖榪?br />
select e.ename, d.dname, e.deptno
from emp e,dept d
where e.deptno = d.deptno(+);
宸﹀榪炰笌鍙沖榪炵浉鍙?br />
浠r鐧婚檰鏌ヨ琛╡mployees 鍜宒epartments 琛?br />
select first_name as 濮撳悕, department_name as 閮ㄩ棬鍚嶇О, d.department_id as 閮ㄩ棬緙栧彿
from employees e, departments d
where e.department_id= d.department_id(+) ;
4:鑷繛錛氬湪鍚屼竴涓〃涓煡璇㈡瘡涓憳宸ュ強涓婂徃鐨勫伐鍙峰拰濮撳悕
select a.empno as 鍛樺伐緙栧彿, a.ename as 鍛樺伐濮撳悕, a.mgr as 涓婂徃鐨勫憳宸ョ紪鍙? b.ename as 涓婂徃濮撳悕
from emp a, emp b
where a.mgr = b.empno;
5錛歴ql99
浜ゅ弶榪炴帴 cross join------鐩稿綋浜庤開鍗″皵闆?br />
select e.ename,d.dname
from emp e cross join dept d;
鑷劧榪炴帴 natural join------鐩稿綋絳夊艱繛鎺?br />
select e.ename, d.dname
from emp e natural join dept d;
using瀛愬彞-----浣跨敤鍚屽悕鍒楁煡璇?br />
select e.ename, d.dname
from emp e join dept d
using (deptno);
on瀛愬彞 ------褰撳垪鍚嶄笉鍚屾椂鐢╫n瀛愬彞
鐢╫n鏌ヨ涓ゅ紶琛?br />
select e.ename, d.dname
from emp e join dept d
on e.deptno = d.deptno;
鐢╫n鏌ヨ澶氬紶琛?br />
select e.ename, d.dname
from emp e join dept d
on e.deptno = d.deptno
join 絎笁涓〃
on 鍒? = 鍒?;
鍐呰繛鎺ワ紙Inner join錛?------鍐呰繛鎺ュ彧榪斿洖婊¤凍榪炴帴鏉′歡鐨勬暟鎹?br />
select employee_id, last_name, salary, department_id, department_name
from employees inner join departments using(department_id);
宸﹀榪?br />
select employee_id, last_name, salary, department_id, department_name
from employees left join departments using(department_id);
鍙沖榪?br />
select employee_id, last_name, salary, department_id, department_name
from employees right join departments using(department_id);
婊″榪?br />
select employee_id, last_name, salary, department_id, department_name
from employees full outer join departments using(department_id);
瀛愭煡璇?-----------
鏌ユ壘鍑哄伐璧勬瘮scott楂樼殑浜?br />
select ename, sal from emp
where sal>
(select sal from emp where ename='SCOTT');
鏌ユ壘閭d簺浜哄拰scott鐩稿悓鑱屼綅鐨勪漢
select ename, job from emp
where job=
(select job from emp where ename='SCOTT')
and ename <> 'SCOTT';
any鐨勭敤娉?nbsp; < any鎰忓懗鐫灝忎簬鏈澶с?gt; any澶т簬鏈灝?br />
select empno, ename, sal, job
from emp
where sal<any(select sal from emp where job='SALESMAN');
all鐨勭敤娉?nbsp;< all錛氬皬浜庢墍鏈夛紝鍗沖皬浜庢渶灝忋?gt; all錛氬ぇ浜庢墍鏈夛紝鍗沖ぇ浜庢渶澶?br />
select empno, ename, sal, job
from emp
where sal<all(select sal from emp where job='SALESMAN');
紺轟緥錛?br />
//鏂板緩涓寮犺〃
create table test1(
eid number(10),
name varchar2(20),
birth date,
salary number(8,2)
);
//鍚戣〃涓彃鍏ユ暟鎹?br />
insert into test1 values(1001,'寮犱笁','20-5鏈?,2300);
insert into test1 values(1002,'寮犱笁','01-6鏈?,3000);
//鏌ヨ琛ㄤ腑鐨勬暟鎹?br /> select * from test1;
//鏂板緩絎簩寮犺〃錛屽湪琛ㄤ腑涓嶆彃鍏ヤ換浣曟暟鎹?br />
create table test2(
eid number(10),
name varchar2(20),
birth date,
salary number(8,2)
);
//鏌ヨ絎簩寮犺〃涓殑鏁版嵁
select * from test2;
//浣跨敤merge榪涜鏁版嵁鍚堝茍
merge into test2
using test1
on(test.eid = test2.eid)
when matched then
update set name = test1.name, birth = test1.birth, salary = test1.salary
when not matched then
insert(eid,name,birth,salary) values(test1.eid, test1.name, test1.birth, test1.salaru);
select * from test2