select 실행 순서
1. from 테이블명
2. where 조건절
3. group by 칼럼명
4. having 조건절
5. select 칼럼명1, 칼럼명2, ...
6. order by 칼럼명 [asc/desc] > 오름차순 혹은 내림차순
※ 계정 파일은 oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN 폴더안에 있는 scott.sql 파일을 활용함.
예제 table
테이블 column 설명
- empno 사원번호
- ename 사원이름
- job 직책
- mgr 매니저의 사원번호
- hiredate 입사일
- sal 봉급
- comm 성과급
- deptno 부서번호
1. 산술 연산자 ( +, -, *, / )
- 부서번호가 10번인 사원들의 급여를 출력하되 10% 인상된 금액으로 출력 해 보세요.
- select sal, sal*1.1 from emp where deptno=10;
2. 비교 연산자 ( =, !=, > , < , >=, <= )
- 급여가 3000 이상인 사원들의 모든 정보를 출력하세요.
- select * from emp where sal>=3000;
- 부서번호가 30번이 아닌 사람들의 이름과 부서번호를 출력해보세요.
- select ename, deptno from emp where deptno != 30;
3. 논리 연산자 ( AND, OR, NOT )
- 부서번호가 10번이고 급여가 3000 이상인 사원들의 이름과 급여를 출력하세요.
- select ename, sal from emp where deptno=10 and sal >= 3000;
- 직업이 SALESMAN 이거나 MANAGER 인 사원의 사원번호와 부서번호를 출력하세요.
- select empno, deptno from emp where job='SALESMAN' or job='MANAGER';
4. SQL 연산자 ( IN, ANY, ALL, BETWEEN, LIKE, IS NULL, IS NOT NULL )
4-1 IN 연산자 ( OR 연산자와 비슷한 역활)
- 부서번호가 10번이거나 20번인 사원의 사원번호와 이름, 부서번호 출력하기
- select empno, ename, deptno from emp where deptno in(10,20);
- 위의 내용을 or 연산자로 적으면
- select empno, ename, deptno from emp where deptno=10 or deptno=20;
4-2 ANY 연산자 (조건을 비교할때 어느 하나라도 맞으면 true)
- 급여가 1000 이상인 사원번호를 출력
- select empno, sal from emp where sal > ANY(1000, 2000, 3000);
→결과적으로 는 급여가 1000 이상인 로우를 SELECT 하게 된다.
4-3 ALL 연산자 (조건을 비교할때 조건이 모두 맞는다면 true)
- 급여가 3000이상인 사원번호를 출력
- select empno from emp where sal>= ALL(1000, 2000, 3000);
→결과적으로 는 급여가 3000 이상인 로우를 SELECT 하게 된다.
4-4 BETWEEN A AND B (A와 B사이의 데이터를 얻어온다)
- 급여가 1000과 2000 사이인 사원들의 사원번호, 이름, 급여를 출력하세요.
- select empno, ename, sal from emp where sal between 1000 and 2000;
4-5 IS NULL (NULL 인 경우 TRUE), IS NOT NULL (NULL 이 아닌경우 TRUE)
- 커미션이 NULL 인 사원의 사원이름과 커미션을 출력해보세요.
- select ename, comm from emp where comm is null;
- 커미션이 NULL 이 아닌 사원의 사원이름과 커미션을 출력해보세요.
- select ename, comm from emp where comm is not null;
4-6 EXISTS (데이터가 존재하면 true)
- 사원이름이 'FORD' 인 사원이 존재하면 사원의 이름과 커미션을 출력하기
- select ename, comm from emp where exists(select ename from emp where ename='FORD');
4-7 LIKE 연산자 (문자열 비교)
- 사원이름이 'J'로 시작하는 사원의 사원이름과 부서번호를 출력하기
- select ename, deptno from emp where ename like 'J%';
- 중앙에 포함될 경우
- 사원이름에 'J' 가 포함된는 사원의 이름과 부서번호를 출력하기
- select ename, deptno from emp where ename like '%J%';
- 두번째 글자가 포함될 경우
- 사원이름의 두번째 글자가 'A' 인 사원의 이름,급여,입사일을 출력하기
- select ename, sal, hiredate from emp where ename like '_A%';
- 끝나는 글자가 포함될 경우
- 사원 이름이 'ES' 로 끝나는 사원의 이름,급여,입사일을 출력해 보세요.
- select ename, sal, hiredate from emp where ename like '%ES';
5. 결합 연산자 ( || )
- 단순히 문자열을 연결해서 하나의 데이터로 리턴한다. (javascript 의 + 랑 비슷한 역활)
- select ename || '의 직업은' || job || '입니다.' from emp;
'Oracle' 카테고리의 다른 글
Oracle sqlplus select Function(복수행 함수) (0) | 2023.04.20 |
---|---|
Oracle sqlplus select Function(단일행 함수) (0) | 2023.04.20 |
Oracle sqlplus select (ALIAS 사용하기) 칼럼에 별칭 붙이기 (0) | 2023.04.19 |
Oracle sqlplus select (where 절 사용하기) (0) | 2023.04.19 |
Oracle sqlplus select (0) | 2023.04.18 |