SQL 코딩테스트를 해야 할 상황이 갑자기 생겼다. SQL은 gpt나 구글링으로만 자주 했는데... 간단한 문제를 풀 수 있는 기초를 다시 한번 다져봐야겠다.
gpt와 여러 개발자분들의 아티클을 합쳐서 개인적으로 정리해봤다.
수정하며 내가 이해하기 쉽게 최종본으로 정리해보자.
데이터베이스와 SQL의 기본 개념
데이터베이스 관리 시스템(DBMS)의 종류
SQL의 기본 구조와 문법
데이터베이스 및 테이블 생성
-- 데이터베이스 생성
CREATE DATABASE mydatabase;
-- 데이터베이스 사용
USE mydatabase;
-- 테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
기본 데이터 타입 이해
-- 데이터 삽입
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
-- 데이터 수정
UPDATE users SET email = 'john.doe@example.com' WHERE username = 'john_doe';
-- 데이터 삭제
DELETE FROM users WHERE username = 'john_doe';
3단계: 기초 SQL 질의문 연습
sql
-- 모든 컬럼 조회
SELECT * FROM users;
-- 특정 컬럼 조회
SELECT username, email FROM users;
WHERE 절
sql
-- 조건에 맞는 데이터 조회
SELECT * FROM users WHERE username = 'john_doe';
ORDER BY 절
sql
-- 데이터 정렬
SELECT * FROM users ORDER BY created_at DESC;
LIMIT 및 OFFSET
sql
-- 데이터 제한
SELECT * FROM users LIMIT 10 OFFSET 20;
4단계: 고급 SQL 문법 학습
sql
코드 복사
-- INNER JOIN 예시
SELECT users.username, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;
sql
코드 복사
-- 그룹화 및 조건
SELECT COUNT(*), username
FROM users
GROUP BY username
HAVING COUNT(*) > 1;
sql
코드 복사
-- 서브쿼리 예시
SELECT username
FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
5단계: 실전 문제 풀이 및 연습
LeetCode, HackerRank 등에서 SQL 문제 풀이
기출 문제 및 다양한 시나리오 기반 연습
6단계: 최적화 및 심화 학습
인덱스와 성능 최적화
sql
코드 복사
-- 인덱스 생성
CREATE INDEX idx_username ON users(username);
복잡한 쿼리 작성 연습
여러 테이블을 사용하는 복잡한 쿼리 작성
트랜잭션 관리
데이터베이스 설계 기초