검색결과 리스트
글
SELECT *
FROM employees
WHERE hire_date >= '00/01/01';
10. 문자열의 정렬(문자도 크기를 갖는다)
SELECT *
FROM jobs
WHERE job_title > 'President';
11. 논리연산자 OR를 이용한 조건식
SELECT *
FROM jobs
WHERE job_title = 'President'
OR job_title = 'Sales Manager';
12. 논리연산자 AND를 이용한 조건식
SELECT *
FROM employees
WHERE salary >= 10000
AND TO_CHAR(hire_date, 'YYYY') = '1994';
문제) 급여가 5000~10000인 사원 출력
문제) manager_id가 147이고, department_id가 80인 사원 출력
13. between~and : 논리연산자 AND의 특수한 상황
--급여가 5000~10000인 사원 출력
SELECT * FROM employees
WHERE salary BETWEEN 5000 AND 10000;
14. IN : 논리연산자 OR의 특수한 상황 -> 자주 사용하는 표현
SELECT *
FROM jobs
WHERE job_title IN ('President', 'Sales Manager');
14. LIKE : 부분 문자열을 이용한 조건. 패턴문자와 함께 사용.
--이름이 특정 글자로 시작하는 경우
SELECT *
FROM employees
WHERE first_name LIKE 'St%';
문제) 전화번호 지역번호가 650인 경우만 출력.
전화번호는 650.123.1234 형태로 구성됨. LIKE 연산자 이용.
문제) employees 테이블에서 first_name의 두번째 글자가 'an'인 경우만 출력
SELECT *
FROM employees
WHERE first_name LIKE '_an%';
15. IS NULL : NULL 값 확인
SELECT *
FROM employees
WHERE commission_pct IS NULL;
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;
-------------------------------------
ORDER BY 구문 사용
- 순서 지정
- ASC(Ascending, 오름차순), DESC(Desceding, 내림차순)
16. 이름순으로 정렬해서 출력
SELECT *
FROM employees
ORDER BY first_name ASC;
17. 급여를 기준으로 내림차순 정렬해서 출력
SELECT *
FROM employees
ORDER BY salary DESC;
문제) 커미션을 받는 사원 정보 출력하되, 급여가 높은순으로 출력.
SELECT
FROM
WHERE
ORDER BY
-------------------------------------
집계 함수
- SUM(), AVG(), COUNT(), MAX(), MIN()
- 주의. 집계 함수는 집계 함수들만 단독으로 사용해야 합니다.
18. 직원의 수
SELECT COUNT(*) FROM employees;
19. 최대 급여의 액수
SELECT MAX(salary) FROM employees;
문제) 직원들의 평균 급여액
SELECT AVG(salary) FROM employees;
----------------------------------
GROUP BY 구문 사용
- 집계 함수와 같이 사용하기 위한 그룹 기준 제시
- SELECT 컬럼명, 집계함수 FROM 소스 GROUP BY 컬럼명;
20. job_id별 직원의 수 출력
SELECT job_id, COUNT(*) FROM employees GROUP BY job_id;
문제) 전화번호 앞 3자리를 가지고 지역별 직원의 수 출력.
SELECT SUBSTR(phone_number, 1, 3), COUNT(*)
FROM employees
GROUP BY SUBSTR(phone_number, 1, 3);
21. 입사년도별 직원의 수 출력. 년도별 정렬해서 출력.
SELECT TO_CHAR(hire_date, 'YYYY'),COUNT(*)
FROM employees
GROUP BY TO_CHAR(hire_date, 'YYYY')
ORDER BY TO_CHAR(hire_date, 'YYYY') ASC;
문제) 직무(job_id)별 직원의 평균 급여 출력.
문제) job_id별 직원의 수 출력. 입사년도가 1996년도만.
--------------------------------------------
HAVING 구문 사용
- GROUP BY 구문에서 조건 지정시 사용.
- WHERE 구문과 유사한 역할.
22. job_id별 직원의 수 출력. 단, 10명 이상인 경우만.
SELECT job_id, COUNT(*)
FROM employees
GROUP BY job_id
HAVING COUNT(*) >= 10;
문제) 직무(job_id)별 직원의 평균 급여 출력. 단, 10000달러 이상만 출력.
SELECT job_id, AVG(salary)
FROM employees
GROUP BY job_id
HAVING AVG(salary) >= 10000;
문제) 직무(job_id)별 직원의 평균 급여 출력. [출처] Oracle 특강 3일차(select구문)|작성자 Public
단, 10000달러 이상이면서 직무가 'MAN'으로 끝나는 경우만 출력.
'먹고살기 > Oracle' 카테고리의 다른 글
[Oracle] distinct, rowid 중복제거, 최신 데이터 하나만 가져오기 (0) | 2011.04.15 |
---|---|
ORACLE GROUP BY와 함께 쓰이는 HAVING 절 (0) | 2011.04.06 |
오라클 유저 생성 (0) | 2011.04.05 |
시간 날짜 계산 (0) | 2011.04.05 |
Oracle 데이터 삽입,삭제,변경 (0) | 2011.04.05 |
RECENT COMMENT