SQL은 데이터 정의 언어(DDL), 데이터 조작 언어(DML), 데이터 제어 언어(DCL), 트랜잭션 제어 언어(TCL)의 네 가지 주요 유형으로 나뉩니다. 📚
이 중 DML(데이터 조작 언어)이 가장 중요하며, 특히 SELECT 문이 핵심입니다. 💡
DDL(데이터 정의 언어)은 데이터베이스 객체를 정의하는 데 사용되며, CREATE, ALTER, DROP, TRUNCATE 명령어가 포함됩니다. 🛠️
CREATE는 데이터베이스, 테이블, 뷰, 인덱스 등 데이터베이스 객체를 생성하는 데 사용됩니다. ✨
ALTER는 기존 데이터베이스 객체(주로 테이블)의 구조를 갱신(필드 추가/수정/삭제, 제약 조건 추가/삭제)하는 데 사용됩니다. 🔄
DROP은 데이터베이스나 테이블 자체를 구조와 함께 통째로 삭제하며, TRUNCATE는 테이블의 구조는 유지한 채 모든 레코드만 삭제합니다. 🗑️
테이블 생성 시 PRIMARY KEY(기본 키), UNIQUE(고유 키), FOREIGN KEY(외래 키), NOT NULL(널 값 불허), DEFAULT(기본 값), AUTO_INCREMENT(자동 증가)와 같은 다양한 제약 조건을 설정할 수 있습니다. 🔒
PRIMARY KEY는 테이블의 각 레코드를 고유하게 식별하며 테이블당 하나만 존재하고, UNIQUE 키는 고유한 값을 갖지만 여러 필드에 설정 가능합니다. 🔑
FOREIGN KEY는 다른 테이블의 기본 키를 참조하여 테이블 간의 관계를 설정합니다. 🔗
DESCRIBE 또는 DESC 명령어를 사용하여 특정 테이블의 구조(필드, 타입, 제약 조건 등)를 조회할 수 있습니다. 🔍
SHOW DATABASES로 데이터베이스 목록을, SHOW TABLES로 현재 데이터베이스의 테이블 목록을 조회할 수 있습니다. 📊
DML(데이터 조작 언어)은 레코드를 삽입, 수정, 삭제, 조회하는 데 사용되며, INSERT, UPDATE, DELETE, SELECT 명령어가 있습니다. ✍️
INSERT는 테이블에 새로운 레코드를 삽입하며, 여러 레코드를 한 번에 삽입할 수도 있고, 제약 조건을 준수해야 합니다. ➕
UPDATE는 WHERE 절의 조건에 맞는 레코드의 필드 값을 수정하는 데 사용됩니다. ✏️
DELETE는 WHERE 절의 조건에 맞는 레코드를 삭제하는 데 사용됩니다. ❌
UPDATE와 DELETE 시 외래 키 제약 조건(ON UPDATE CASCADE, ON DELETE SET NULL 등)에 따라 참조하는 데이터의 동작 방식을 정의할 수 있습니다. 🤝
SELECT는 가장 강력한 조회 명령어로, SELECT [필드] FROM [테이블] WHERE [조건] GROUP BY [필드] HAVING [조건] ORDER BY [필드] LIMIT [제한]과 같은 복잡한 구조로 데이터를 다양하게 필터링, 정렬, 그룹화하여 조회할 수 있습니다. 📈
WHERE 절은 UPDATE, DELETE, SELECT 명령에서 특정 조건에 맞는 레코드만 대상으로 지정하는 필터 역할을 합니다. 🎯
실습 환경 구성(Docker 활용)은 SQL 학습에 필수적이며, 제공된 링크를 통해 환경을 설정할 수 있습니다. 💻