- 테이블 컬럼 전체 출력
SELECT * FROM 테이블이름;
(* -> 해당 문자가 전체란 의미)
- as : 별칭, 알리아스
SELECT EMPLOYEE_ID AS "ID",
SALARY "SAL"
FROM EMPLOYEES e
;
// as를 생략하고 사용가능. employee_id 는 ID로 출력되고 salary는 SAL로 출력
- distinct : 중복값 제거
SELECT DISTINCT DEPARTMENT_ID
FROM EMPLOYEES e
;
- >, <, >=, <=
SELECT *
FROM EMPLOYEES e
WHERE SALARY <= 5000
;
- and : 그리고.
=SELECT EMPLOYEE_ID , DEPARTMENT_ID , MANAGER_ID , LAST_NAME
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 50
AND MANAGER_ID = 100
;=
// department_id가 50이고 manager_id가 100인 값만 출력
- or : 또는
=SELECT EMPLOYEE_ID , DEPARTMENT_ID , MANAGER_ID , LAST_NAME
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 50
OR MANAGER_ID = 100
;=
// department_id가 50이거나 manager_id가 100인 값만 출력
- not () : 부정
SELECT EMPLOYEE_ID, LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES e
WHERE NOT (DEPARTMENT_ID = 50)
;
// DEPARTMENT_ID 값이 50이 아닌 결과값만 출력
- not -> <>
SELECT EMPLOYEE_ID, LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES e
WHERE DEPARTMENT_ID <> 50
;
- not -> !=
SELECT EMPLOYEE_ID, LAST_NAME, DEPARTMENT_ID
FROM EMPLOYEES e
WHERE DEPARTMENT_ID != 50
;
- between and
SELECT *
FROM EMPLOYEES e
WHERE SALARY BETWEEN 4000 AND 8000
;
// salary값이 4000~8000인 결과값 출력
- in() -> or와 동일
SELECT EMPLOYEE_ID , FIRST_NAME , SALARY
FROM EMPLOYEES e
WHERE SALARY IN (6500, 7700, 13000)
;
// salary값이 6500이거나 7700이거나 13000인 결과값만 출력
- like
SELECT EMPLOYEE_ID , FIRST_NAME , LAST_NAME
FROM EMPLOYEES e
WHERE FIRST_NAME LIKE 'D%'
;
// first_name이 D로 시작하는 결과값 출력
// '%D' = D로 끝나는 결과값 출력, '%D%' D가 들어가는 결과값 출력
- like -> _a%
SELECT EMPLOYEE_ID , FIRST_NAME
FROM EMPLOYEES e
WHERE FIRST_NAME LIKE '_a%'
;
// first name의 두 번째 글자가 a인 결과값 출력
- is null
SELECT *
FROM EMPLOYEES e
WHERE DEPARTMENT_ID IS NULL
;
// department_id 값이 null인 결과값 출력
- is not null
SELECT *
FROM EMPLOYEES e
WHERE COMMISSION_PCT IS NOT NULL
;
// commission_pct 결과값이 null이 아닌것만 출력
- order by asc : 오름차순으로 출력
SELECT *
FROM EMPLOYEES e
ORDER BY FIRST_NAME ASC
;
// ASC는 생략가능
- order by desc : 내림차순으로 출력
SELECT *
FROM EMPLOYEES e
ORDER BY SALARY DESC
;
- sum : 합계
SELECT sum(SALARY)
FROM EMPLOYEES e
;
// SALARY 값들의 합계를 출력
- count() : 카운트
SELECT COUNT(COMMISSION_PCT)
FROM EMPLOYEES e
;
// COMMISSION_PCT 결과값 갯수를 카운트하여 출력
- avg() : 평균
SELECT avg(SALARY)
FROM EMPLOYEES e
WHERE DEPARTMENT_ID = 80
;
// SALARY 결과값의 평균을 계산하여 출력
- max() : 최댓값
SELECT MAX(SALARY)
FROM EMPLOYEES e
;
// SALARY 결과값 중 최댓값을 출력
- min() : 최솟값
SELECT MIN(SALARY)
FROM EMPLOYEES e
;
// SALARY 결과값 중 최솟값을 출력
dual
Oracle에서 기본으로 제공하는 dummy table로 간단하게 함수의 쓰임이나 결과값을 확인하고 싶을때 특정 테이블을 생성할 필요 없이 dual table을 이용하여 함수 값을 리턴 받을 수 있다.
- abs : 절댓값
SELECT ABS(-33)
FROM dual
;
// -33의 절댓값(33)을 출력
- round() : 반올림
SELECT ROUND(0.123), ROUND(3.5678)
FROM dual
;
// 0.123을 반올림하여 0을 출력하고
// 3.5678을 반올림하여 4를 출력한다.
-
trunc() : 절삭
SELECT TRUNC(1234.5678)
FROM dual
;
// 소숫점을 모두 절삭하여 1234 출력
-
trunc(n, n)
SELECT TRUNC(1234.5678, 2)
FROM dual
;
// 소숫점 둘 째 자리까지만 출력
// 결과값 = 1234.56
-
trunc(n, -n)
SELECT TRUNC(1234.5678, -1)
FROM dual
;
// 소숫점 자리 모두 절삭 후
// 정수의 일의 자리를 0으로 표기
// 결과값 = 1230
- concat(char1, char2), || : 문자열 연결
SELECT CONCAT('Hello', 'Bye'), CONCAT('good', 'bad'), 'good' || 'bad'
FROM dual
;
// 결과값 = HelloBye, goodbad, goodbad
- initcap : 첫 글자를 대문자로 표기
SELECT INITCAP('good morning')
FROM dual
;
// 결과값 = Good Morning
- upper(char), lower(char) : 대/소문자로 표기
SELECT LOWER('GOOD'), UPPER('good')
FROM dual
;
// 결과값 = good, GOOD
-
LPAD(값, 총문자길이, 채움문자)
SELECT LPAD('good', 6), LPAD('good', 7, '#'), LPAD('good', 8, 'A')
FROM dual
;
// 결과값 = good, ###good, AAAAgood
-
RPAD(값, 총문자길이, 채움문자)
SELECT RPAD('good', 6), RPAD('good', 7, '#'), RPAD('good', 8, 'A')
FROM dual
;
// 결과값 = good, good###, goodAAAA
- sysdate : 시간
SELECT SYSDATE
FROM dual
;
// 현재 YY-MM-DD hh:mm:ss.000 출력
- add_months() : n개월을 더함
SELECT ADD_MONTHS(SYSDATE, 7)
FROM dual
;
// 현재 날짜에 7개월을 더하여 결과값 출력
- last_day : 현재달의 마지막 날짜
SELECT LAST_DAY(SYSDATE)
FROM dual
;
// 현재 달의 마지막 날짜를 출력 YY-MM-DD hh:mm:ss.000
SELECT SYSDATE + (INTERVAL '1' YEAR),
SYSDATE + (INTERVAL '1' MONTH),
SYSDATE + (INTERVAL '1' DAY),
SYSDATE + (INTERVAL '1' HOUR),
SYSDATE + (INTERVAL '1' MINUTE),
SYSDATE + (INTERVAL '1' SECOND)
FROM dual
;
// 순서대로 현재의 년월일시간분초에 1씩 더하여 출력
- to_char() : 문자열 변환
SELECT TO_CHAR(SYSDATE, 'yyyy/mm/dd')
FROM dual
;
SELECT TO_CHAR(SYSDATE,'yyyymmdd'),
TO_CHAR(SYSDATE,'yyyy/mm/dd'),
TO_CHAR(SYSDATE,'yyyy-mm-dd'),
TO_CHAR(SYSDATE,'yyyy-mm-dd HH24:MI:SS')
FROM dual
;
- to_date() : 날짜형으로 변환
SELECT TO_DATE('2024/07/30', 'yyyy/mm/dd')
FROM dual
;
- nvl() : null값을 다른 데이터로 변경하는 함수
SELECT FIRST_NAME , LAST_NAME ,COMMISSION_PCT,
NVL(COMMISSION_PCT, 0) commission
FROM EMPLOYEES e
;
// COMMISSION_PCT 값 중 null값은 0으로 출력한다. AS를 입력하지 않으면 NVL(COMMISSION_PCT, 0)이렇게 그대로 출력된다.
- decode() : switch문의 역할을 하는 함수
SELECT *
FROM DEPARTMENTS d
;
SELECT DEPARTMENT_ID , DECODE(DEPARTMENT_ID, 20, 'MA', 60, 'IT', 90, 'EX', 'ETC')
FROM DEPARTMENTS d
;
// DEPARTMENT_ID값이 20이면 'MA', 60이면 'IT', ... 이렇게 출력된다.
- case -when : switch문의 역할을 하는 함수
SELECT FIRST_NAME , DEPARTMENT_ID ,
CASE WHEN DEPARTMENT_ID = 20 THEN 'MA'
WHEN DEPARTMENT_ID = 60 THEN 'IT'
WHEN DEPARTMENT_ID = 90 THEN 'EX'
ELSE 'ETC'
END "departments"
FROM EMPLOYEES e
;
// DEPARTMENT_ID값이 20이면 'MA', 60이면 'IT', ... 이렇게 출력된다.
// AS의 역할을 하는 END를 입력하지 않으면 오류가 발생한다.