SELECT * FROM TABS;
SELECT * FROM TAB;
SELECT * FROM COLS;
SELECT * FROM COL;
DESC 테이블명;
SELECT 컬럼명, [컬럼명] FROM 테이블명;
SELECT 컬럼명, [컬럼명] FROM 테이블명 WHERE 조건;
별명 부여할 때 AS는 생략 가능
컬럼명에 특수문자가 포함된 경우 "" 안에 넣어서 사용
SELECT 컬럼명+컬럼명 [AS] 별명 FROM 테이블명;
SELECT ROWNUM, 별명.*FROM 테이블명 별명;
비교 연산자 : =, >, <, <=, >=, <>, !=, ^=
논리 연산자 : AND, OR, NOT\
그룹 비교 연산자 : ANY(SOME), ALL
BETWEEN 조건식
WHERE 컬럼명 BETWEEN A AND B
-- A와 B 범위 안에 있으면 참
IN 조건식
WHERE 컬럼명 IN (A,B,C...)
-- A와 B와 C가 컬럼 안에 하나라도 있으면 참
LIKE 조건식
주어진 문자열이 패턴과 일치 하는지의 여부
'%' : 여러 문자 공통 , '_' : 한 문자 공통
LIKE 보다 INSTR() 함수가 더 빠름
SELECT NANE
FROM EMP
WHERE NAME LIKE '김%'
-- EMP라는 테이블에 사람 이름들이 저장 되있는 NAME 컬럼
-- 그 중에서 김씨만 출력
WHERE NAME LIKE '%김%'
-- 이름 중, 김이 들어있는 모든 데이터 출력
WHERE NAME LIKE '%김'
-- 이름 중, 김으로 끝나는 데이터 출력
WHERE RRN LIKE '__03%'
-- 주민번호 형식으로 되어있는 RRN 컬럼에서 03년생 출력
NULL
행의 열(컬럼)에 값이 없으면 null
NOT NULL, PRIMARY KEY도 무결성 제약 조건에 제한 하지않는 경우 NULL을 가질수 있음
길이가 0인 문자열도 NULL
NULL은 비교연산자로 비교하지않고 이와 같이 비교한다.
수식,컬럼 IS [NOT] NULL
오라클에서는 ' '와 NULL 모두 NULL이다
SELECT 컬럼 FROM 테이블명 WHERE 컬럼 IS NULL
--컬럼 중, NULL인 자료 출력
SELECT 컬럼 FROM 테이블명 WHERE 컬럼 IS NOT NULL
--컬럼 중, NULL이 아닌 자료 출력
CASE 구문
비교할 값이 참이면 반환 값
자바 IF문과 유사한 구조
CASE 컬럼명 또는 표현식
WHEN 비교할 값 THEN 반환 값
[ELSE 반환값]
END [이 구문을 통칭하는 명]
DECODE 함수
DECODE(a, 'b', 1, 2)
--a라는 항목값이 'b'이면 1, 그렇지 않으면 2을 반환
--a는 컬럼 또는 특정값임.
DECODE(a, 'b', 1)
--a라는 항목값이 'b'이면 1, 그렇지 않으면 NULL을 반환
DECODE(a, 'b', 1, 'c', 2,3)
--a라는 항목값이 'b'이면 1, 'c'면 2, 그렇지 않으면 3을 반환
DISTINCT 옵션
SELECT DISTINCT 1컬럼,[2컬럼] FROM 테이블명
--DISTINCT : 1컬럼과 2컬럼 사이의 중복되는 행을 배제함.
ORDER BY 절
ORDER BY 절에서는 SELECT에서 컬럼에 붙인 별명 사용 가능
왜냐면, SELECT 구문 실행순서 때문인데 실행순서는 아래와 같음
1.FROM 테이블명
2.WHERE
3.GROUP BY 컬럼명
4.HAVING 집계함수 조건식
5.SELECT 컬럼명(표현식)
6.ORDER BY 컬럼명(표현식)
SELECT 컬럼,[컬럼] FROM 테이블명 ORDER BY 컬럼,[컬럼]
-- 컬럼을 오름 차순으로 출력
SELECT 컬럼,[컬럼] FROM 테이블명 ORDER BY 컬럼 DESC,[컬럼 DESC]
-- 컬럼을 내림 차순으로 출력
ORDER BY 절에서의 NULL
SELECT 컬럼 FROM 테이블 ORDER BY 컬럼 NULLS FIRST
-- 컬럼이 NULL인 데이터를 먼저 출력
SELECT 컬럼 FROM 테이블 ORDER BY 컬럼 NULLS LAST
-- 컬럼이 NULL인 데이터를 마지막에 출력