어흥

[Oracle] SQL (DDL, DML) 본문

Oracle

[Oracle] SQL (DDL, DML)

라이언납시오 2020. 7. 7. 15:51
728x90
반응형

1. SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY를 이용한 기본 문법

SELECT *
FROM employee 					--Table명
WHERE salary > 10000				--조건절
GROUP BY dept					--묶을 단위
HAVING sum(salary) > 1000000			--그룹에 대한 조건절
ORDER BY id					--정렬 방법(default: asc -> 오름차순)

 

 

2. DATE의 연/월/일 추출

Column명: birthday(2020.07.08)이라고 가정

EXTRACT(YEAR FROM birthday)							-- 2020출력
EXTRACT(MONTH FROM birthday)							-- 7출력
EXTRACT(DAY FROM birthday)							-- 8출력

 

3. 수학기능

--단순 연산
SELECT SUM(SALARY) FROM EMPLOYEE;		--연봉의 총합 출력
SELECT MIN(SALARY) FROM EMPLOYEE;		--최소 연봉 출력
SELECT MAX(SALARY) FROM EMPLOYEE;		--최고 연봉 출력
SELECT AVG(SALARY) FROM EMPLOYEE;		--연봉의 평균 출력

--소수점(INCREASE_RATE = 11.06이라고 가정)/반올림/올림/내림
SELECT INCREASE_RATE, ROUND(INCREASE_RATE,1), CEIL(INCREASE_RATE), FLOOR(INCREASE_RATE)
FROM EMPLOYEE
WHERE name = '홍길동';
=====================출력결과==========================
11.06   11.1   12   11

 

 

4. 알면 좋은 기능

SELECT SYSDATE FROM DUAL;			--현재 날짜 및 시간 출력(DUAL: 특정 테이블을 사용하지 않고 무엇인가 확인하고 싶을 때 사용)
SELECT LENGTH(ID) FROM EMPLOYEE;		--ID 문자열의 길이 조회
SELECT TO_CHAR(birthday,'YYYYMMDD')		--DATE 형태를 CHAR형태로 변환
SELECT TO_DATE('20200707','YYYYMMDD')		--CHAR 형태를 DATE형태로 변환
SELECT LOWER(NAME) AS 소문자, UPPER(NAME) AS 대문자 FROM EMPLOYEE;	--각 사원의 이름을 소문자, 대문자로 출력
SELECT REPLACE(P_NUM,'-','') FROM EMPLOYEE;	--휴대폰 번호에서 -를 없앤 값을 출력

 

5. 심화 기능

SELECT NAME || ' ' || ID || ' ' || P_NUM FROM EMPLOYEE; 	--'이름 사원번호 전화번호'가 한줄에 적혀서 출력
SELECT REGEXP_REPLACE(P_NUM,^[0-9]) FROM EMPLOYEE;		--'*010-1234-5678#'형태로 저장된 번호를 01012345678로 출력
SELECT REGEXP_REPLACE('AAA  BBB  CCC','()','{2,}','');		--공백 2칸 이상 제거

 

6. 실행 순서

//SQL 작성 예시
SELECT
FROM
WHERE
GROUP BY
HAVING
OREDER BY

728x90
반응형

'Oracle' 카테고리의 다른 글

[Oracle] MERGE INTO  (0) 2020.08.04
[Oracle] Sequence  (0) 2020.07.22
[Oracle] Index  (0) 2020.07.09
[Oracle] Plan  (0) 2020.07.09
Comments