본문 바로가기
Programming 개발은 구글로/기타 정보

[WEB+AI] 5일차 Database(PostgreSQL)

by 40대직장인 2024. 10. 22.

Database

 

강사: 생활코딩 이고잉님

 

🟦 Database

  - 데이터를 저장, 관리하는 전문적인 소프트웨어

 

  ◼️관계형 데이터베이스 대표 제품

    - ORACLE, Mysql

 


🟨 PostgreSQL

  - 오픈 소스: 오픈 소스 데이터베이스이며 커뮤니티의 기여로 지속적인 개선과 발전이 이루어짐.

  - 표준 준수: SQL 표준을 충실히 따르며 다양한 확장 기능과 프로시저를 지원하여 폭넓은 호환성을 제공함.

  - 확장성: 트리거, 저장 프로시저, 사용자 정의 데이터 타입, 사용자 정의 함수 등을 지원됨.

  - ACID 준수: ACID(Atomicity, Consistency, Isolation, Durability) 속성을 준수하여 데이터의 일관성 및 무결성을 보장함.     

  - 강력한 데이터 타입 지원: JSON, HSTORE, UUID, 배열 등의 다양한 데이터 타입을 기본으로 지원함.

  - 확장 모듈: PostGIS(지리정보 시스템), Citus(분산 데이터베이스), pg_partman(파티셔닝 관리) 등 다양한

                     확장 모듈을 통해 기능을 확장할 수 있음.

 


🟩 supabase

   - 공식 홈페이지: https://supabase.com

 

  - PostgreSQL 기반: 데이터베이스로 PostgreSQL을 사용하여 고급 SQL 기능과 확장성을 제공함.

 - 실시간 기능: 데이터 변경 사항을 실시간으로 반영하는 기능을 제공함.

 - 인증, 권한 관리: 다양한 인증 방식(이메일, OAuth, Magic Link 등)을 제공하고, 사용자 역할 기반의 권한 관리를 지원함.

 - 자동 API 생성: 테이블을 생성하면 자동으로 RESTful API를 생성하여 *CRUD 작업을 쉽게 할 수 있음.

 - 스토리지: 파일 업로드 및 관리를 위한 스토리지 기능을 제공함.

 - GraphQL 지원: REST 외에도 GraphQL을 통해 데이터를 조회하고 조작할 수 있음.

 - 확장 가능: 기존 PostgreSQL의 확장 기능을 그대로 활용할 수 있음.

 - 오픈 소스: 커뮤니티 중심으로 발전하며 자유롭게 소스 코드를 사용할 수 있음.

 

* CRUD: Create Read Update Delete

 

 


🟧 SQL

  - Structure Query Language: 관계형 데이터베이스에서 데이터를 다루기 위해 고안된 언어

  ▪️ Create: insert

  ▪️  Read: select

  ▪️  Update: update

  ▪️  Delete: delete

 

  1. 표 만들기

CREATE TABLE
  topics (
    id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
    title TEXT NOT NULL,
    body TEXT NULL,
    author_name TEXT NOT NULL,
    author_job TEXT,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
  );


2. 행 추가하기

INSERT INTO topics (title, body, author_name, author_job, created_at) 
VALUES ('html', 'html is …​', 'egoing', 'programmer', CURRENT_TIMESTAMP);

 

  3. 행 읽기

SELECT * FROM topics;
SELECT id, title, body FROM topics;
SELECT id, title, body FROM topics WHERE id = 1;

 

  4. 행 수정

UPDATE topics SET title = 'css3' WHERE id = 2;

 

  5. 행 삭제

DELETE FROM topics WHERE id = 5;

 

※ 추가 명령어

  - 기존 동일한 테이블(topics) 제거

DROP TABLE IF EXISTS public.topics;

 


🟪 온라인 강의 목록

  ▪️ PostgreSQL 입문 : https://www.youtube.com/watch?v=dKuLA5BGPTY&t=261s

  ▪️ Supabase 입문 : https://www.youtube.com/watch?v=FbLzqoENTsg

  ▪️ JOIN : https://opentutorials.org/course/3884

  ▪️ 관계형 데이터 모델링 : https://opentutorials.org/course/3883

 


출처: AI Hub 교육과정 - WEB+AI (위 내용이 문제가 된다면 댓글에 남겨주세요. 바로 삭제조치하도록 하겠습니다.)

 

 

댓글