> php教程 > PHP开发 > Oracle 데이터베이스에서 일반적으로 사용되는 99개의 쿼리 문

Oracle 데이터베이스에서 일반적으로 사용되는 99개의 쿼리 문

高洛峰
풀어 주다: 2017-01-06 13:21:25
원래의
1567명이 탐색했습니다.

1. emp에서 *를 선택합니다;

2. emp에서 empno, ename, job을 선택합니다.

3. emp에서 empno 번호, ename 이름, job을 선택합니다.

4. emp에서 Job 선택;

5. emp에서 별도의 Job 선택

6. emp에서 별도의 empno 선택,
설명: 직원 번호는 다음과 같습니다. 반복되지 않으므로 이때 모든 열이 중복되지 않음이 증명되므로 중복된 열을 제거할 수 없습니다.

7. 직원의 번호, 이름, 직업을 쿼리하지만 표시되는 형식은 직원 번호입니다. : 7369, 이름: smith, 직업:clear
선택 '번호: ' || empno || ', 이름: ' || ename || | job from emp;

8. 각 직원의 이름과 연봉을 찾습니다.
ename, sal * 12 소득을 선택합니다.

9. 급여가 1500보다 큽니다
select * from emp where sal > 1500;

10. 매달 보너스를 받을 수 있는 직원 정보를 쿼리합니다
select * from emp where comm이 null이 아닙니다.

11. 보너스 정보가 없는 직원 조회
comm이 null인 emp에서 *를 선택

12. 기본급이 1500 이상인 직원의 정보를 조회합니다. 그리고 보너스를 받을 수 있습니다
sal > 1500이고 comm이 null이 아닌 emp에서 *를 선택하세요.

13. 기본급이 1500보다 크거나 보너스를 받을 수 있는 직원 정보를 쿼리합니다
select * from emp where sal > 1500 또는 comm이 null이 아님;

14. Query 기본급이 1500 이하이거나 보너스를 받을 수 없는 직원의 정보를 가져옵니다.
select * from emp where not(sal > 1500이고 comm은 null이 아님);

15. 기본 급여가 1500보다 크지만 모든 직원 정보가 3000보다 작은 경우
emp에서 *를 선택하고 sal > sal <3000;

16. 기본 급여가 1500 이상 3000 이하인 모든 직원 정보를 쿼리합니다.
sal >= 1500 및 sal에서 *를 선택합니다. <= 3000;
select * from emp where sal are 1500 and 3000;

17. 1981년에 고용된 모든 직원 정보 쿼리(1981년 1월 1일부터 1981년 12월 31일 사이에 고용된 직원)
'81년 1월 1일'과 '81년 12월 31일' 사이에 채용된 emp에서 *를 선택합니다.

18. 이름이 smith인 직원 정보를 쿼리하도록 요청합니다
select * from emp where ename = 'SMITH';

19. 7369, 7499, 7521의 직원 정보를 쿼리하도록 요청합니다. 특정 정보
select * from emp where empno = 7369 or empno = 7499 or empno = 7521;
select * from emp where empno in(7369, 7499, 7521);

20. 쿼리 요청 직원이 7369, 7499, 7521이 아닌 직원의 특정 정보를 가져옵니다
select * from emp where empno not in (7369, 7499, 7521);

21. 이름이 smith, allen, king인지 확인 요청 직원 정보
select * from emp where ename in('SMITH', 'ALLEN ', 'KING');

22. 이름 두 번째 문자에 "M"이 포함된 모든 직원을 쿼리합니다. 직원 정보
ename이 '_M%'인 경우 emp에서 *를 선택합니다.

23. 직원 이름에 M자가 포함된 직원 정보 조회
select * from emp where ename like '%M%' ';

24 1981년 채용 직원 정보 조회 요청
select. * from emp where jobs like '%81%';

25. 급여에 5명의 사원 정보가 포함된 사람을 쿼리합니다
sal like '%5%';

26. 사원번호가 7369가 아닌 사원정보를 조회
select * from emp where empno != 7369;
select * from emp where empno <>

27. 급여 기준 낮은 것부터 높은 것
select * frm emp order by sal;
select * from emp order by sal asc ;

28. 급여 기준으로 높은 것부터 정렬 요청
select * from emp order by sal desc;

29. 20개 부서 전체 직원 정보 조회 요청, 급여가 높은 순으로 정렬, 급여가 동일할 경우 입사일 기준으로 이른 것부터 늦은 것까지 정렬. .
select * from emp where deptno = 20 order by sal desc, Hierate asc;

30. 소문자를 대문자로 변경
dual에서 대문자('hello') 선택;

31. 대문자를 소문자로 변경
dual에서 lower('HELLO WORLD') 선택;

32. 이름이 smith인 직원 정보 조회 요청
emp에서 * 선택 ename = upper('smith');

33. initcap() 함수를 사용하여 단어의 첫 문자를 대문자로 변경합니다.
dual에서 initcap('hello world')를 선택합니다.

34. 직원 테이블의 직원 이름을 대문자로 변경
emp에서 initcap(ename) 선택

35. 문자열 "hello"와 "world" 연결
concat 선택 ('hello', 'world') from double;

36. 문자열에 일반적으로 사용되는 연산 문자 처리 함수
문자열을 가로채기 위해 substr('hello', 1, 3)을 선택하고, length(' hello') 문자열의 길이, replacement('hello', 'l', 'x')는 이중에서 문자열을 대체합니다.
select substr('hello', 0, 3)은 문자열 길이( 'hello') 문자열의 길이, replacement('hello', 'l', 'x') 이중에서 문자열 교체 ;

37. 모든 직원의 이름과 마지막 3자를 표시합니다
emp에서 ename, substr(ename, length(ename) -2)를 선택합니다.
select ename, substr(ename, -3, 3) from emp;

38. 숫자 함수를 사용하여 반올림 연산 수행
select round(789.536) from double;

39 값 789.536을 소수점 이하 두 자리까지 유지해야 합니다
select round (789.536, 2) from double; 41. trunc() 함수를 사용하면 소수점이 유지되지 않으며 소수점은 반올림 작업을 수행하지 않습니다.

select trunc(789.536) from double;


42. 소수점은 trunc() 예약 숫자

dual에서 trunc(789.536, 2) 선택


43. 숫자를 나타내려면 음수를 사용하세요.

select trunc(789.536) , -2) from Dual;


44. mod() 함수를 사용하여 나머지 연산을 수행합니다

dual에서 mod(10, 3)를 선택합니다.


45를 표시합니다. 10개 부서 직원이 입사한 주 수 (현재 날짜 - 입사 날짜 = 일수 / 7 = 주 수)

emp에서 empno, ename, round((sysdate - hierate) / 7)를 선택합니다. where deptno = 10;


46. 날짜 함수

months_between(): 주어진 날짜 범위의 개월 수를 찾습니다.

add_months(): 지정된 날짜에 지정된 개월 수를 더하여 찾습니다. 후속 날짜
next_day(): 지정된 날짜의 다음 날짜

last_day(): 해당 날짜의 해당 월의 마지막 날짜를 찾습니다


47
empno, ename, emp에서 Month_between(sysdate, Hiedate);
emp에서 empno, ename, round(months_between(sysdate, Hiredate)) 선택;

48. select sysdate, add_months(sysdate, 4) from Dual;


49. 듀얼에서 next_day(sysdate, '월요일') 선택;

50. 듀얼에서 last_day(sysdate) 선택;

51.to_char( ): 문자열로 변환

to_number(): 숫자로 변환

to_date() : 날짜로 변환

52. 전체 사원의 사원번호, 이름, 입사일을 조회

empno 선택 ,
ename,
to_char(hiredate, 'yyyy') 연도,
to_char(hiredate, 'mm')개월,

to_char(hiredate, 'dd')일

from emp;

emp에서 empno, ename, to_char(hiredate, 'yyyy-mm-dd')를 선택합니다.

empno, ename, to_char(hiredate, 'fmyyyy-mm-dd')를 선택합니다. emp;

53. 전체 사원의 번호, 이름, 급여를 조회합니다

emp에서 empno, ename, sal을 선택합니다.

emp에서 empno, ename, to_char(sal, '99,999')를 선택합니다. ;

emp에서 empno, ename, to_char(sal, 'L99,999') 선택;

emp에서 empno, ename, to_char(sal, '$99,999') 선택;

54. to_number('123') + to_number('123') from double;

55 . 문자열을 날짜 유형으로 변환
to_date('2009-01-01', 'yyyy-mm-dd 선택) ') from Dual;

56. 각 직원의 연봉을 구합니다(요구사항 + 보너스)

emp에서 empno, ename, sal, comm, (sal + comm) * 12 선택;

select empno, ename, sal, comm, nvl(comm, 0), (sal + nvl (comm, 0)) * 12 emp;


57 decode() 함수는 if와 유사합니다. ...elsif...else 문

dual에서 select decode(1, 1, 'The content is 1', 2, 'The content is 2', 3, 'The content is 3')를 선택합니다.


58. 직원의 번호, 이름, 고용 날짜 및 근무일을 쿼리하고 직원의 직무를 다음 정보로 대체하도록 요청합니다.
empno 직원 번호 선택,

직원 이름 이름 지정,

고용 date,
decode(job,

'CLERK', 'salesman',

'SALESMAN' , 'Salesperson',
'MANAGER', 'Manager',
'ANALYST', ' Analyst',
'PRESIDENT', 'President'
) Position
from emp;

59. 데카르트 곱(교차 조인)
select * from emp, dept; >emp 교차 조인 부서에서 * 선택;

60. 내부 조인
emp e, 부서 d에서 * 선택(e.deptno = d.deptno;

emp e 내부 조인 부서에서 * 선택) 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);

62. 사원번호, 이름, 부서번호, 이름, 주소 조회 요청
e.empno를 선택하고, e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno = d.deptno;

63 직원의 이름, 직업, 이름을 쿼리하도록 요청합니다. 직원의 직속 상사
emp e , emp m에서 e.ename, e.job, m.ename을 선택합니다. 여기서 e.mgr = m.empno;

64. 직업, 직원의 직속 상사 이름 및 부서 이름

emp e, emp m, dept d에서 e.ename, e.job, m.ename, d.dname을 선택합니다. 여기서 e.mgr = m.empno 및 e. deptno = d.deptno;

65. 각 직원의 이름, 급여, 부서명, 회사 내 급여 수준(salgrade), 회사 내 리더 이름 및 급여 수준을 쿼리하도록 요청
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.losal과 s.hisal 사이의 e.sal
e.mgr = m.empno
ms.losal과 ms.hisal 사이의 m.sal;

ename을 선택합니다. ,
e.sal,
d.dname,
decode(s.grade, 1, 'Fifth grade', 2, 'Fourth grade', 3, 'Third grade', 4 , 'Second grade' ', 5, '1학년'),
m.ename,
m.sal,
decode(ms.grade, 1, '5학년', 2, '4학년', 3, ' third grade', 4, 'second grade', 5, 'first grade')
from emp e, dept d, salgrade s, emp m, salgrade ms
여기서 e.deptno = d.deptno 및 e. s.losal과 s.hisal 사이의 sal과 e.mgr = m.empno
ms.losal과 ms.hisal 사이의 m.sal;

66. empno, ename, d.deptno, dname, loc from emp e, dept d where e.deptno = d.deptno;
empno, ename, d.deptno, dname, loc from emp e 내부 조인 dept d on e.deptno = d.deptno;

67. 왼쪽 외부 조인
empno, ename, d.deptno, dname, loc from emp e, dept d 여기서 e.deptno = d.deptno (+);
empno, ename 선택 , d.deptno, dname, loc from emp e 왼쪽 외부 조인 dept d on e.deptno = d.deptno;
select empno, ename, d.deptno, dname, loc from emp e 왼쪽 조인 dept d on e. deptno = d.deptno(+);

68. 오른쪽 외부 조인
empno, ename, d.deptno, dname, loc from emp e, dept d 여기서 e.deptno(+) = d .deptno;
empno, ename, d.deptno, dname, loc를 emp에서 선택하고 dept d를 오른쪽 외부 조인 e.deptno = d.deptno;
empno, ename, d.deptno, dname, loc를 선택합니다. emp e에서 e.deptno = d.deptno;

69의 emp e에서 empno, e.ename, m.empno, m을 선택합니다. 여기서 emp m은 e.mgr입니다. = m.empno;

70. emp e, emp m에서 e.empno, e.ename, m.empno, m.ename을 선택합니다. 여기서 e.mgr = m.empno(+);

71.
emp e, dept d에서 *를 선택합니다(여기서 e.deptno = d.deptno 및 d.deptno = 30).
e.deptno = d에서 emp e 내부 조인 dept d에서 *를 선택합니다. deptno 여기서 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 ;
emp에서 *를 선택하고(deptno)를 사용하여 deptno = 30;

72.
emp에서 e.ename, d.d.dname, d.loc를 선택합니다. e.deptno = d.deptno;
emp에서 e.ename, d.deptno, d.dname, d.loc를 선택하고 e.deptno = d.deptno에서 부서 d를 오른쪽 외부 조인합니다.
emp e, dept d에서 e.ename, d.deptno, d.dname, d.loc를 선택합니다. 여기서 e.deptno(+) = d.deptno;

73. from emp;

74. emp에서 min(sal) 선택;

75. emp에서 max(sal) 선택;

76. ;

77. emp에서 avg(sal)를 선택합니다.

78. emp에서 sum(sal)을 선택합니다. 여기서 deptno = 20;

79입니다. from emp where deptno = 20;

80 각 부서의 직원 수를 찾습니다
emp 그룹에서 deptno, count(deptno) by deptno
select deptno, count(empno) from; emp group by deptno;

81. 각 부서의 평균 급여를 구합니다
emp group by deptno;

82에서 deptno, avg(sal)를 선택합니다. 부서명, 각 부서의 직원 수
emp e에서 d.dname, count(e.empno) 선택, dept d
여기서 e.deptno = d.deptno
그룹 기준 d.dname;

select d.deptno, d.dname, temp.c
from (e.deptno별로 emp e 그룹에서 deptno, count(e.empno) c 선택) temp, dept d
temp.deptno = d.deptno;

83. 평균 급여가 2000보다 큰 경우 부서 번호와 평균 급여를 표시하도록 요청
emp 그룹에서 deptno, avg( sal)을 선택합니다. by deptno have avg(sal) > 2000;

84. 비판매 직원의 직위와 동일한 직무에 종사하는 직원의 월급 합계를 표시하며 직원의 요구 사항을 충족해야 합니다. 동일한 직업에 종사하고 있습니다. 총 월급이 5000보다 크면 출력 결과는 총 월급을 기준으로 오름차순으로 정렬됩니다.
select job, sum(sal) su from emp where job <> sum(sal) > 5000을 갖는 작업별 그룹 su로 주문;

select temp.job, sum(temp.sal) s
from (select job, sal from emp e job where <> ; 'SALESMAN') temp
group by temp .job
have sum(temp.sal) > 5000
order by s;

85로 부서의 급여를 구합니다. 최고 평균 급여
부서별 emp 그룹에서 max(avg(sal)) 선택;

86. 급여가 직원 번호 7654보다 높은 모든 직원의 정보를 쿼리하도록 요청
에서 *를 선택하세요. emp where sal >(empno = 7654인 emp에서 sal 선택);

87. 급여가 7654보다 높고 7788과 동일한 직무에 종사하는 모든 직원의 정보를 쿼리하도록 요청합니다.
select * from emp
where sal >(select sal from emp where empno = 7654)
and job = (empno = 7788인 emp에서 직업 선택);

88. 급여가 가장 낮은 직원의 이름, 직업, 급여를 쿼리하도록 요청
ename, job, sal from emp where sal = (emp에서 min(sal) 선택);

89. 쿼리 요청: 부서명, 부서 내 직원 수, 부서 평균 급여, 최하위 이름 부서의 유급 직원
select d.dname, temp. c, temp.a, e.ename
from dept d,
(select deptno, count(empno) c, avg(sal) a, emp 그룹의 min(sal) m by deptno) temp,
emp e
여기서 d.deptno = temp.deptno 및 e.sal = temp.m;

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
여기서 e.deptno = d.deptno
그룹별 d.dname) temp,
emp e,
dept d
where temp.m = e.sal
and temp.dname = d.dname;

90. 각 부서의 최저 임금 직원 정보 찾기
select * from emp where sal in(min( 선택) sal) from emp group 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
여기서 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 select * from emp where sal < (select max(min(sal)) from emp group by deptno);

93. 하위 쿼리 조건에서 가장 높은(더 큰) 급여보다 큼
select * from emp where sal >all(select min(sal) from emp group by deptno);
select * from emp where sal > max(min(sal)) from emp group by deptno );

94. 예 90에서 직원 정보는 하위 쿼리 조건의 최저(더 작은) 급여보다 작습니다
select * from emp where sal select * from emp where sal < (select min(min(sal)) from emp group by deptno);

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이고 comm은 null;

96. Union 연산자는 두 쿼리에 의해 선택된 모든 고유 행을 반환합니다.
select deptno from emp Union select deptno from dept;

97. all 연산자는 중복 행을 포함하여 두 개의 쿼리로 선택한 모든 행을 병합합니다
select deptno from emp Union all select deptno from dept;

98. 두 쿼리에 공통된 행 Row
select deptno from emp intersect select deptno from dept;

99. 빼기 연산자는 첫 번째 쿼리에서는 선택되었지만 두 번째 쿼리에서는 선택되지 않은 행만 반환합니다. , 하나의 쿼리 결과에서 두 번째 쿼리 결과에 나타나는 행 제외
select deptno from dept minus select deptno from emp;

오라클 데이터베이스에서 일반적으로 사용되는 99개의 쿼리 문과 관련된 추가 기사를 보려면 다음을 참조하세요. PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿