Oracle 2일차

2021. 9. 8. 16:41Oracle

쿼리문 실습문제

// 오라클 점검(1) hr 계정으로 접속하여

문) departments 테이블의 구조를 캡처하여 표시하시요.

DESC EMPLOYEES;

 

문) employees 테이블의 모든 레코드를 표시하시요.

SELECT * FROM EMPLOYEES;

문) employees 테이블의 employee_id, last_name, hire_date, salary 컬럼의 데이터만 표시하시요.

SELECT EMPLOYEE_ID,LAST_NAME,HIRE_DATE,SALARY FROM employees;

문) employees 테이블에서 last_name, salary, 그리고, salary에 12개월을 곱한 값을 표시하시요.

 

SELECT LAST_NAME,SALARY,SALARY*12 FROM EMPLOYEES;

 

문) employees 테이블에서 last_name 은 이름으로, salary 는 월급으로, 월급에 12를 곱한 값은 연 봉으로 별칭을 사용하여 표기하시요.

 

 

SELECT LAST_NAME"이름",SALARY*12"연봉" FROM EMPLOYEES;

문) nvl 을 이용하여 employees 테이블의 commission_pct 는 null 이 있습니다. 이 부분을 널이 아닌 0으로 표기를 바꾸어 연봉에 커미션 퍼센트를 더한 결과를 표시하시요.

SELECT salary*12+NVL(COMMISSION_PCT,0) FROM EMPLOYEES;

문) employees 테이블에서 last_name 과 salary를 1개의 컬럼 형태로 연결하여 결과를 표시하시요.

 

SELECT CONCAT(CONCAT(LAST_NAME,' '),SALARY) FROM EMPLOYEES;

 

문) employees 테이블에서 job_id 의 중복을 제거하여 표시하시요.

 

SELECT DISTINCT JOB_ID FROM EMPLOYEES;

 

문) employees 테이블에서 월급이 10000 이상인 사원의 사원번호, 이름, 직업, 월급을 출력하시요.

 

SELECT * FROM EMPLOYEES WHERE SALARY > 10000;

 

문) employees 테이블에서 입사일이 2008년도에 입사한 사원의 사원번호, 이름, 월급, 입사일을 출력하시요.

SELECT EMPLOYEE_ID,LAST_NAME,JOB_ID,HIRE_DATE FROM EMPLOYEES WHERE HIRE_DATE>'07/12/31' AND HIRE_DATE<'09/01/01';

문) employees 테이블에서 월급이 7000과 8000 사이에 있는 사원을 표시하시요.

 

SELECT * FROM EMPLOYEES WHERE SALARY BETWEEN 7000 AND 8000;

문) employees 테이블에서 2007년부터 2008년 사이에 입사한 사원을 표시하시요.

 

SELECT * FROM EMPLOYEES WHERE HIRE_DATE BETWEEN '07/01/01' AND '08/12/31';

문)employees 테이블에서 사원번호가 100 또는 200 또는 300 인 사원을 표시하시요.

SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID IN (100,200,300);

문) employees 테이블에서 입사일이 ‘2001/01/13’ 또는 ‘2007/02/07’인 사원 검색

 

SELECT * FROM EMPLOYEES WHERE HIRE_DATE IN('2001/01/13','2007/02/07');

문) 이름이 대문자 ‘J’로 시작하는 사원 검색

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE 'J%';

 

문) ‘ai’라는 문자가 포함된 이름을 가진 사원 검색.

 

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE '%ai%';

 

문) ‘in’으로 끝나는 이름을 가진 사원 검색.

 

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE '%in';

 

문) 사원들중 두번째 문자가 ‘b’인 사원 검색

 

 

SELECT * FROM EMPLOYEES WHERE LAST_NAME LIKE '_b%';

 

문) 이름이 6글자이고, 마지막에 소문자 ‘d’로 끝나는 사원 검색.

 

SELECT * FROM EMPLOYEES WHERE LENGTH(LAST_NAME)=6 AND LAST_NAME LIKE '%d';

 

문) 사원이름에 ‘_’언더바가 표시된 사원 검색.

 

SELECT * FROM EMPLOYEES WHERE FIRST_NAME LIKE '%\_%';

 

 

문) employees 테이블에서 job_id 가 뒤에서 3번째 문자로 ‘_’를 갖는 사원 정보 검색.

 

SELECT * FROM EMPLOYEES WHERE JOB_ID LIKE '\___%';

 

문) employees 테이블에서 job_id 가 it_porg 이고, salary 가 5000 이상인 사원 검색.

 

 

SELECT * FROM EMPLOYEES WHERE JOB_ID = 'IT_PROG' AND SALARY > 5000;

 

문) employees 테이블에서 job_id 가 it_porg 이거나, salary 가 5000 이상인 사원 검색.

 

SELECT * FROM EMPLOYEES WHERE JOB_ID = 'IT_PROG' OR SALARY > 5000;

 

문) employees 테이블에서 salary 가 20000 이상인 사원 검색 (not 이용)

 

SELECT * FROM EMPLOYEES WHERE NOT SALARY < 20000;

 

문) employees 테이블에서 salary 가 9000,8000,6000 이 아닌 사원 검색 (not 이용)

 

SELECT * FROM EMPLOYEES WHERE NOT SALARY IN (9000,8000,6000);

 

문) employees 테이블에서 last_name 시작 문자가 ‘j’ 가 아닌 사원 검색

 

SELECT * FROM EMPLOYEES WHERE NOT LAST_NAME LIKE 'j%';

 

문) employees 테이블에서 salary 가 2400~20000 사이의 사원 검색

 

SELECT * FROM EMPLOYEES WHERE SALARY BETWEEN 2400 AND 20000;

 

문) employees 테이블에서 commission_pct 가 널인 결과 출력.

 

SELECT * FROM EMPLOYEES WHERE COMMISSION_PCT IS NULL;

 

문) employees 테이블에서 commission_pct 가 널이 아닌 결과 출력.

 

SELECT * FROM EMPLOYEES WHERE COMMISSION_PCT IS NOT NULL;

 

문) employees 테이블에서 job_id 가 ac_mgr 이거나 mk_rep 이고, commission_pct 가 널이고 salary 가 4000보다 크고 9000보다 작은 사원 출력.

 

SELECT * FROM EMPLOYEES WHERE JOB_ID ='AC_MGR'OR JOB_ID = 'MK_REP' AND COMMISSION_PCT IS NULL AND SALARY BETWEEN 4000 AND 9000;

 

문) employees 테이블에서 salary 가 많은 순으로 출력.

 

SELECT * FROM EMPLOYEES ORDER BY SALARY DESC;

 

문) employees 테이블에서 사원이름을 오름차순으로 정렬.

 

SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;

 

'Oracle' 카테고리의 다른 글

Oracle 5일차.  (0) 2021.09.13
Oracle 4일차.  (0) 2021.09.10
Oracle 예제3.  (0) 2021.09.09
Oracle 3일차.  (0) 2021.09.09
Oracle 1일차  (0) 2021.09.07