Database

Database - Chapter 3-14. SQL (DML) 기초(테이블생성,테이터생성)

Chansman 2025. 3. 20. 11:33

🚀 SQL 완벽 가이드 (기초부터 실전 활용까지)

SQL을 처음 접하는 분들도 쉽게 이해할 수 있도록 각 프로세스별로 개념과 활용법을 상세히 설명해 드립니다.
데이터베이스를 다룰 때 기본이 되는 핵심 문법과 개념을 확실하게 익혀보세요! 🎯


📌 1. 테이블 생성 (CREATE TABLE)

🔹 개념
데이터를 저장할 그릇(테이블)을 만드는 과정입니다.
테이블을 만들 때는 **컬럼(속성)**을 정의해야 하며, 각 컬럼의 데이터 유형을 지정합니다.

sql
 
CREATE TABLE users (
    user_id INTEGER PRIMARY KEY AUTO_INCREMENT,
    username TEXT NOT NULL,
    email TEXT NOT NULL,
    age INTEGER
);
 

설명

  • user_id → 고유번호, 자동 증가 (AUTO_INCREMENT)
  • username → 사용자 이름, 필수 입력 (NOT NULL)
  • email → 이메일 주소, 필수 입력 (NOT NULL)
  • age → 나이, 입력하지 않으면 NULL 가능

💡 테이블 생성 시 주의할 점

  • PRIMARY KEY는 중복을 허용하지 않는 고유 값이어야 합니다.
  • AUTO_INCREMENT는 값을 자동으로 증가시킵니다.

📌 2. 데이터 추가 (INSERT INTO)

🔹 개념
테이블을 만들었으면 데이터를 추가(삽입)하는 단계입니다.
데이터를 추가할 때 컬럼과 값의 개수가 일치해야 하며, 데이터 타입도 맞아야 합니다.

1️⃣ 모든 컬럼에 데이터 추가

sql
복사편집
INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 25);

설명

  • username, email, age 모든 컬럼에 값을 입력
  • 반드시 컬럼명과 값 개수를 일치시켜야 함

2️⃣ 일부 컬럼만 추가 (NULL 허용)

sql
INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com');

설명

  • age를 입력하지 않으면 자동으로 NULL 값이 저장됨

3️⃣ 여러 개의 데이터 한 번에 추가

sql
INSERT INTO users (username, email, age) VALUES
    ('alice', 'alice@example.com', 30),
    ('bob', 'bob@example.com', 28);
 

설명

  • VALUES 뒤에 여러 개의 (값)을 나열하면 한 번에 여러 데이터 입력 가능

4️⃣ 중복 방지 (INSERT IGNORE)

sql
INSERT IGNORE INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 25);
 

설명

  • 이미 같은 username이 존재하면 에러 없이 무시하고 넘어감

📌 3. 데이터 조회 (SELECT)

🔹 개념
저장된 데이터를 조회(검색)하는 과정입니다.
SELECT 문을 사용해 원하는 데이터를 다양한 조건으로 검색할 수 있습니다.

1️⃣ 모든 데이터 조회 (* 사용)

sql
 
SELECT * FROM users;

설명

  • *는 모든 컬럼을 선택한다는 의미

2️⃣ 특정 컬럼만 조회

sql
 
SELECT username, email FROM users;

설명

  • 필요한 컬럼만 선택하여 조회할 수 있음

3️⃣ 중복 제거 (DISTINCT)

sql
 
SELECT DISTINCT age FROM users;

설명

  • DISTINCT를 사용하면 중복 데이터를 제거하고 조회

4️⃣ 데이터 정렬 (ORDER BY)

sql
SELECT * FROM users ORDER BY age DESC;

설명

  • ORDER BY를 사용하여 오름차순(ASC) 또는 내림차순(DESC)으로 정렬

5️⃣ 특정 조건으로 검색 (WHERE)

sql
 
SELECT * FROM users WHERE age >= 30;

설명

  • WHERE을 사용하여 특정 조건을 만족하는 데이터만 조회

💡 응용 예제

sql
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
  • BETWEEN을 사용하면 특정 범위(20~30)의 값만 조회 가능

📌 4. 데이터 수정 (UPDATE)

🔹 개념
이미 저장된 데이터를 수정(업데이트)하는 과정입니다.
UPDATE 문을 사용할 때 WHERE 조건을 반드시 지정해야 합니다.

1️⃣ 특정 데이터 수정

sql
 
UPDATE users SET username = 'John' WHERE user_id = 1;

설명

  • SET 컬럼 = 값을 사용하여 특정 컬럼의 값을 변경
  • WHERE 조건을 사용하여 특정 데이터만 수정 (조건 없으면 모든 데이터가 변경됨!)

2️⃣ 여러 개의 값 수정

sql
 
UPDATE users SET email = 'new_email@example.com', age = 35 WHERE username = 'john_doe';

설명

  • SET 뒤에 여러 개의 컬럼 = 값을 나열하여 여러 개의 컬럼을 동시에 수정 가능

3️⃣ 조건에 따라 다르게 업데이트 (CASE WHEN)

sql
 
UPDATE users SET username = CASE
    WHEN age >= 60 THEN 'senior'
    ELSE 'young'
END;

설명

  • CASE WHEN을 활용하면 조건에 따라 다른 값으로 업데이트 가능

📌 5. 데이터 삭제 (DELETE)

🔹 개념
특정 조건을 만족하는 데이터를 삭제하는 과정입니다.
데이터를 삭제할 때 WHERE 조건을 반드시 추가해야 합니다.

1️⃣ 특정 조건으로 데이터 삭제

sql
 
DELETE FROM users WHERE age < 18;

설명

  • age가 18 미만인 데이터만 삭제

💡 주의:

sql
 
DELETE FROM users;
  • WHERE 절 없이 실행하면 모든 데이터가 삭제됨!! 😱
  • 특정 데이터만 삭제하려면 반드시 WHERE 조건을 포함해야 함

📌 6. 데이터베이스 최적화 (고급 활용)

🔹 추가로 알아두면 좋은 기능

1️⃣ 데이터 개수 세기 (COUNT)

sql
 
SELECT COUNT(*) FROM users;
  • COUNT(*)를 사용하면 전체 데이터 개수를 확인 가능

2️⃣ 그룹별 데이터 개수 조회 (GROUP BY)

sql
 
SELECT age, COUNT(*) FROM users GROUP BY age;
  • GROUP BY를 사용하면 같은 값을 가진 데이터끼리 그룹화하여 개수 조회 가능

3️⃣ 삭제된 데이터 되돌리기 (ROLLBACK)

sql
 
START TRANSACTION;
DELETE FROM users WHERE age < 18;
ROLLBACK;  -- 삭제 취소
  • ROLLBACK을 사용하면 실수로 삭제한 데이터를 되돌릴 수 있음

✅ 마무리 및 정리

이제 SQL의 기본 개념과 활용법을 각 프로세스별로 쉽게 이해할 수 있도록 정리했습니다! 🚀
블로그 포맷으로 복사하여 사용하세요! 🎯

궁금한 점이나 추가 요청이 있으면 언제든 말씀해주세요! 😊