2. SQL 기본 문법과 테이블 조인
1. SQL 명령어 분류
- 데이터 정의어 (DDL)
- CREATE, ALTER, TRUNCATE, DROP
- 테이블 생성/변경/삭제
- 데이터 조작어 (DML)
- INSERT, SELECT, UPDATE, DELETE
- 데이터 삽입/조회/수정/삭제
- 데이터 제어어 (DCL)
- GRANT, REVOKE
- 데이터 접근 권한 관리
2. 테이블 구조 및 제약조건
- 데이터 타입
- 숫자형: INT, FLOAT
- 날짜형: DATE, DATETIME
- 문자형: CHAR, VARCHAR
- 제약조건
- PK: 각 행을 고유하게 식별
- NOT NULL: 반드시 값이 있어야 함
3. SQL 명령어 특징
- 대소문자 구분 없음
- 띄어쓰기와 들여쓰기에 제약 없음
4. 테이블 생성 예시
1. TEST 테이블 생성 (수강번호, 이름, 나이, 가입일자)
- 수강번호: INT (PK)
- 이름: VARCHAR(20)
- 나이: INT
- 가입일자: DATETIME (NOT NULL)
2. 데이터 삽입
INSERT INTO TEST VALUES (1, '테스트', 20, '2025-01-01');
3. 컬럼 추가
ALTER TABLE TEST ADD 주소 VARCHAR(100);
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 SQL의 기본적인 명령어 체계를 DDL, DML, DCL로 나누어 배우면서, SQL이 단순히 데이터를 조회하는 언어가 아니라 데이터의 생성부터 관리까지 포괄하는 언어라는 점을 명확히 이해할 수 있었다.
특히 DDL과 DML의 차이는 데이터베이스 구조를 다루느냐, 데이터를 다루느냐의 차이인데, 이 구분이 실무에서 굉장히 중요하다.
DDL 명령어(CREATE, ALTER, DROP)는 시스템 구조 자체를 변경하기 때문에, 실행 시 데이터베이스 전체에 영향을 주며 되돌리기 어렵다. 반면 DML(SELECT, INSERT, UPDATE, DELETE)은 데이터 조작 중심으로 비교적 안전하게 다룰 수 있다.
이 두 가지를 명확히 구분해두면, 실수로 테이블을 삭제하거나 불필요한 변경을 막을 수 있을 것이다.
또한 테이블의 구조를 설계할 때 데이터 타입 선택과 제약조건 설정이 데이터 품질의 핵심이라는 점도 인상 깊었다.
예를 들어, 숫자형 데이터에 문자열을 넣을 수 없게 하고, 필수 데이터에는 NOT NULL을 설정함으로써 데이터 무결성을 유지할 수 있다.
이러한 설계 습관은 향후 데이터 분석 시 불필요한 오류나 결측값 문제를 줄여준다.
마지막으로, SQL 명령어가 대소문자 구분이 없고 띄어쓰기 제약이 없다는 점은 자유롭지만, 오히려 코드의 가독성과 협업 측면에서는 일관된 스타일을 유지하는 것이 중요하다고 느꼈다.
즉, 코드를 아무렇게나 써도 실행은 되지만, ‘읽기 좋은 SQL’이 결국 ‘오류 없는 SQL’이라는 점을 깨달았다.
🚀 적용점
- DDL, DML, DCL을 구분하여 각각의 대표 명령어를 정리하고 실제로 실행해본다.
- DDL: CREATE TABLE, ALTER TABLE, DROP TABLE
- DML: INSERT INTO, SELECT, UPDATE, DELETE
- DCL: GRANT, REVOKE
- CREATE TABLE 문을 이용해 TEST 테이블을 직접 생성하고, INSERT로 데이터를 추가해본다.
- ALTER TABLE을 사용해 컬럼을 추가하거나 삭제하면서, 테이블 구조 변경의 영향 범위를 체감한다.
- PK와 NOT NULL 제약조건을 동시에 설정해 데이터의 일관성과 무결성을 유지하는 연습을 한다.
- SQL 문을 작성할 때 키워드는 대문자로, 컬럼명과 값은 소문자 또는 따옴표로 통일하는 등 가독성 높은 코딩 스타일 가이드를 스스로 만든다.
👉 이번 강의는 SQL 문법의 뼈대를 잡는 단계로, 데이터의 구조를 설계하고 관리하는 능력을 키우는 중요한 기초가 된다.
이 내용을 바탕으로 이후 배울 DQL(조회문)과 JOIN, 집계 함수로 자연스럽게 확장해 나갈 수 있다.
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-4 (0) | 2025.10.04 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-3 (0) | 2025.10.03 |
| 제로베이스 데이터사이언스 스쿨 - Part.02 데이터 분석을 위한 SQL-1 (0) | 2025.10.01 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 03-3 (0) | 2025.09.30 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 03-2 (0) | 2025.09.28 |