SQL 기본요소

이승범·2024년 9월 15일

테이블명과 테이블의 테이블스페이스 조회

SELECT * FROM TABS;
SELECT * FROM TAB;

모든 컬럼명과 데이터 타입, 데이터 길이 조회

SELECT * FROM COLS;
SELECT * FROM COL;
DESC 테이블명;

SELECT 문을 이용한 조회

SELECT 컬럼명, [컬럼명] FROM 테이블명;
SELECT 컬럼명, [컬럼명] FROM 테이블명 WHERE 조건;

SELECT 문 수식 사용, 별명

별명 부여할 때 AS는 생략 가능
컬럼명에 특수문자가 포함된 경우 "" 안에 넣어서 사용

SELECT 컬럼명+컬럼명 [AS] 별명 FROM 테이블명;

테이블명에 별명 부여

SELECT ROWNUM, 별명.*FROM 테이블명 별명;

WHERE절 뒤에 오는 조건식과 표현식

비교 연산자 : =, >, <, <=, >=, <>, !=, ^=
논리 연산자 : 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을 반환

SELECT 구문의 DISTINCT 옵션과 ORDER BY 절

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인 데이터를 마지막에 출력
profile
creative

0개의 댓글