어흥
[Oracle] SQL (DDL, DML) 본문
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