CS/데이터베이스

SQL 실습(1)

hyomee2 2024. 7. 17. 10:53

* 실습은 앞의 SQL(2) 게시물에서 이용한 데이터베이스를 이용해 진행했다.

# 문제 1. 모든 사원 모든 컬럼 조회
SELECT 
       *
  FROM employee;

# 문제 2. 사원들의 사번, 이름 조회
SELECT 
       emp_id
     , emp_name
  FROM employee;

# 문제 3. 201번사번의 사번 및 이름 조회
SELECT 
       emp_id
     , emp_name
  FROM employee
 WHERE emp_id = '201';
 
# 문제 4. employee 테이블에서 부서 코드가 'D9'인 사원 조회
SELECT
       *
  FROM employee
 WHERE dept_code = 'D9';

# 문제 5.  employee 테이블에서 직급 코드가 'J1'인 사원 조회
SELECT
       *
  FROM employee
 WHERE job_code = 'J1';
 
# 문제 6. employee 테이블에서 급여가 300만원 이상(>=)인 사원의 사번, 이름, 부서코드, 급여를 조회하시오.
SELECT 
       emp_id
	  , emp_name
	  , dept_code
	  , salary
  FROM employee
 WHERE salary >= 3000000;

# 문제 7. 부서코드가 'D6'이고 급여를 300만원보다 많이 받는 직원의 이름, 부서코드, 급여 조회  
SELECT
       EMP_NAME
     , DEPT_CODE
     , SALARY
  FROM employee
 WHERE DEPT_CODE = 'D6' 
   AND SALARY > 3000000;
   
# 문제 8. 보너스를 받지 않는 사원에 대한 사번, 직원명, 급여, 보너스를 조회
SELECT 
       emp_id
     , emp_name
     , dept_code
  FROM employee
 WHERE bonus IS NULL;
 
# 문제 9. 'D9' 부서에서 근무하지 않는 사원의 사번, 이름, 부서코드를 조회
SELECT 
       emp_id
     , emp_name
     , dept_code
  FROM employee
 WHERE dept_code != 'D9'

# 문제 10. employee 테이블에서 퇴사 여부가 N인 직원들 조회하고
# 사번, 이름, 입사일을 별칭을 사용해 조회해 보기
# (퇴사 여부 컬럼은 ENT_YN이고 N은 퇴사 안한 사람, Y는 퇴사 한 사람)
SELECT 
       *
  FROM employee
 WHERE ent_yn = 'N';

SELECT 
       emp_id AS '사번'
     , emp_name AS '이름'
     , hire_date AS '입사일'
  FROM employee
 WHERE ent_yn  = 'N';

# 문제 11. employee 테이블에서 급여 350만원 이상 550만원 이하를 받는 직원의
# 사번, 이름, 급여, 부서코드, 직급코드를 별칭을 사용해 조회해 보기
SELECT 
       emp_id AS '사번'
     , emp_name AS '이름'
     , salary AS '급여'
     , dept_code AS '부서코드'
     , job_code AS '직급코드'
  FROM employee
 WHERE salary BETWEEN 3500000 AND 55000000;
 
# 문제 12. employee 테이블에서 '성이 김씨'인 직원의 사번, 이름, 입사일 조회
SELECT 
       emp_id
     , emp_name
     , hire_date
  FROM employee
 WHERE emp_name LIKE '김__';
 
# 문제 13. employee 테이블에서 '성이 김씨'가 아닌 직원의 사번, 이름, 입사일 조회
SELECT 
       emp_id
     , emp_name
     , hire_date
  FROM employee
 WHERE emp_name NOT LIKE '김__';
 
# 문제 14. EMPLOYEE 테이블에서 '하'문자가 이름에 포함 된 직원의 이름, 주민번호, 부서코드 조회
SELECT 
       emp_name
     , emp_no
     , dept_code
  FROM employee
 WHERE emp_name LIKE '%하%';
 
# 문제 15. 'J2'직급이면서 급여가 200만원 이상인 직원이거나 'J7'직급인 직원의 이름, 급여, 직급코드 조회
 SELECT
       emp_name
     , salary
     , job_code
  FROM employee
 WHERE (job_code = 'J2' 
       AND salary >= 2000000) 
		 OR job_code ='J7';
		 
# 문제 16. 'J2'직급이거나 'J7'직급인 직원들 중에 급여가 200만원 이상인 직원의 이름, 급여, 직급코드 조회
SELECT 
       emp_name
     , salary
     , job_code
  FROM employee
 WHERE (job_code = 'J2' 
       OR job_code = 'J7')
       AND salary >= 2000000;