✅ SQL 설명
▶ SQL 이란?
- Structured Query Language(구조적 질의 언어)
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위한 데이터 처리 언어
▶ SQL 언어 종류
- DDL(Data Definition Language): 데이터 정의어
- 데이터베이스 객체의 구조를 정의하는 언어
- 예: CREATE, ALTER, DROP, RENAME, TRUNCATE...
- DML(Data Manipulation Language): 데이터 조작어
- 데이터베이스 테이블 레코드의 CRUD를 통해 내부 데이터를 관리하기 위한 언어
- 예: SELECT, INSERT, UPDATE, DELETE...
- DCL(Data Control Language): 데이터 제어어
- 데이터 관리를 목적으로 데이터베이스 및 구조에 대한 접근 권한을 제어하는 언어
- 예: GRANT, REVOKE...
- TCL(Transaction Control Language): 트랜잭션 제어어
- 트랜잭션을 제어하는 언어
- 예: COMMIT, ROLLBACK, SAVEPOINT...
▶ SQL 특징
- 대소문자를 구분하지 않는다.
- SQL 명령문 끝에는 세미콜론(;)을 붙여야 한다.
- 문자열을 나타낼 때는 따옴표(')로 감싸야 한다.
- 객체 이름이나 열(필드)명을 백틱(`)으로 감싸야 한다.
- 한 줄 주석은 '--'을 사용, 여러 줄 주석은 '/* */'을 사용한다.
- SQL 명령문은 관계형 데이터베이스 관리 시스템(RDBMS, ex: PostgreSQL, MySQL)의 종류에 따라 일부 차이가 있을 수 있다.
✅ SQL 문법
1️⃣ DDL(Data Definition Language): 데이터 정의어
▶ CREATE
- CREATE DATABASE: 새로운 데이터베이스 생성
CREATE DATABASE 데이터베이스이름;
- CREATE TABLE: 새로운 테이블 생성
CREATE TABLE 테이블이름
(
필드이름1 필드타입1,
필드이름2 필드타입2,
...
);
▶ ALTER
- ALTER TABLE: 기존 테이블 수정
- ADD: 테이블의 열(필드) 추가
ALTER TABLE 테이블이름 ADD COLUMN 새열이름 새열타입;
- DROP: 테이블의 열(필드) 삭제
ALTER TABLE 테이블이름 DROP COLUMN 열이름;
- MODIFY COLUMN: 테이블의 열(필드) 타입 변경
ALTER TABLE 테이블이름 MODIFY COLUMN 열이름 새열타입;
▶ DROP
- DROP DATABASE: 데이터베이스 삭제
DROP DATABASE 데이터베이스이름;
- DROP TABLE: 테이블 삭제
DROP TABLE 테이블이름;
- TRUNCATE TABLE: 테이블의 데이터만 삭제
TRUNCATE TABLE 테이블이름;
2️⃣ DML(Data Manipulation Language): 데이터 조작어
▶ SELECT
- SELECT: 행(레코드) 조회
- SELECT, FROM을 제외한 나머지는 생략 가능
SELECT 열이름1, 열이름2, ...
FROM 테이블이름
JOIN 다른테이블이름 ON 조인조건
WHERE 조건식
GROUP BY 열이름
HAVING 조건식
ORDER BY 열이름
LIMIT 숫자;
- 아래처럼 별칭(alias)을 통해 작성 가능
SELECT 열이름 AS 별칭 FROM 테이블이름;
SELECT 열이름 FROM 테이블이름 AS 별칭;
▶ INSERT
- INSERT INTO: 새로운 행(레코드) 삽입
INSERT INTO 테이블이름 (열이름1, 열이름2, ...)
VALUES (값1, 값2, ...);
- 아래 조건을 만족하면 아래처럼 열(필드) 이름 생략 가능 (데이터베이스 스키마와 같은 순서로 열(필드) 값이 자동 대입됨)
- NULL을 저장할 수 있도록 설정된 열(필드)
- DEFAULT 제약 조건이 설정된 열(필드)
- AUTO_INCREMENT 키워드가 설정된 열(필드)
INSERT INTO 테이블이름 VALUES (값1, 값2, 값3, ...);
▶ UPDATE
- UPDATE: 기존 행(레코드) 수정
UPDATE 테이블이름
SET 열이름1 = 값1, 열이름2 = 값2, ...
WHERE 조건식;
▶ DELETE
- DELETE FROM: 기존 행(레코드) 삭제
DELETE FROM 테이블이름
WHERE 조건식;