1. SQL 기본 문법
1. SELECT 기본 개념
1) SELECT란?
- 데이터를 조회(Read) 할 때 사용하는 명령어
- 테이블에서 원하는 열(Column) 또는 행(Row) 을 추출
2) 기본 구조
SELECT 열이름
FROM 테이블명;3) 실행 순서
FROM → SELECT- FROM : 테이블을 먼저 읽음
- SELECT : 필요한 열을 추출
4) 전체 열 조회
SELECT *
FROM emp;*: 모든 열 조회
2. WHERE절 (조건 검색)
1) 특정 행(Row) 추출
SELECT 열
FROM 테이블
WHERE 조건;2) 실행 순서
FROM → WHERE → SELECT3) 예시
SELECT *
FROM emp
WHERE empno = 7369;3. 데이터 구조 확인
1) 테이블 구조 보기
DESC emp;항목 | 의미 |
Null | NULL 허용 여부 |
Default | 기본값 |
4. 별칭 (Alias)
1) 역할
- 컬럼 이름을 일시적으로 변경
2) 문법
SELECT empno AS 사원번호
FROM emp;※ 실제 컬럼명이 바뀌는 것이 아님 (조회 결과에서만 변경)
3) 허용 문법
SELECT empno 사원번호
FROM emp;SELECT empno '사원번호'
FROM emp;5. DISTINCT (중복 제거)
SELECT DISTINCT job
FROM emp;- 중복된 값 제거
6. 연결 연산자 (문자 합치기)
SELECT CONCAT(ename, '의 직업은 ', job)
FROM emp;별칭 추가 가능
SELECT CONCAT(ename, '의 직업은 ', job) AS 소개
FROM emp;7. NULL 처리
1) NULL 특징
- NULL + 숫자 = NULL
SELECT ename, comm + sal
FROM emp;2) IFNULL 함수
SELECT ename, IFNULL(comm, 0)
FROM emp;SELECT ename, IFNULL(comm, 0)
FROM emp;8. 조건 연산자 정리
1) = (같다)
SELECT *
FROM emp
WHERE ename = 'SMITH';※ 문자열은 반드시 작은따옴표 사용
2) 날짜 검색
SELECT *
FROM emp
WHERE hiredate = '1980-12-17';또는
WHERE hiredate = '1980/12/17';3) NULL 검색
WHERE comm IS NULL;WHERE comm IS NOT NULL;※
= NULL ❌반드시
IS NULL 사용9. 복합 조건
1) OR (조건 중 하나 만족)
SELECT *
FROM emp
WHERE sal=800 OR sal=1600;2) IN (같은 컬럼 여러 값)
SELECT *
FROM emp
WHERE sal IN (800, 900);3) AND (모두 만족)
SELECT *
FROM emp
WHERE sal = 800 AND deptno = 20;4) BETWEEN (범위)
SELECT *
FROM emp
WHERE sal BETWEEN 800 AND 3000;- 800, 3000 포함 (이상 이하)
동일 표현:
WHERE sal>=800AND sal<=3000;10. LIKE 연산자 (패턴 검색)
기호 | 의미 |
% | 모든 문자 |
_ | 한 글자 |
1) S로 시작
WHERE ename LIKE 'S%';2) T로 끝남
WHERE ename LIKE '%T';3) M 포함
WHERE ename LIKE '%M%';4) 세 번째 글자 N
WHERE ename LIKE '__N%';11. 정렬 (ORDER BY)
📌 실행 순서
FROM → WHERE → SELECT → ORDER BY1) 오름차순 (ASC)
SELECT *
FROM emp
ORDER BY sal ASC;※ ASC 생략 가능
2) 내림차순 (DESC)
SELECT *
FROM emp
ORDER BY sal DESC;3) 다중 정렬
SELECT *
FROM emp
ORDER BY job ASC, sal DESC;- job 오름차순
- job이 같으면 sal 내림차순
12. 실행 순서 중요 예제
1) 별칭 사용 가능 (ORDER BY)
SELECT sal*12AS ysal
FROM emp
ORDERBY ysalDESC;✅ 가능
이유: SELECT 후 ORDER BY 실행
2) WHERE에서 별칭 사용 불가
SELECT sal*12AS ysal
FROM emp
WHERE ysal>500
ORDERBY ysalDESC;❌ 오류 발생
이유:
FROM → WHERE → SELECT → ORDER BYWHERE 실행 시점에는
ysal이 아직 생성되지 않음13. View 개념
- 실제 디스크 데이터 변경 ❌
- 가상의 테이블
- SELECT 결과를 테이블처럼 저장해둔 것
Share article