Search

SQL 기본편

목차

  개요

SQL이란?
Structured Query Language의 약자로, 구조화된 질의어라는 뜻!
RDBMS에서 공통으로 사용되는 약속된 언어 (엑셀의 함수와 비슷)
RDBMS란?
DBMS = Database Management System
RDBMS = Relational DBMS
여러 테이블에서 데이터를 참조하여 연결한다는 의미 (엑셀의 시트와 비슷)
종류 mysql / oracle 등
데이터의 입력
데이터의 관리
데이터의 활용
수집된 데이터를 DBMS에 입력
입력된 데이터의 보관과 관리
데이터의 조회와 추출
예시문법) Insert
예시문법) Update
예시문법) Select
우리가 앞으로 다루게 될 범위
SQLD자격증 시험은 전범위를 넓고 얕게 다루며 + Oracle과 Mysql 두 가지를 모두 배운다면
실제현업 에서는 ‘데이터의 활용’ 부분을 좁고 깊게 다루게 되며, 여기서는 Mysql 기준으로 배워봅시다 : )

SQL의 기본요소

SQL의 3요소
키워드 문법성 기능이 예약되어 있는 단어 = 목적하는 행위를 나타내는 명령어 (ex. SELECT)
속성 선택하고자 하는 대상 = 저장되어 있는 데이터
함수

1. 키워드

[SQL문 대표 키워드]
DDL
DML
DCL
TCL
= Data Definition Language
= Manipulation
= Control
= Transaction Control
CREATE
INSERT
GRANT
COMMIT
ALTER
DELETE
REVOKE
ROLLBACK
RENAME
UPDATE
ROLLBACK 등
DROP 등
SELECT
[기타 예약된 키워드]
FROM
참조할 테이블의 정의
WHERE
추출 조건 정의
ORDER BY
칼럼의 그룹화
GROUP BY
추출한 데이터의 순서 정렬
우리가 앞으로 자주 쓰게 될 키워드 = SELECT FROM WHERE GROUP BY ORDER BY
예시
SELECT _____ FROM _____
SELECT _____ FROM _____ WHERE ______
SELECT _____ FROM _____ WHERE ______ GROUP BY ______
SELECT _____ FROM _____ WHERE ______ GROUP BY ______ ORDER BY ______

2. 속성

예시
SELECT 컬럼명 FROM 테이블명
SELECT 컬럼명 FROM 테이블명 WHERE 필터조건
SELECT 컬럼명 FROM 테이블명 WHERE 필터조건 GROUP BY 그룹조건
SELECT 컬럼명 FROM 테이블명 WHERE 필터조건 GROUP BY 그룹조건 ORDER BY 정렬조건
⇒ SELECT 키워드로 선택하고자 하는 대상의 속성을 정의합니다 = 컬럼명

3. 함수

엑셀과 비슷하게 SQL의 함수도 유사한 역할을 해요.
함수의 연산이 행의 개수에 영향을 미치는지에 따라 1) 단일행함수 2) 다중행함수로 나뉘어요.
함수는 모든절(SELECT, WHERE, GROUP BY, ORDER BY)에서 사용 가능해요.
단일행함수
문자함수
숫자함수
날짜함수
변환함수
흐름제어함수
다중행함수
집계함수
그룹함수
윈도우함수
⇒ 오늘은 여기까지만. 함수에 대한 더 자세한 내용은 다음시간에 배워봅시다

SQL의 기본문법

SELECT와 FROM은 필수!
SELECT 컬럼명 FROM 테이블명
가장 기본이 되는 뼈대 문법
SELECT 컬럼명 FROM 테이블명 WHERE 필터조건
문법 독해/연산 순서 (FROM > SELECT > WHERE)
예시1 users 테이블의 모든 속성을 추출
예시2 users 테이블에서 유저의 이름과 폰번호, 이메일 정보를 추출하고자 할 때
예시3 users 테이블에서 소셜로그인 정보를 추출하고자 할 때
예제1 product 테이블의 모든 속성을 추출
예제2 product 테이블에서 상품아이디와 판매가, 할인가, 최종가를 추출하고자 할 때

SQL의 기본연산

SELECT 절과 달리, WHERE 절에서는 연산자가 필요해요.
연산자의 종류에는 크게 1) 비교연산자와 2) 논리연산자가 있어요.

1. 비교연산자

기호
설명
기호
설명
=
같음
>=
이상
>
보다 큼
<=
이하
<
보다 작음
<>
같지않음
단, 값의 경우 작은 따옴표(')를 사용해서 표기를 해주어야 해요. 숫자의 경우는 제외
예시1 상품가격이 5,000원인 상품의 모든 속성을 추출 (products 테이블에서 추출)
예시2 거주지가 경기도인 유저의 모든 속성을 추출
예시3 가입일자가 2022-08-31인 유저의 모든 속성을 추출
기호
숫자 비교 쿼리
문자비교쿼리
날짜비교쿼리
=
SELECT * FROM product WHERE price = 5000
SELECT * FROM users WHERE city = ‘경기도’
SELECT * FROM users WHERE DATE(joined_at) = ‘2022-08-31’
예제1 상품가격이 5,000원인 상품의 모든 속성을 추출
예제2 거주지가 경기도인 유저의 모든 속성을 추출
예제3 가입일자가 2022-08-31인 유저의 모든 속성을 추출

2. 논리연산자

연산자
설명
AND
모든 조건식이 충족할 때
OR
하나라도 조건을 충족할 때
BETWEEN
대상이 범위 안에 존재할 때
IN
목록 중의 속성과 일치할 때
NOT IN
조건이 거짓일 때
LIKE
조건을 만족할 때 (이때, 와일드카드 ‘%’ 또는 ‘_’를 사용하게 돼요)
예시
연산자
설명
AND
SELECT * FROM orders WHERE order_city = ‘경상남도’ AND order_city = ‘대구광역시’;
OR
SELECT * FROM orders WHERE order_city = ‘경상남도’ OR order_city = ‘대구광역시’;
BETWEEN
SELECT * FROM users WHERE DATE(joined_at) BETWEEN '2022-01-01' AND '2022-01-31';
IN
SELECT * FROM orders WHERE order_city IN ('대구광역시', '경상남도');
NOT IN
SELECT * FROM orders WHERE order_city NOT IN ('대구광역시', '경상남도');
LIKE
SELECT * FROM users WHERE phone LIKE '%45_7%’;
와일드카드란?
여러 데이터에서 부분적으로 일치하는 값이 있는지 확인할 때 사용되는 특수문자
WHERE절에서 와일드 카드 문자를 이용하려면 반드시 LIKE 연산자를 함께 이용해야 한다
와일드 카드 문자를 이용한 검색은 문자열에서만 사용 가능
예제1 주문지가 경기도이면서, 주문가격이 8,000원 이상인 모든 구매 데이터를 추출 (orders 테이블에서 추출)
예제2 주문가격이 500,000원 이하이거나 마지막 로그인 날짜가 2022-11-31일 이전인 모든 구매 데이터를 추출 (orders 테이블에서 추출)
예제3 네이버를 통해서 소셜로그인한 유저의 user_id를 추출 (users 테이블에서 추출)

SQL의 기본규칙

1.
SQL 명령은 세미콜론(;)으로 끝나요. (단, 필수는 아니에요)
2.
SQL키워드는 대소문자를 구분하지 않아요.
3.
SQL 요소와 요소 사이의 간격은 자유롭게 적용 가능해요.
4.
값을 나타낼때는 작은 따옴표(')를 사용해서 표현해요.
5.
주석은 연산을 진행하지 않아요.