자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!
 

[PostgreSQL] 1장 - 데이터베이스와 테이블

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