일단 난 SQL 왕초보
혼자는 못 하니, 내 친구 클로드와 함께 해야지
PostgreSQL이 뭔가요?
PostgreSQL은 데이터베이스 관리 시스템(DBMS)이에요. 쉽게 말하면, 엑셀처럼 데이터를 표 형태로 저장하고 관리하는 프로그램인데, 훨씬 더 강력하고 많은 양의 데이터를 다룰 수 있어요.
예를 들어:
- 학생 정보 (이름, 학번, 전공)
- 쇼핑몰의 상품 정보
- 은행 거래 내역
이런 것들을 체계적으로 저장하고, 필요할 때 빠르게 찾아볼 수 있게 해주는 거예요.
PostgreSQL은 무료이고 오픈소스라서 많은 회사와 학교에서 사용해요.
pgAdmin은 뭔가요?
pgAdmin은 PostgreSQL을 쉽게 사용할 수 있게 도와주는 도구예요.
PostgreSQL 자체는 명령어로만 작동하는데, pgAdmin은 마우스 클릭으로 테이블을 만들고, 데이터를 보고, 관리할 수 있는 시각적인 프로그램이에요.
비유하자면:
- PostgreSQL = 자동차 엔진
- pgAdmin = 운전석과 핸들 (엔진을 편하게 조작하는 도구)
SQL은 뭔가요?
SQL은 데이터베이스와 대화하는 언어예요.
예를 들어:
- "학생 테이블에서 컴퓨터공학과 학생들만 보여줘"
- "새 학생 정보를 추가해줘"
- "이 학생의 전공을 변경해줘"
이런 명령을 SQL 문법으로 작성하는 거예요.
Part 1: Database Setup
- Install PostgresQL and pgAdmin
- Create a database called bookstore_assignment
Part 1: 데이터베이스 설치 및 생성
Step 1: PostgreSQL과 pgAdmin 설치하기
1) 다운로드
PostgreSQL 공식 웹사이트에 가세요: https://www.postgresql.org/download/
자신의 운영체제(Windows, Mac, Linux)를 선택하세요
Windows라면 "Download the installer"를 클릭하세요
2) 설치 과정
다운로드한 파일을 실행하세요
설치 중 중요한 부분들:
- Port: 기본값 5432 그대로 두세요
- Password: 관리자(postgres) 비밀번호를 설정하세요 (잊어버리면 안 돼요! 메모해두세요)
- pgAdmin 4: 체크박스가 선택되어 있는지 확인하세요 (함께 설치됩니다)
Step 2: pgAdmin 실행하기
1) pgAdmin 4를 실행하세요
시작 메뉴에서 "pgAdmin 4" 검색 후 실행
처음 실행하면 마스터 비밀번호를 설정하라고 나올 수 있어요 (설정하세요)
2) PostgreSQL 서버에 연결
왼쪽에 "Servers"가 보일 거예요
"PostgreSQL 15" (또는 설치한 버전) 클릭
설치할 때 만든 비밀번호를 입력하세요
Step 3: bookstore_assignment 데이터베이스 만들기
방법 1: 마우스로 만들기 (쉬운 방법)
왼쪽 트리에서 "Databases"에 오른쪽 클릭
"Create" → "Database..." 선택
"Database" 필드에 bookstore_assignment 입력
"Save" 클릭
방법 2: SQL로 만들기
상단 메뉴에서 도구 아이콘 찾기 (⚡ 번개 모양 또는 Tools → Query Tool)
다음 SQL 명령어 입력:
- CREATE DATABASE bookstore_assignment;
실행 버튼 클릭 (▶ 재생 버튼 모양)
확인하기
왼쪽 트리의 "Databases"를 펼쳐보면 bookstore_assignment가 생성된 게 보일 거예요!
Part 2: Database Implementation
- Appropriate data types (INTEGER, VARCHAR, DECIMAL, DATE)
- Primary keys and foreign keys
- Realistic sample data ( minimum 5-10 records per table)
Task 1: Create Tables
Design and create these tables with appropriate data
types (INTEGER, VARCHAR, DECIMAL, DATE) and primary
keys
1.books (book_id, title, author, isbn, price, stock_quantity)
2.customers (customer_id, first_name, last_name, email, phone)
3.orders (order_id, customer_id, order_date, total_amount)
4.order_items (order_id, book_id, quantity, price)
Task 2: Insert Sample Data
Insert realistic data:
1.At least 5 books (include textbooks and fiction)
2.At least 3 customers (include student profiles)
3.At least 2 orders with multiple items each
Task 3: Operational Queries
Write SQL queries that a bookstore clerk would use daily:
1.Show all books currently in stock
2.Find a customer by last name
3.Calculate total sales for the current month
4.Update stock when a book is sold
5.List all orders for a specific customer
Task 1: 테이블 만들기
테이블이 뭔가요?
- 엑셀의 시트처럼 데이터를 저장하는 표예요. 각 테이블은 특정 정보를 담아요.
pgAdmin에서 SQL 실행 준비
- 왼쪽에서 bookstore_assignment 데이터베이스 클릭
- 상단 메뉴에서 Query Tool 클릭 (⚡ 번개 모양)
- 아래 SQL 코드들을 복사해서 붙여넣고 실행하세요
1) books 테이블 만들기
CREATE TABLE books (
book_id INTEGER PRIMARY KEY,
title VARCHAR(200) NOT NULL,
author VARCHAR(100) NOT NULL,
isbn VARCHAR(20) UNIQUE,
price DECIMAL(10, 2) NOT NULL,
stock_quantity INTEGER NOT NULL
);
설명:
- book_id: 책 고유 번호 (PRIMARY KEY = 중복 불가, 이 테이블의 주인공)
- VARCHAR(200): 최대 200자까지 문자 저장
- DECIMAL(10, 2): 소수점 2자리까지 숫자 (예: 15000.99)
- NOT NULL: 빈값 안 됨
- UNIQUE: 중복 안 됨 (ISBN은 책마다 고유하니까)
2) customers 테이블 만들기
CREATE TABLE customers (
customer_id INTEGER PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(20)
);
3) orders 테이블 만들기
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY,
customer_id INTEGER NOT NULL,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
설명:
- FOREIGN KEY: 다른 테이블과의 연결고리
- customer_id는 customers 테이블의 customer_id를 참조해요
- 즉, 주문은 반드시 실제 존재하는 고객만 할 수 있어요
4) order_items 테이블 만들기
CREATE TABLE order_items (
order_item_id INTEGER PRIMARY KEY,
order_id INTEGER NOT NULL,
book_id INTEGER NOT NULL,
quantity INTEGER NOT NULL,
price DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
팁: 4개 테이블을 한 번에 다 복사해서 실행해도 돼요!
Task 2: 샘플 데이터 넣기
1) 책 5권 추가하기
INSERT INTO books (book_id, title, author, isbn, price, stock_quantity) VALUES
(1, 'Database Systems', 'Ramez Elmasri', '978-0133970777', 45000.00, 15),
(2, 'Harry Potter and the Sorcerer Stone', 'J.K. Rowling', '978-0590353427', 18000.00, 25),
(3, 'Introduction to Algorithms', 'Thomas Cormen', '978-0262033848', 55000.00, 8),
(4, 'The Great Gatsby', 'F. Scott Fitzgerald', '978-0743273565', 12000.00, 30),
(5, 'Clean Code', 'Robert Martin', '978-0132350884', 38000.00, 12);
2) 고객 3명 추가하기
INSERT INTO customers (customer_id, first_name, last_name, email, phone) VALUES
(1, '민수', 'Kim', 'minsu.kim@email.com', '010-1234-5678'),
(2, '지은', 'Lee', 'jieun.lee@email.com', '010-2345-6789'),
(3, '현우', 'Park', 'hyunwoo.park@email.com', '010-3456-7890');
3) 주문 2개 추가하기
INSERT INTO orders (order_id, customer_id, order_date, total_amount) VALUES
(1, 1, '2025-10-15', 63000.00),
(2, 2, '2025-10-20', 106000.00);
4) 주문 상세 항목 추가하기
INSERT INTO order_items (order_item_id, order_id, book_id, quantity, price) VALUES
(1, 1, 1, 1, 45000.00), -- 민수가 Database Systems 1권
(2, 1, 2, 1, 18000.00), -- 민수가 Harry Potter 1권
(3, 2, 3, 1, 55000.00), -- 지은이 Algorithms 1권
(4, 2, 4, 2, 12000.00), -- 지은이 Great Gatsby 2권
(5, 2, 5, 1, 38000.00); -- 지은이 Clean Code 1권
*-- 이후는 주석(메모)이에요. 실행되지 않아요.
Task 3: 실무 쿼리 작성
1) 재고가 있는 모든 책 보기
- SELECT * FROM books WHERE stock_quantity > 0;
2) 성(last name)으로 고객 찾기
- SELECT * FROM customers WHERE last_name = 'Kim';
3) 이번 달 총 매출 계산
SELECT SUM(total_amount) AS monthly_sales
FROM orders
WHERE EXTRACT(MONTH FROM order_date) = EXTRACT(MONTH FROM CURRENT_DATE)
AND EXTRACT(YEAR FROM order_date) = EXTRACT(YEAR FROM CURRENT_DATE);
4) 책 판매 시 재고 업데이트
-- 예: book_id 1번 책을 2권 팔았을 때
UPDATE books
SET stock_quantity = stock_quantity - 2
WHERE book_id = 1;
5) 특정 고객의 모든 주문 보기
SELECT o.order_id, o.order_date, o.total_amount
FROM orders o
WHERE o.customer_id = 1;
실행 방법 정리
1) Query Tool에 SQL 코드 붙여넣기
2) 실행 버튼(▶) 클릭
3) 성공하면 하단에 "Query returned successfully" 메시지 나와요
4) 데이터 확인하려면: SELECT * FROM books; 같은 쿼리 실행
제출할 내용 정리
Part 1: 데이터베이스 연결 스크린샷
무엇을 캡처하나요?
pgAdmin에서 bookstore_assignment 데이터베이스가 성공적으로 만들어진 화면이요.
캡처 방법:
pgAdmin 왼쪽 트리에서 Databases 펼치기
bookstore_assignment가 보이는 화면 캡처
또는: bookstore_assignment를 클릭했을 때 연결된 화면 캡처
예시로 보여줄 내용:
왼쪽에 서버 트리 구조
bookstore_assignment 데이터베이스 이름이 명확히 보임
Part 2 & 3: SQL 코드
무엇을 적나요?
앞서 제가 알려드린 모든 SQL 코드들을 텍스트로 적으면 돼요.
구성:
Part 2 - Task 1: 테이블 생성 코드
CREATE TABLE books (...);
CREATE TABLE customers (...);
CREATE TABLE orders (...);
CREATE TABLE order_items (...);
Part 2 - Task 2: 데이터 삽입 코드
INSERT INTO books VALUES (...);
INSERT INTO customers VALUES (...);
INSERT INTO orders VALUES (...);
INSERT INTO order_items VALUES (...);
Part 2 - Task 3: 쿼리 코드
-- 1. 재고가 있는 책
SELECT * FROM books WHERE stock_quantity > 0;
-- 2. 성으로 고객 찾기
SELECT * FROM customers WHERE last_name = 'Kim';
-- ... (나머지 쿼리들)
Part 3: 쿼리 실행 결과 스크린샷
무엇을 캡처하나요?
Task 3의 5개 쿼리를 각각 실행한 결과 테이블 화면이요.
캡처 방법:
Query Tool에서 쿼리 1개 실행
하단에 나오는 결과 테이블 캡처
5개 쿼리 모두 반복
예시:
쿼리 1 실행 → 책 목록 테이블 보임 → 캡처
쿼리 2 실행 → 고객 정보 보임 → 캡처
쿼리 3 실행 → 총 매출 금액 보임 → 캡처
쿼리 4 실행 → "UPDATE 1" 성공 메시지 → 캡처
쿼리 5 실행 → 주문 목록 보임 → 캡처
팁: 각 스크린샷 위에 "Query 1:", "Query 2:" 같은 제목 달아주면 좋아요!
PDF 만드는 방법
방법 1: 워드/한글 사용
워드나 한글 문서 열기
다음 순서로 작성:
Part 1 제목 → 스크린샷 붙이기
Part 2 제목 → SQL 코드 복사해서 붙이기
Part 3 제목 → 각 쿼리 코드 + 결과 스크린샷
PDF로 저장 (파일 → 다른 이름으로 저장 → PDF)
방법 2: 구글 문서
구글 문서 만들기
내용 작성 및 이미지 삽입
파일 → 다운로드 → PDF
체크리스트
제출 전에 확인하세요:
✅ Part 1: 데이터베이스 연결 스크린샷 1개
✅ Part 2: CREATE TABLE 코드 4개
✅ Part 2: INSERT 코드 (책, 고객, 주문, 주문상세)
✅ Part 3: 5개 쿼리 코드
✅ Part 3: 5개 쿼리 실행 결과 스크린샷
✅ 모든 내용이 하나의 PDF 파일
정리하면: SQL 코드를 텍스트로 쓰고, 실행 결과는 스크린샷으로 캡처하면 돼요!
'Master 준비해보기' 카테고리의 다른 글
| Overleaf Intro (0) | 2025.10.23 |
|---|---|
| Data Science 수업 영어 단어 (0) | 2025.10.18 |
| 석사 준비 - 나에 대해 정리하기 (3) | 2025.01.05 |