위는 가데이터 모음 dump파일입니다.
사용법) cmd ->
imp userid=scott/tiger tables=emp,dept file= C:\dev\20240207_full.dmp(파일 드래그 경로복사)
- TO_CHAR: 숫자나 날짜를 문자형으로 변환할 때 사용
- INSTR: 문자열에서 특정 문자의 위치(인덱스)를 찾을 때 사용
- SUBSTR: 문자열에서 원하는 부분만 잘라낼 때 사용
- LENGTH: 문자열의 길이를 구할 때 사용
- INITCAP: 문자열의 각 단어 첫 글자만 대문자로 변환할 때 사용
- AS: 컬럼명이나 테이블에 별칭을 붙일 때 사용
/*1.
사원 테이블에서 사원번호, 사원명, 입사일, 연봉을 조회
단, 연봉은 전체 8자리로 하여 0을 채우고, $를 붙여 출력
3번째 자리마다 ','를 넣어서 출력
연봉의 내림차순, 연봉이 같다면 사원번호의 내림차순 정렬
*/
select empno,ename,hiredate,concat(to_char(sal,'00,000,000'),'$')
from emp
order by sal,empno desc;
/*2.
사원 테이블에서 직무가 'MANAGER','SALESMAN','CLERK'인 사원의
사원번호,사원명,직무,입사일,연봉,보너스,실수령액을 조회
실수령액은 연봉과 보너스를 합산한 금액
보너스가 없다면 자신 연봉의 50%가 보너스,해당 금액의 3.3%를 뺀 금액이 실수령액이 됨
실수령액은 원단위를 반올림하여 출력
입사일은 월-일-년(끝 두자리만 2025 -> 25) 요일의 형식으로 출력
*/
select empno,
initcap(ename),job,
to_char(hiredate,'yy-mm-dd day') as hiredate,sal,comm,
ROUND(nvl((sal+comm),sal*1.5-(sal*1.5)*0.003),0) as receive
from emp
where job IN('MANAGER','SALESMAN','CLERK');
/*3.
car_model 테이블에서 모델명이 'k5','아반테','A8' 이면서 옵션에 'ABS'가 있는
차량의 모델명,가격,연식,옵션,이미지를 검색
단, 모델명은 모두 소문자로 출력하고, car_option은 두번째 ,까지만 출력
가격의 내림차순으로 정렬하되, 가격이 같다면 연식의 오름차순으로 정렬
*/
select lower(MODEL) as model, PRICE, CAR_YEAR,
substr(CAR_OPTION,0,length(CAR_OPTION)-instr(CAR_OPTION,',',2)+1), CAR_IMG
from car_model
where model in('k5','아반테','A8') AND instr(car_option,'ABS')>0
order by price desc,car_year;
'SQL Oracle' 카테고리의 다른 글
[SQL] PRIMARY & FOREIGN KEY, UNIQUE, NOT NULL, NVL (0) | 2025.04.14 |
---|---|
[SQL] SYSDATE, SUM, MAX, MIN, GROUP BY, VALUES (0) | 2025.04.11 |
[SQL] CRUD (0) | 2025.04.08 |
[SQL] Oracle 환경 설정 (1) | 2025.04.07 |