📌 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 쿼리 실행 순서
- FROM – 데이터를 가져올 테이블 선택
- WHERE – 조건 필터링
- 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 : 그룹별 통계치를 출력
'수업 일지' 카테고리의 다른 글
[Python Analysis] EPL 데이터 분석을 통한 토트넘 연대기 2 (0) | 2025.02.12 |
---|---|
[Python Analysis] EPL 데이터 분석을 통한 토트넘 연대기 1 (0) | 2025.02.12 |
5주차 정리 (0) | 2025.01.18 |
4주차 정리 (2) | 2025.01.11 |
3주차 정리 (0) | 2025.01.04 |