1. emp から * を選択します。
2. emp から従業員番号、名前、ジョブを選択します。
4. emp からジョブを選択します。 select unique job from emp;
6. select unique empno, job from emp;
説明: 従業員番号が繰り返されていないため、この時点ではすべての列が繰り返されていないことが証明されており、重複する列を削除することはできません。7. クエリ 従業員の番号、名前、およびジョブを出力しますが、表示形式は次のとおりです: 番号を持つ従業員は: 7369、名前は: smith、ジョブは: clear
select '番号を持つ従業員は: ' || empno || '、名前は ' || ename || '、ジョブは emp; 8. ename、sal を選択します。 12 emp; からの収入
select * from emp where sal > 1500; 毎月のボーナスを受け取ることができる従業員の情報をクエリします
select * from emp where comm is not null;
11. ボーナスのない従業員の情報をクエリします
select * from emp where comm is null;
12. 基本給が 1500 を超え、ボーナスを受け取ることができる従業員の情報をクエリします
select * from emp where sal > 1500 and comm is not null;
13. from sal > 1500 or comm is not null;
select * from emp where not(sal > 1500 and comm is not null);
select * from emp where sal > 1500 and sal
16. 基本給が 1500 以上 3000 以下のすべての従業員情報をクエリします。 = 1500 and sal select * from emp where sal between 1500 and 3000;select * from emp where recruitate between '1- January-81' と '31- December-81';
select * from emp where ename = 'SMITH';
select * from emp where empno = 7369 or empno = 7499 or empno = 7521;
select * from emp where empno in(7369, 7499, 7521 );
select * from empno not in (7369, 7499, 7521); 従業員を照会するリクエスト。名前が smith、allen、king の情報
select * from emp where ename in ('SMITH', 'ALLEN', 'KING');
22. 従業員名の 2 文字目に「M」が含まれるすべての従業員情報をクエリします。 "
select * from emp where ename like '_M%';
23. 従業員をクエリする 名前に文字 M が含まれる従業員に関する情報
select * from emp where ename like '%M%';
select * from emp where recruitate like '%81%';
select * from emp where sal like '%5%';
select * from emp where empno != 7369;
select * from emp where empno <>
select * from emp order by sal asc;
select * from emp order by sal desc; をすべてクエリする必要があります。 20 部門の従業員情報。給与が等しい場合、情報は雇用日の早い順に並べ替えられます。
select * from emp where deptno = 20 order by sal desc, recruitate asc;
30. 小文字を大文字に変更
dual;
31. 大文字を変更 小文字に変更
select lower('HELLO WORLD') from Dual;
select * from emp where ename = upper('smith');
33. initcap () 関数を使用して、単語の最初の文字を大文字にします
34. 従業員テーブルの従業員名の最初の文字を大文字に変更します
35. 文字列「hello」と「world」を連結します
36. 文字列を操作する一般的な文字処理関数
select substr('hello', 0, 3) 文字列をインターセプトします。 length('hello') は文字列の長さです。 string, replace('hello', 'l', 'x') デュアルからの文字列置換;
37. 全従業員の名前と最後の 3 文字を表示します
select ename, substr(ename, length(ename) -2) from emp;
select ename, substr(ename, -3, 3) from emp;
38数値関数を使用して丸め演算を実行します
selectround(789.536)fromdual; 整数は 10 桁目に丸められます
41. trunc() 関数を使用すると保持されません。小数点は丸め演算を実行しません
42 trunc() を通じて保持される小数点の数を指定することもできます
43. 桁数を表すには負の数値を使用します
44. mod() 関数を使用して剰余演算を実行します
45. 部門の従業員 10 名が入社した週数を表示します (現在の日付 - 入社日 = 日数 / 7 = 週番号)
46. 日付関数
add_months(): 指定された日付に指定された月数を加算して、次の日付を検索します
next_day (): 指定された日付の次の日付
47。
select empno, ename, months_between(sysdate, recruitate) from emp;
select empno, ename 、round(months_between(sysdate, recruitate)) from emp;
49. select next_day(sysdate, 'Monday') from Dual;
to_char(): 文字列に変換
to_number(): 数値に変換to_date(): 日付に変換
52.全従業員の
従業員名、
名前、
to_char(hiredate, 'yyyy') 年、
to_char(hiredate, 'dd') 日
from emp;
select empno , ename, to_char(hiredate, 'yyyy-mm-dd') from emp;
select empno, ename, to_char(hiredate, ' fmyyyy-mm-dd') from emp;
select empno, ename, sal from emp;
select empno, ename, to_char(sal, '99,999') from emp;select empno, ename, to_char(sal, 'L99,999') from emp;
select empno, ename, to_char(sal, '$99,999') from emp;
54. select to_number('123') + to_number( '123') from Dual;
55. 文字列を日付型に変換します
select to_date('2009-01-01', 'yyyy-mm-dd') from Dual;
56. 各従業員の年収 (必須とボーナス) を検索します
empno、ename、sal、comm、(sal + comm) を選択します。 * 12 from emp;select empno, ename, sal, comm, nvl(comm, 0), (sal + nvl (comm, 0)) * 12 income from emp;
select decode(1, 1, '内容は 1', 2, '内容は 2', 3, '内容は 3') from Dual;
58従業員の番号、名前、雇用日、勤務先を照会し、従業員の職務を次の情報で置き換えるよう要求します:
ename 従業員名、
hiredate 雇用日、
' CLERK', '営業マン',
'Salesman', '営業担当者',
'MANAGER', 'マネージャー',
'ANALYST', '分析メンバー',
'PRESIDENT', '社長'
) 役職
empから。
59. デカルト積 (クロス結合)
select * from emp, dept;
select * from emp クロス結合 dept;
select * from emp e, dept d where e.deptno = d.deptno ;
select * from emp e inner join dept d on e.deptno = d.deptno;
select * from emp e join dept d on e.deptno = d.deptno;
select * from emp Natural join dept;
select * from emp e join dept d using(deptno);
select e.empno、e.ename、d.deptno , d.dname, d.loc from emp e, dept d where e.deptno = d.deptno;
63. リクエストクエリ 従業員の名前、役職、従業員の直属の上司の名前
e.ename、e.job、m を選択します。 ename from emp e, emp m where e.mgr = m.empno;
64. 従業員の名前、役職、従業員の直属の上司の名前、および部門の名前を照会するリクエスト
e.ename、e を選択します。 job, m.ename, d.dname from emp e, emp m, dept d ここで、e.mgr = m.empno および e.deptno = d.deptno;
65. 社内の各従業員の名前、給与、部署名、給与水準(給与水準)、および社内のリーダーの名前と給与水準を照会する必要があります
e.ename、e.sal、dを選択します。 dname 、 s.grade、 m.ename、 m.sal、 ms.grade
from emp e、 dept d、 salgrade s、 emp m、 salgrade ms
ここで、 e.deptno = d.deptno
と s の間の e.sal。 losal と s. hisal
および e.mgr = m.empno
と ms.losal と ms. hisal の間の m.sal;
select e.ename、
e.sal、
d.dname、
decode(s.グレード 、1、「第 5 レベル」、2、「第 4 レベル」、3、「第 3 レベル」、4、「第 2 レベル」、5、「第 1 レベル」)、
m.ename、
sal、
decode。 (ms.grade, 1, '5 年生', 2, '4 年生', 3, '3 年生', 4, '2 年生', 5, '1 年生')
emp e、dept d、salgrade s より, emp m, salgrade ms
ここで、e.deptno = d.deptno および s.losal と s.hisal の間の e.sal、および ms.losal と ms. Hisal の間の e.mgr = m.empno
および m.sal;
66. select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno;
select empno, ename, d.deptno, dname , loc from emp e inner join dept d on e.deptno = d.deptno;
67. 左外部結合
select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d .deptno(+);
select empno 、ename、d.deptno、dname、loc from emp e left inner join dept d on e.deptno = d.deptno;
select empno、ename、d.deptno、dname、loc from emp e left inner join dept d on e。 deptno = d.deptno(+);
68. 右外部結合
select empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno(+ ) = d.deptno;
select empno 、ename、d.deptno、dname、loc from emp e right inner join dept d on e.deptno = d.deptno;
select empno、ename、d.deptno、dname、loc from emp e right inner join dept d on e。 deptno = d.deptno;
69. emp e、emp m から e.empno、e.ename、m.empno、m.ename を選択します。ここで、e.mgr = m.empno; を選択します。 e.ename, m.empno, m.ename from emp e, emp m where e.mgr = m.empno(+);
71.
select * from emp e, dept d where e.deptno = d.deptnoそして d.deptno = 30;select * from emp e inner join dept d on e.deptno = d.deptno where d.deptno = 30;
select * from emp e join dept d on e.deptno = d.deptno where d.deptno = 30;
select * from emp e Natural join dept d where deptno = 30;
select * from emp e join dept d using(deptno) where deptno = 30;
72.
select e.ename、d.deptno、d.dname、d.loc from emp e right external join dept d on e.deptno = d.deptno;
select e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno(+) = d.deptno;
73. count(ename) from emp;
74. select min(sal) from emp;
76. select sum(sal) from emp;
77. sal) from emp;
78. select sum(sal) from emp where deptno = 20;
79. select avg(sal) from emp where deptno = 20;
80. select deptno, count(deptno) from emp group by deptno;
select deptno, count(empno) from emp group by deptno;81. 各部門の平均給与を求めますselect deptno, avg(sal) from emp group by deptno;
82. 部門ごとにグループ化し、部門名と各部門の従業員数を表示します
where e.deptno = d.deptno
group by d.dname;
select d.deptno, d.dname, temp.c
from (select deptno, count(e.empno) c from emp e group by e .deptno) temp, dept d
where temp.deptno = d.deptno;
select deptno, avg(sal) by deptno getting avg( sal) > ; 2000;
84. 非販売スタッフの役職と、同じ職務に従事する従業員の月給の合計が 5000 を超えることを満足する必要があります。 , 出力結果は合計月給の昇順です。
select temp.job, sum(temp.sal) s
group by temp.job
having sum(temp.sal) > ; 5000
85. 平均給与が最も高い部門の給与を検索します
deptno によって emp グループから max(avg(sal)) を選択します。
86。給与は従業員番号 7654 より高いです
87. 給与が 7654 より高く、7788 と同じ仕事に従事しているすべての従業員の情報を照会するリクエスト
select * from emp
where sal >(select sal from emp where empno = 7654)
and job = (select job from emp where empno = 7788);
88. 給与が最も低い従業員の名前、職種、給与をクエリするリクエスト
select ename, job, sal from emp where sal = (select min(sal) from emp);
89. クエリのリクエスト 出力: 部門名、部門の従業員数、部門の平均給与、部門内で最も給与の低い従業員の名前
select d.dname、temp.c、temp. a, e.ename
from dept d,
(select deptno, count (empno) c, avg(sal) a, min(sal) m from emp group by deptno) temp,
emp e
where d.deptno = temp .deptno および e.sal = temp.m;
select d. deptno、temp.dname、temp.c、temp.a、e.ename、e.sal
from
(select d.dname , count(e. empno) c, avg(e.sal) a, min(e. sal) m
from emp e, dept d
where e.deptno = d.deptno
group by d.dname) temp,
emp e,
dept d
where temp.m = e.sal
and temp.dname = d.dname;
90. 各部門の最低賃金従業員の情報を検索します
select * from emp where sal in(select min(sal) from emp グループ by deptno);
select * from emp where sal =any (select min(sal) from emp group by deptno);
select * from
(select min(sal) m from emp group by deptno) temp,
emp e
where e.sal = temp.m;
91. 例 90 では、サブクエリ条件の最低 (少額) 給与より大きい従業員情報
select * from emp where sal >any(select min(sal) ) from emp group by deptno);
select * from emp where sal > (select min(min(sal)) from emp group by deptno);
92 例 90 では、従業員情報が最大 (サブクエリ条件の給与
select * from emp where sal
93. 例 90 では、Biz クエリ条件で給与が最も高い従業員情報をクエリします
select * from emp where sal >all(select min(sal) from emp group by deptno );
select * from emp where sal > (select max( min(sal)) from emp group by deptno);
94 例 90 では、従業員情報がサブクエリの最低 (少額) 給与よりも小さいです。条件
select * from emp where sal
95. 20 部門のボーナスなしの従業員に関する情報を検索します
select * from emp where (sal, nvl(comm, -1)) in (select sal, nvl(comm, -1) from emp where deptno = 20);
select * from emp where deptno = 20 and comm is null;
96。union 演算子は、2 つのクエリによって選択されたすべての一意の行を返します。
select deptno from dept; 2 つのクエリによって選択されたすべての行 (重複を含む)
98。 intersect 演算子は、両方のクエリに存在する行のみを返します。
99. マイナス演算子は、最初のクエリで選択されたが 2 番目のクエリでは選択されなかった行、つまり 2 番目のクエリ結果に表示される行は最初のクエリ結果から除外されます
の deptno を選択してください
Oracle データベースでよく使用される 99 個のクエリ ステートメントに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。