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

2025. 3. 20. 11:33·Database

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

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

 
 

 

'Database' 카테고리의 다른 글

Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)  (0) 2025.03.20
Database - Chapter 3-15. SQL (DML) 기초(데이터 조회)  (0) 2025.03.20
Database - Chapter 2-13. MySQL 데이터 타입  (0) 2025.03.19
Database - Chapter 2-12. MySQL 데이터베이스 Schema 구성 (DDL)  (0) 2025.03.19
Database - Chapter 2-11. MySQL User 데이터  (0) 2025.03.19
'Database' 카테고리의 다른 글
  • Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)
  • Database - Chapter 3-15. SQL (DML) 기초(데이터 조회)
  • Database - Chapter 2-13. MySQL 데이터 타입
  • Database - Chapter 2-12. MySQL 데이터베이스 Schema 구성 (DDL)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (642) N
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (10)
      • 특강 (34) N
      • 기술블로그 (35) N
      • 기술블로그-Fastapi편 (9) N
      • 기술블로그-Django편 (151)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Database - Chapter 3-14. SQL (DML) 기초(테이블생성,테이터생성)
상단으로

티스토리툴바