CS/데이터베이스
lab 2
seeyoun
2023. 10. 17. 00:10
조건에 따라 반환될 행 제한
문자열과 날짜
문자열과 날짜값은 ' ' 안에 들어감. (작.따)
- 문자 : 대소문자 구분
- 날짜 : 형식 구분. 기본 형식은 DD-MON-RR
비교조건
다른 비교 조건들
비교조건에 AND, NOT, OR 사용 가능. 이때 괄호 단위로 처리 가능.
LIKE를 사용해 일치하는 문자열 찾기 가능
- %는 S로 시작하기만 하면 됨. 0~n자리 characters
- _는 char 하나를 의미.
행 정렬
ORDER BY
- ASC : 오름차순 정렬, 기본 값
- DESC : 내림차순 정렬
급여가 $12,000를 넘는 사원의 이름과 급여를 표시
SELECT last_name, salary
FROM employees
WHERE salary > 12000;

사원 번호가 176인 사원의 이름과 부서 번호를 표시
SELECT last_name, department_id
FROM employees
WHERE employee_id = 176;
급여가 $5,000에서 $12,000 사이에 포함되지 않는 모든 사원의 이름과 급여를 표시
SELECT last_name, salary
FROM employees
WHERE salary NOT BETWEEN 5000 AND 12000;

2007년 2월 20일과 2007년 5월 1일 사이에 입사한 사원의 이름, 업무 ID 및 시작일을 표시하되, 시작일을 기준으로 오름차순으로 정렬하는 질의
– 날짜는 DATE ‘2007-02-20’ 같은 형태로 표시하면 됨
SELECT last_name, job_id, hire_date
FROM employees
WHERE hire_date BETWEEN DATE'2007-02-20' AND DATE'2007-05-01'
ORDER BY hire_date ASC;

부서 20 및 50에 속하는 모든 사원의 이름과 부서 번호를 이름을 기준으로 영문자순으 로 표시
SELECT last_name , department_id
FROM employees
WHERE department_id IN (20,50)
ORDER BY last_name ASC;

급여가 $5,000와 $12,000 사이이고 부서 번호가 20 또는 50인 사원의 이름과 급여를 나열하고, 열 레이블을 Employee와 Monthly Salary로 각각 지정
SELECT last_name "Employee", salary "Monthly Salary"
FROM employees
WHERE (department_id IN (20,50)) AND (salary BETWEEN 5000 AND 12000)
ORDER BY last_name ASC;

1994년에 입사한 모든 사원의 이름과 입사일을 표시
SELECT last_name, hire_date
FROM employees
WHERE hire_date BETWEEN DATE'1994-01-01' AND DATE'1994-12-31';

관리자가 없는 모든 사원의 이름과 업무 ID를 표시
SELECT last_name, job_id
FROM employees
WHERE manager_id IS NULL;
커미션을 받는 모든 사원의 이름, 급여 및 커미션을 급여 및 커미션을 기준으로 내림차순으로 정렬하여 표시
SELECT last_name, salary, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY commission_pct DESC;
이름의 세 번째 문자가 a인 모든 사원의 이름을 표시
SELECT last_name
FROM employees
WHERE last_name LIKE '__a%';
주의)) LIKE '__a' 까지만 쓰면, 무조건 _ _ a 형태 (3글자)여야 함
뒤에 %까지 붙여줘야 나머지 포함임.

이름에 a와 e가 있는 모든 사원의 이름을 표시
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%' OR last_name LIKE '%e%';
업무가 영업 사원(SA_REP) 또는 사무원(ST_CLERK)이면서 급여가 $2,500, $3,500
또는 $7,000가 아닌 모든 사원의 이름, 업무 및 급여를 표시
SELECT last_name, job_id, salary
FROM employees
WHERE job_id IN('SA_REP', 'ST_CLERK') AND salary NOT IN(2500, 3500, 7000);
주의)) 문자열 쓸 때는 ' ' 이거 안에 넣기
커미션 비율이 20%인 모든 사원의 이름, 급여 및 커미션을 표시
SELECT last_name, salary, commission_pct
FROM employees
WHERE commission_pct = 0.2;