| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 위드굿즈 굿즈샵
- CSS
- 원씽
- 카카오뷰 초보
- 카카오뷰 온라인 수익화
- 엑셀 기초 함수
- 실시간 통신
- 카카오뷰 부업
- 카카오뷰 탭이동
- git 협업하기
- 웹기초
- 엑셀 프린트하기
- 성공에 대한 거짓말
- 카카오뷰N잡
- Axios 라이브러리
- 책 원씽
- 자기관리
- 도서 원씽
- HTML
- ppt 도형 색
- Git 팀 작업
- ppt 다이어그램
- 성공비법
- 30일 글쓰기
- 이석증
- express.js 환경 셋팅
- 위드굿즈
- 카카오뷰 성장
- 카뷰 수익 인증
- 카카오뷰 수익
- Today
- Total
김데이의 개발공부
[ TIL ] Day 57 - SQL 데이터 관리 (테이블 생성/삭제, CRUD 작업 등) 본문
[ TIL ] Day 57 - SQL 데이터 관리 (테이블 생성/삭제, CRUD 작업 등)
theday365 2025. 12. 15. 18:55🗓️ 수업 일자 : 2025.12.15
✨ 오늘의 수업 평가 : [ HARD ] ⚡🧠💣 머리 과부하 ⚡🧠💣
사실 SQL 수업은 힘들지 않았는데,
이전 미션 모범답안 보면서 현타가 와서 멘탈 와사삭...
내가 만든 코드가 너무 못나보여서 너무 속상하다..
어디부터 잘못 됬는지도 모르겠고, 잘 하고 있는 건지도 모르겠고..
👩💻 [개인 / 팀 프로젝트] 오늘 작업 내용 💻
- SQL 데이터 검색 고급 문제 풀이
- 스프린트 미션 6 제출 🤗
📝 오늘 배운 내용
- 데이터베이스 이론
- SQL 테이블 & 데이터 작업하기
1. 데이터베이스 이론
1) 데이터베이스(Database)
- 의미: 데이터들의 큰 저장소
- 역할: 여러 테이블을 묶어서 관리
- 비유: 엑셀 파일 묶음 폴더 📂
2) 스키마(Schema)
- 의미: 데이터베이스 안의 구조 설계도
- 역할: 어떤 테이블이 있고, 컬럼·관계가 어떻게 생겼는지 정의
- 비유: 엑셀 파일의 시트 구성 설계 📃
3) 테이블(Table)
- 의미: 실제 데이터가 들어있는 표
- 역할: 행(Row)과 열(Column)로 데이터 저장
- 비유: 엑셀 시트 하나 📊

2. SQL 테이블 & 데이터 작업하기
테이블 생성 / 삭제하기
1) 테이블 생성
- 명령어 : CREATE TABLE 테이블명 ( 테이블 내용 작성 );
- 테이블 내용은 라인 한 개에 [필드명 데이터타입 속성(필요 시 작성)] 구조로 선언
- 각 항목 사이에 띄어쓰기 한칸 작성하고, 새로운 필드 작성 시 콤마로 줄 바꿈
2) 테이블 삭제
- 명령어 : DROP TABLE 테이블명;
-- 테이블 생성하기
CREATE TABLE products (
id SERIAL PRIMARY KEY,
- SERIAL(= AUTOINCREMENT, AI() ) : 1부터 시작하는 정수가 들어감. 자동으로 +1 됨
- PRIMARY KEY : 고유 식별자를 선언
name text UNIQUE NOT NULL,
- UNIQUE : 각 로우마다 고유한 값을 가져야 함을 명시, 제약 조건
- NOT NULL : 해당 칸은 옵셔널이 아님
price int,
company text,
weight real,
description text,
- int : 정수형 숫자
- text : 문자열
- real : 실수형 숫자
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
- TIMESTAMPTZ : 시차가 적용 된 타임라인 사용
- DEFAULT 지정값 : 자동으로 입력 할 값 지정
- NOW() : 지금 시간
deleted_at timestamp DEFAULT NULL
- soft delete 하기 위한 컬럼
);
-- 테이블 삭제하기
DROP TABLE products;
기본 CRUD 문법
[Create]
INSERT INTO 테이블명(컬럼명 순서대로) VALUES (값 순서대로);
INSERT INTO products (name, price, company) VALUES ('곰인형', 15000, '인형나라(주)');
[Read] 데이터 조회 방식 사용
SELECT * FROM products WHERE id = 1;
SELECT * FROM products ORDER BY id DESC;
[Update]
UPDATE 테이블명 SET 컬럼명 = 바꿀 값 WHERE 로우 고유 값;
UPDATE products SET description = '귀여운 곰인형', weight=1.25, updated_at = now() WHERE id = 1;
-- 직접 입력하여 작성하는 경우, updated_at 시간도 직접 입력하여 업데이트 해야 함
[Delete]
DELETE FROM 테이블명; -- 모든 로우 제거
DELETE FROM 테이블명 WHERE 로우 고유 값; -- 특정 로우 제거
DELETE FROM products;
DELETE FROM products WHERE id = 1;
HARD Delete VS SOFT Delete
- HARD Delete : 물리적으로 완전 삭제 하는 것, 데이터 복구가 안됨.
- SOFT Delete : Delete 컬럼에 값을 입력하여 삭제한 것처럼 처리하는 것. 추후 데이터 복구 가능.
현재 시간을 입력하고, 데이터 조회 시 Delete IS NULL 값만 조회하면 삭체 처리 한 값은 보이지 않음
삭제 표기 : UPDATE users SET deleted_at = now() WHERE id = 1;
삭제 표기 해제 : UPDATE users SET deleted_at = null WHERE id = 1;
테이블 컬럼 추가
-- 컬럼 추가
ALTER TABLE 테이블명 ADD COLUME 컬럼명 데이터타입 속성(필요한 경우);
ALTER TABLE products ADD COLUME madeIn text;
-- products 테이블에 madeIn 컬럼을 추가하는데, 데이터 타입은 text
ALTER TABLE products
ADD COLUMN types category_enum NOT NULL DEFAULT 'etc';
-- products 테이블에 types 컬럼을 추가하는데, 데이터 타입은 category_enum 값을 사용하고
-- 빈 값 허용 안되기 때문에 (=NOT NULL) 기본값으로 'etc'
-- [ NOT NULL 설정 + DEFAULT 설정 ] 두 설정은 꼭 함께 해주어야 함
-- 컬럼 삭제
ALTER TABLE products DROP COLUMN types;
-- 추가+ enum 타입 생성하기
CREATE TYPE enum명칭 AS ENUM (값으로 사용 할 명칭들);
CREATE TYPE category_enum AS ENUM ('doll', 'toy', 'etc');
📃 내일은 뭘 배울까 🤔
- SQL Constraint, Transaction, Rollback
'코드잇 Node.js(BE) 부트 캠프 > TIL (Today I Learn) 📑' 카테고리의 다른 글
| [ TIL ] Day 59 - NodeJS 아키텍쳐 / SQL 실행 순서 정리 (1) | 2025.12.17 |
|---|---|
| [ TIL ] Day 58 - SQL 데이터 관리 / 데이터 모델링 (0) | 2025.12.16 |
| [ TIL ] Day 55, 56 - SQL 실습 : 초급 / 중급 문제 풀이 (0) | 2025.12.12 |
| [ TIL ] Day 54 - SQL 데이터 분석 : 집계, 그룹핑 & 조인, 서브 쿼리, AS & VIEW (0) | 2025.12.10 |
| [ TIL ] Day 53 - SQL 데이터 분석 기초 문법 : 데이터 조회 / 데이터 정렬 (0) | 2025.12.09 |