SQL - PostgreSQL, Extensions
·
🧩 SQL
✅ 사용 가능한 PostgreSQL의 Extensions 목록 보는 법SELECT *FROM pg_available_extensions; ✅ Extension 활성화 방법CREATE EXTENSION hstore; ✅ hstoreKey, Value 데이터를 저장할 수 있게 해준다.(현재는 JSONB를 많이 사용한다.) CREATE TABLE users ( user_id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, prefs hstore);INSERT INTO users (prefs)VALUES ('theme => dark, lang => kr, notifications => off'), ('theme => light, lang => es, notificat..
SQL - PostgreSQL, JSON Column
·
🧩 SQL
✅ JSON Column이란?테이블 안에 JSON 형식 데이터를 그대로 저장하는 ColumnMySQL과 PostgreSQL 모두 JSON 데이터 타입으로 저장하는 걸 허용한다. SQL이면서 동시에 NoSQL처럼 동작한다. 사용 시기: 유연한 구조가 필요할 때(어떠한 column에 어떤 데이터가 들어가야 할 지 모를 때)유연성↑, 구조 안정성↓ ✅ JSON, JSONB거의 동일한 값을 가진다.차이점은 효율성이다.JSON vs JSONBJSON: 입력된 text를 그대로 복사해서 저장함JSONB: 분해된 Binary 형식으로 저장함(데이터 입력 속도가 약간 느려진다. JSON에서 Binary로 변환해야 하기 때문, 처리 속도는 엄청 빨라짐, 대부분 JSONB 선호) CREATE TABLE users ( u..
SQL - PostgreSQL, DCL(Data Control Language)
·
🧩 SQL
✅ DCL(Data Control Language)DDL: Data Definition LanguageDML: Data Manipulation LanguageTCL: Transaction Control LanguageDCL: 사용자가 데이터베이스를 조회하고 수정할 수 있는 권한을 설정할 수 있게 해주는 언어 role 생성CREATE ROLE marketerWITH login PASSWORD 'marketing4ever';비밀번호 OCREATE ROLE editor;비밀번호 X role에 권한 부여GRANT SELECT ON movies TO marketer;읽기 권한만 있음 GRANTSELECT,UPDATE,INSERT ON movies TO marketer;GRANTSELECT, INSERT ON st..
SQL - PostgreSQL, Transaction, Save Point, Isolation Level, Phenomena
·
🧩 SQL
✅ Transaction이란?Transaction = 여러 작업을 “하나의 묶음”으로 처리하는 단위 여러 SQL 쿼리에 걸쳐 데이터 무결성(integrity)을 강제한다.은행, 항공사, 온라인 티켓 예매 시스템 등 중요한 데이터를 다루는 산업들에서 사용하는 개념이다. Commit; 되기 전까지 한 Transaction에서 만든 변경사항은 다른 Transaction에서 보이지 않는다.(SELECT, UPDATE, DELETE 같은 문들은 사실 하나의 작은 Transaction들이다.)Transaction의 4가지 성질 Transaction 사용법BEGIN;UPDATE accountsSET balance = balance - 500WHERE account_holder = 'nico';SELECT *FROM ..
SQL - PostgreSQL, Extension(plpython3)
·
🧩 SQL
✅ pl(procedural language)python3파이썬으로 procedure나 function을 작성할 수 있다. 설치PostgreSQL을 설치할 때 같이 설치 되었던 Application Stack Builder를 실행 시킨다.Application Stack Builder로 PostgreSQL Extension을 설치할 수 있다. 실행시키고 EDB Language Pack을 다운로드 받는다. 설치가 완료되면 다음 명령어를 실행시켜 확장 프로그램을 활성화 시킨다.CREATE EXTENSION plpython3u; *주의*설치 되어 있는 python, postgreSQL의 환경이 맞아야 한다.둘 다 사이트에서 설치한 환경이거나, 둘 다 homebrew로 설치한 환경이어야 한다.이 때, homebr..
SQL - PostgreSQL, Function, Procedure
·
🧩 SQL
✅ Function & ProcedureFunction과 Procedure는 Database Object다.이 둘을 이용하면 특정 작업을 수행하는 SQL구문을 세트로 캡슐화 할 수 있다.(재사용 가능) ✅ FunctionFunction은 반드시 value를 return한다.(Procedure와의 가장 큰 차이점) DML(Data Manipulation Language) Command에서 사용하기 위한 것CREATE OR REPLACE FUNCTION hello_world ()RETURNS TEXT AS$$ SELECT 'hello_world';$$LANGUAGE SQL;LANGUAGE 키워드로 어떤 언어로 Function이 작성 되었는지 적어줘야 한다. CREATE OR REPLACE FUNCTION ..
SQL - PostgreSQL, UNNEST, DISTINCT, FULL OUTER JOIN
·
🧩 SQL
✅ UNNESTSELECT UNNEST(string_to_array(genres, ','))FROM moviesGROUP BY genres; ,로 구분되어 여러 장르들이 한 string으로 이어져 있던 genres column을 string_to_array(genres, ',') 함수를 사용하여,를 기준으로 구별한다음 array로 만들었다. 그리고 그 array를 UNNEST()를 이용하여 array를 풀어서 모든 genre 값들이 한 row에 하나의 genre만 가지도록 바꿨다. ✅ DISTINCTSELECT DISTINCT UNNEST(string_to_array(genres, ','))FROM moviesGROUP BY genres;그 후 DISTINCT 키워드를 추가해 중복되는 값들을 전부 지운..
SQL - PostgreSQL, Data Types
·
🧩 SQL
✅ Data TypesCREATE TYPE gender_type AS ENUM ('male', 'female');CREATE TABLE users ( -- 0 2KB TOAST (the oversized-attribute storage technique) bio TEXT, profile_photo BYTEA, -- SMALLINT -- Signed: -32,768 to 32,767 -- INTGER -- Signed: -2,147,483,648 to 2,147,483,647 -- BIGINT -- Signed: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 -- SMALLSERIAL (1 to 32,767) -- SERIAL (1 to 2,147,4..
SQL - PostgreSQL, pgAdmin
·
🧩 SQL
✅ pgAdmin이란?데이터베이스 관리를 위한 GUI 프로그램 ✅ ConnectionpgAdmin에서 Databases를 우클릭해 새 Database를 생성해준다. pgAdmin에서 PostgreSQL 18을 우클릭해서 properties를 연다. 그 다음 Beekeeper Studio든, TablePlus든 DBeaver든 열어서 PostgreSQL을 선택. Test를 눌렀을 때 이렇게 초록색으로 뜨면 연결 가능하다는 뜻.Connect를 눌러 연결해주면 끝
SQL - PostgreSQL 설치(공식 사이트, Homebrew)
·
🧩 SQL
✅ 공식 사이트 설치https://www.postgresql.org/download PostgreSQL: Downloads www.postgresql.org 공식 사이트에서 설치하면1. PostgreSQL Server2. psql(CLI)3. pgAdmin(MySQL의 MySQLWorkbench 같은 GUI 프로그램)4. Stack Builder(확장 프로그램 설치)이런 추가 프로그램들까지 같이 설치된다. Homebrew로 PostgreSQL Server를 설치하면 나머지는 직접 설치해줘야 한다. ✅ Homebrew 설치이미 공식 사이트에서 PostgreSQL을 설치했다면 삭제하고 Homebrew 버전을 설치하는 것이 안전하다. *주의*Homebrew로 설치하면 plpython3u extension을 ..