수업 일지

8주차 정리

민민밍 2025. 2. 10. 08:49

📌 SQL 기본 개념 정리

이번주는 SQL의 기본 개념과 쿼리 실행 순서에 대해 정리했습니다.

1️⃣ 데이터베이스 구조

  • 데이터베이스 서버데이터베이스(관계 없음)테이블(관계 존재)로우(데이터 개별 항목)
  • 테이블은 서로 관계를 맺을 수 있음.

2️⃣ SQL 개요

  • SQL (Structured Query Language): 데이터베이스에서 데이터를 CRUD(Create, Read, Update, Delete)하는 명령어.
  • SQL 종류
    • DML(Data Manipulation Language): 데이터를 조작 (예: SELECT, INSERT, UPDATE, DELETE)
    • DDL(Data Definition Language): 데이터베이스 및 테이블 정의 (예: CREATE, ALTER, DROP)
    • DCL(Data Control Language): 시스템 접근 권한 제어 (예: GRANT, REVOKE)

3️⃣ DML - 데이터 조회(READ)

  • 기본 문법
    sql
    복사편집
    SELECT <열 이름> FROM <테이블 이름> WHERE <조건>;
  • 조건 연산자
    • 산술 연산자 (+, -, *, /)
    • 비교 연산자 (=, !=, >, <, >=, <=) → 조건 1개
    • 논리 연산자 (AND, OR) → 조건 2개 이상
      • AND: 모든 조건을 만족해야 함.
      • OR: 하나의 조건만 만족해도 됨.

4️⃣ 연산자 우선순위

  • 산술 > 비교 > 논리 순서로 실행됨.

5️⃣ SQL 쿼리 실행 순서

  1. FROM – 데이터를 가져올 테이블 선택
  2. WHERE – 조건 필터링
  3. SELECT – 원하는 열 선택

📌 SQL 기본 개념 정리 – DDL vs DML

🔹 1. DDL (데이터 정의 언어)

테이블 구조를 정의하거나 변경하는 명령어

구분명령어설명

CREATE CREATE TABLE 테이블 생성
ALTER ALTER TABLE 컬럼 추가/수정
DROP DROP TABLE 테이블 삭제

예제: 테이블 생성 (CREATE TABLE)

 

CREATE TABLE users (

         id INT PRIMARY KEY AUTO_INCREMENT,

        name VARCHAR(50) NOT NULL,

        email VARCHAR(100) UNIQUE,

        age INT DEFAULT 0
);

  • PRIMARY KEY : 기본 키 설정
  • NOT NULL : 반드시 값이 있어야 함
  • UNIQUE : 중복 값 불가
  • DEFAULT : 기본값 설정

예제: 테이블 수정 (ALTER TABLE)

 

ALTER TABLE users ADD COLUMN phone VARCHAR(20); -- 컬럼 추가

ALTER TABLE users MODIFY COLUMN age INT NOT NULL; -- 컬럼 수정

ALTER TABLE users DROP COLUMN phone; -- 컬럼 삭제

 


🔹 2. DML (데이터 조작 언어)

테이블의 데이터를 추가, 수정, 삭제하는 명령어

구분명령어설명

INSERT INSERT INTO 데이터 삽입
UPDATE UPDATE SET 데이터 수정
DELETE DELETE FROM 데이터 삭제

예제: 데이터 삽입 (INSERT INTO)

 

INSERT INTO users (name, email, age)

VALUES ('Andy', 'andy@gmail.com', 26);

 


예제: 데이터 수정 (UPDATE SET)

 

UPDATE users SET age = 30 WHERE email = 'andy@gmail.com' LIMIT 1;

📌 WHERE와 LIMIT을 반드시 사용해서 실수로 모든 데이터를 수정하는 걸 방지!


예제: 데이터 삭제 (DELETE FROM)

 

DELETE FROM users WHERE email = 'andy@gmail.com' LIMIT 1;

📌 WHERE 없이 실행하면 모든 데이터가 삭제될 위험이 있음!


🔹 3. 데이터베이스 모델링

데이터를 잘 설계하려면 모델링 과정이 필요해!

1️⃣ 개념적 모델링 → ERD(엔터티 관계 다이어그램) 작성
2️⃣ 논리적 모델링 → 테이블 설계 (속성, 관계 정의)
3️⃣ 물리적 모델링 → 실제 DBMS에 테이블 생성


🚀 정리

DDL : 테이블 구조를 정의하는 명령어 (CREATE, ALTER, DROP)
DML : 데이터를 삽입, 수정, 삭제하는 명령어 (INSERT, UPDATE, DELETE)
✅ WHERE, LIMIT을 활용해 안전한 데이터 수정 & 삭제
데이터베이스 모델링을 통해 테이블 구조를 설계해야 함

 

DDL : DATABASE, TABLE
    - C(CREATE)R(SHOW,DESC)U(ALTER)D(DROP)
DML : DATA
    - C(INSERT INTO VALUES)R(SELECT FROM)U(UPDATE SET)D(DELETE FROM)

 


📌 EER 다이어그램으로 데이터베이스와 테이블 생성

Database > Reverse Engineer : 데이터베이스를 EER 다이어그램으로 출력


📌데이터분석 프로세스 

문제정의(계획수립) -> 데이터수집 -> 데이터처리 -> 데이터분석 -> 결론도출 
데이터처리: 불필요한 컬럼제거 -> 결측 데이터 처리(제거,채움) / 데이터의 손상이 최소화(null이 없을때) 되면 제거

                    else 평균, 중앙값(오차가 가장 적을만한 데이터) 채움 -> 명목형데이터를 수치형데이터로 변환  

외래키: FOREIGN KEY
데이터의 무결성(원하지 않는 데이터가 저장되지 않음)을 지켜줌

 

외래키 설정

- CASCADE: 데이터 동기화
- SET NULL: 데이터 NULL
- NO ACTION: 아무런 행동하지 않음
- SET DEFAULT: 데이터 DEFAULT 값으로 변경 
- RESTRICT: 에러 발생 

 

📌함수
단일행 : CEIL, ROUND, TRUNCATE, CONCAT, DATE_FORMAT, DISTINCT ...
다중행 : SUM, COUNT, MIN, MAX, AVG ...

조건문
조건 1개 : IF(condition, true, false)
조건 2개 이상 : CASE WHEN THEN ELSE END
결측 데이터 처리 : IFNULL(column, data)

그룹핑
GROUP BY : 특정컬럼(중복결합), 다른컬럼(결합함수결합)
WITH ROLLUP : 그룹별 통계치를 출력