제수기 > SQL - DML/DQL

Eunbi Jo·2024년 12월 23일
0

제수기

목록 보기
10/90
'제수기' - '제발 수업내용을 기억해라'
## 기본 SQL 문법 종류 🌠암기 필요

- 데이터 정의어 : DDL (Data Definition Language)
- 데이터 베이스 객체에 대한 생성 수정 삭제. 

- 데이터 조작어 : DML (Data Manipulation Language)
- 테이블 안의 데이터에 대한 생성 수정 삭제
	- DQL(Data Query Language)를 보통 포함한 개념

- 데이터 제어어 : DCL (Data Control Language)
- 권한을 부여하는 언어
	- 트랜젝션 제어어 : TCL (Transaction Control Language)

DQL 명령어 구조, 순서 (🌠암기)

DQL (Data Query Language) : DML 중에서 SELECT를 따로 정의함.

  • 데이터를 검색(추출)하기 위해 사용되는 언어
  • 주요명령어 SELECT 데이터 검색

-- DQL 명령어 구조 🌠실행순서 암기 필요
/
select 컬럼명 (5) <필수>
from 테이블 (1) <필수>
where 조건절 (2)
gruop by 그룹핑 (3)
having 그룹핑에 대한 조건절 (4)
order by 정렬 기준 (5)
limit offset, 개수 제한 (7)
/

순서대로 대략 써보면
어떤 테이블에서 어떤 행을 고른 다음에 묶어서 조건을 붙이고
최종 결과 집합에 보여줄 컬럼명을 고르고
나온 애들 중에 행의 기준을 정렬 기준으로 맞추고 마지막으로
5개만 구해 또는 5개 건너뛰고 5개만 구해 이런 것들을 처리한다.

마치 말하는 것처럼 순서가 처리된다. 위에서부터 되는 게 아니다.

Select

산술연산

중복제거

-- 2개 이상의 컬럼에 distinct를 적용하면 컬럼값 전부를 합해서 고유한지 비교한다.

문자열 연결연산

WHERE

- 행을 필터링하는 조건절.
- 조건절의 결과가 True인 경우만 결과집합에 포함된다.

다양한 조건문

# where 비교연산자
#     연산자                    설명
#     --------------------------------------------------------------------------------
#     =                        같다
#     >,<                      크다/작다
#     >=,<=                    크거나 같다/작거나 같다
#     <>,!=                    같지 않다 (^= 없음)
#     BETWEEN 최소값 AND 최대값   특정 범위에 포함되는지 비교
#     LIKE / NOT LIKE            문자 패턴 비교
#     IS NULL / IS NOT NULL    NULL 여부 비교
#     IN / NOT IN                비교 값 목록에 포함/미포함 되는지 여부 비교
# 논리 연산자
-- 여러 개의 제한 조건 결과를 하나의 논리결과로 만들어 줌 (&&,|| 사용불가)
-- AND      여러 조건이 동시에 TRUE일 경우에만 TRUE 값 반환
-- OR       여러 조건들 중에 어느 하나의 조건만 TRUE이면 TRUE값 반환
-- NOT !    조건에 대한 반대값으로 반환(NULL은 예외)
-- XOR        두 값이 같으면 거짓, 두 값이 다르면 참

문자열 패턴 비교

목록 포함 여부

NULL

is null로 찾아야 함

ORDER BY

- 결과집합의 행 정렬기준을 작성
- n개의 컬럼에 대해 각각 오름차순/내림차순, null값 위치를 정할 수 있다.
- 컬럼을 지정할 때는 컬럼명을 써도 되고, 별칭, 컬럼순서를 작성할 수 있다.
  • elect에 있는 값들의 별칭을 order by에 써도 잘 나온다.
  • 2(메뉴가격)는 내림차순 1(메뉴명)은 오름차순 이렇게도 할 수 있다.

null 값 처리하기

Limit

- 결과집합의 반환할 행수를 제한하는데 사용
- top-n분석, 페이징처리에 사용

0개의 댓글