728x90
▶️ 1. PostgreSQL 기초
PosgreSQL은 안정적이고 기능이 풍부gks 오픈소스 관계형 데이터베이스 시스템(RDBMS)입니다. 다양한 웹 서버환경에 동작하고 많이 사용합니다, 이번 시간에는 PostgreSQL을 사용해 데이터 베이스와 테이블 생성, CRUD 조건 검색, 정렬, 그룹화까지를 배워보도록 하겠습니다.
▶️ 2. PostgreSQL 접속 및 데이터 베이스 생성
PostgreSQL은 기본적으로 psql CLI를 사용해 접속이 가능하며 터미널에 아래와 같은 명령어를 입력해줍니다.
psql -U postgres
- -U posgtres -> 사용자 이름 지정 (보통 기본 설치 시 superuser는 postgres)
- 접속 후 SQL 명령어 입력 가능
🚀 데이터베이스 생성
-- 데이터베이스 생성
CREATE DATABASE movies;
-- 생성한 데이터베이스 접속
\c movies;
- \c movies -> postgreSQL은 mysql과 다르게 \c로 데이터베이스를 연결
- 이후 테이블 생성, 데이터 삽입 등 CRUD 가
🚀 테이블 생성
테이블은 데이터를 저장하는 기본 단위입니다. 영화 정보를 저장하는 movies 테이블을 만들어보겠습니다.
CREATE TABLE movies (
id SERIAL PRIMARY KEY, -- 자동으로 생성되는 시리얼
name VARCHAR(100) NOT NULL, -- 영화 이름
genre VARCHAR(50) NOT NULL, -- 영화 장르
release_date DATETIME, -- 개봉일
stars INT, -- 별점
)
- SERIAL -> 자동으로 증가하는 정수형
- PRIMARY KEY -> 고유 식별자
- VARCHAR(100) -> 최대 100자 문자열
- DATETIME -> 날짜 출력
- INT -> 정수형
🚀 데이터 삽입(INSERT)
테이블을 생성했으니 이제 데이터를 삽입할 차례입니다. INSERT명령어로 데이터를 생성합니다.
-- 데이터 삽입
INSERT INTO movies (name, genre, release_date, stars)
VALUES('극장판 귀멸의 칼날: 무한성편', '애니메이션', '2025-08-22', 9.05);
-- 여러 행 삽입
INSERT INTO movies (name, genre, release_date, stars)
VALUES
('좀비딸', '코미디', '2025-07-30', 8.51),
('F1 더 무비', '드라마', '2025-06-25', 9.07),
('슈퍼소닉', '다큐멘터리', '2025-08-29', 9.34);
- 칼럼 순서대로 값 삽입 가능
- 모든 컬럼 값을 지정할 필요는 없으며, NOT NULL이 지정된 컬럼은 반드시 값 입력해야함
🚀 데이터 조회(SELECT)
- 기본 조회:
-- 전체 데이터 조회
SELECT * FROM movies;
- 조건 검색:
-- 전체 데이터 조회
SELECT * FROM movies;
-- 특정 컬럼만 조회
SELECT name, stars FROM movies;
- 정렬:
-- 별점 기준 정렬 - 내림차순
SELECT * FROM movies
ORDER BY stars DESC;
-- 개봉일 순 정렬 - 오름 차순
SELECT * FROM movies
ORDER BY release_date
🚀 데이터 수정 (UPDATE)
특정 조건에 맞는 데이터를 수정합니다.
-- 별점 수정하기
UPDATE movies
SET stars = 9.06
WHERE name = 'F1 더 무비';
-- 장르 바꾸기
UPDATE movies
SET genre = '음악'
WHERE name = '슈퍼소닉'
🚀 데이터 삭제 (DELETE)
조건에 맞는 데이터를 삭제할 수 있습니다.
-- 특정 영화 지우기
DELETE FROM movies
WHERE name = '슈퍼소닉'
-- 개봉일이 2개월 지난 영화 내리기
DELETE FROM movies
WHERE release_date < '2025-07-01';
🚀 그룹화 및 집계 (GROUP BY, HAVING)
-- 장르별 평균 점수
SELECT genre, AVG(stars) AS avg_score
FROM movies
GROUP BY genre
--- 평균 점수가 9.0 이상인 영화만 조회
SELECT genre, AVG(stars) AS avg_score
FROM movies
GROUP BY genre
HAVING AVG(stars) >= 9.0
- GROUP BY -> 특정 컬럼 기준 그룹화
- HAVING -> 그룹화된 결과 조건 지정
▶️ 3. 추가 조건 및 예시
🚀 BETWEEN
-- BETWEEN - 평점이 7.5~9.05까지 영화 조회
SELECT * FROM movies
WHERE stars BETWEEN 7.5 AND 9.05;
🚀 LIKE
-- LIKE - 애니메이션 영화만 검색
SELECT * FROM movies
WHERE genre LIKE '애니메이션%';
🚀 COUNT, SUM, MAX, MIN
-- 전체 영화 수
SELECT COUNT(*) FROM movies;
-- 총 평점
SELECT SUM(stars) FROM movies;
-- 최고 평점
SELECT MAX(stars) FROM movies;
-- 최저 평점
SELECT MIN(stars) FROM movies;
GitHub - Koras02/postgresql-bloging
Contribute to Koras02/postgresql-bloging development by creating an account on GitHub.
github.com
728x90
LIST
'Database > PostGresQL' 카테고리의 다른 글
[PostgreSQL] 4장 - 인덱스와 제약조건 (0) | 2025.09.12 |
---|---|
[PostgreSQL] 3장 - 고급 SQL 활용하기 - 서브쿼리(Subquery) (0) | 2025.09.03 |
[PostgreSQL] 2장 - 고급 SQL 활용하기 - 조인(JOIN) (1) | 2025.08.30 |
[PostGreSQL] PostgreSQL 이란? (0) | 2025.02.22 |