센로그

lab 2 본문

CS/데이터베이스

lab 2

seeyoun 2023. 10. 17. 00:10

조건에 따라 반환될 행 제한

 

 

문자열과 날짜

문자열과 날짜값은 ' ' 안에 들어감. (작.따)

  • 문자 : 대소문자 구분
  • 날짜 : 형식 구분. 기본 형식은 DD-MON-RR

 

 

비교조건

다른 비교 조건들

 

비교조건에 AND, NOT, OR 사용 가능. 이때 괄호 단위로 처리 가능.

 

LIKE를 사용해 일치하는 문자열 찾기 가능

first_name이 S~~~인 행을 찾고 싶은 것.

  • %는 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;

 

'CS > 데이터베이스' 카테고리의 다른 글

lab 6  (0) 2023.10.18
lab 3  (0) 2023.10.17
lab 1  (0) 2023.10.16
Comments