SQL - PostgreSQL, Data Types

2026. 4. 1. 10:54ยท๐Ÿงฉ SQL

PostgreSQL

 

 

โœ… Data Types


CREATE TYPE gender_type AS ENUM ('male', 'female');
CREATE TABLE users (
	-- 0 < char(n) varchar(n) < 10,485,760
	username CHAR(10) NOT NULL UNIQUE,
	email VARCHAR(50) NOT NULL UNIQUE,
	gender gender_type NOT NULL,
	interests TEXT[] NOT NULL,
	-- 1 GB
	-- > 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,483,647)
	-- BIGSERIAL (1 to 9,223,372,036,854,775,807)
	-- DECIMAL & NUMERIC(precision, scale) 10.53 4p 2s
	-- REAL (6 deciaml digits) & DOUBLE PRECISION (15 decimal digits)
	age SMALLINT NOT NULL CHECK (age >= 0),
	is_admin BOOLEAN NOT NULL DEFAULT FALSE,
	-- 4713 BC to 294276 AD
	joined_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
	updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
	birth_date DATE NOT NULL,
	bed_time TIME NOT NULL,
	graduation_year INTEGER NOT NULL CHECK (graduation_year BETWEEN 1901 AND 2115),
	internship_period INTERVAL
);

 

1. ENUM

MySQL์—์„œ๋Š” ENUM์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€์ž…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ PostgreSQL์—์„œ๋Š” ๋จผ์ € ํƒ€์ž…์„ ์„ ์–ธํ•˜๋ฉด์„œ ENUM์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

2. SET

SET์„ ๋ชจ๋ฐฉํ•˜์—ฌ TEXT[]๋กœ TEXT๋กœ ๊ตฌ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ๋ผ๊ณ  ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. TEXT

PostgreSQL์—์„œ๋Š” TINYTEXT, MEDIUMTEXT, LONGTEXT ๊ฐ™์€ ๊ฑฐ ์—†์ด TEXT๋งŒ ์žˆ๋‹ค.

(์ตœ๋Œ€ ๊ธธ์ด 1GB)

(MySQL์€ ์ตœ๋Œ€ 4GB)

 

4. BYTEA

Byte Array๋ผ๋Š” ๋œป, ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

์ด๊ฒƒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ตœ๋Œ€ ๊ธธ์ด 1GB

(๋งŒ์•ฝ์— postgreSQL์— ๋” ํฐ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด Large Object API๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์—ญ์‹œ ํŒŒ์ผ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ฑด ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.)

 

5. TINYINT

PostgreSQL์€ TINYINT๊ฐ€ ์—†๋‹ค.

SMALLINT, INTEGER, BIGINT๊ฐ€ ์žˆ๋‹ค.

 

6. UNSIGNED

PostgreSQL์€ UNSIGNED Number๊ฐ€ ์—†๋‹ค.

๊ทธ๋ž˜์„œ ์–‘์ˆ˜ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด CHECK๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

7. SERIAL

PostgreSQL์€ SMALLSERIAL, SERIAL, BIGSERIAL์ด ์žˆ๋‹ค.

1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. (AUTO_INCREMENT๊ฐ€ ๋œ๋‹ค)

 

8. TIMESTAMP WITH TIME ZONE(TIMESTAMPTZ)

TIMESTAMP์™€ ๊ฐ™์€ ๊ฑธ ์ €์žฅํ•˜์ง€๋งŒ, ์„œ๋ฒ„๊ฐ€ ์œ„์น˜ํ•œ TIMEZONE๋„ ํ•จ๊ป˜ ์ €์žฅ๋œ๋‹ค.

๋„ˆ๋ฌด ๊ธฐ๋‹ˆ๊นŒ ์งง๊ฒŒ TIMESTAMPTZ์œผ๋กœ ์ ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

9. ON UPDATE

PostgreSQL์€ MySQL๊ณผ ๋‹ค๋ฅด๊ฒŒ ON UPDATE ๊ตฌ๋ฌธ์ด ์—†๋‹ค.

์ˆ˜๋™์œผ๋กœ Trigger๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ง์ ‘ ์—…๋ฐ์ดํŠธ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

TYPE์— ๋Œ€ํ•ด

postgresql์—๋Š” text๋‚˜ varchar๊ฐ™์€ ๊ธฐ๋ณธ ํƒ€์ž…๊ณผ, ๊ฐ•์˜์—์„œ ์ •์˜ํ•œ gender_type์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž ์ •์˜ ํƒ€์ž…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋“ค์€ ์•„๋ž˜์ฒ˜๋Ÿผ ์กฐํšŒ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
selet * from pg_type;

ํ•œํŽธ, ํŠน์ • ํƒ€์ž…์— ์†ํ•œ ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์˜ˆ์ปจ๋Œ€, ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ enum ๊ฐ์ฒด๋Š”
pg_enum์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ฑํ•œ enum์„ ์ž์„ธํžˆ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๊ฐ™์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
SELECT * FROM pg_type as pt JOIN pg_enum as pe ON pt.oid =pe.enumtypid ;

 

https://www.postgresql.org/docs/16/datatype-geometric.html

 

8.8. Geometric Types

8.8. Geometric Types # 8.8.1. Points 8.8.2. Lines 8.8.3. Line Segments 8.8.4. Boxes 8.8.5. Paths 8.8.6. Polygons 8.8.7. Circles Geometric data …

www.postgresql.org

 

 

โœ… Type Casting


SELECT
	joined_at::DATE
FROM
	users;

TIMESTAMPTZ ํƒ€์ž…์ธ joined_at์—์„œ DATE ๋ถ€๋ถ„๋งŒ ์ถ”์ถœํ•ด์„œ ๊ฐ€์ ธ์˜ด

 

https://www.postgresql.org/docs/8.1/functions-datetime.html

 

Date/Time Functions and Operators

 

www.postgresql.org

 

 

โœ… GENERATED ALWAYS AS IDENTITY


CREATE TABLE genres (
	genre_id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY
);

BIGSERIAL์„ ์‚ฌ์šฉํ•˜๋ฉด AUTO_INCREMENT ์ž๋™ ์ ์šฉ์ด ๋˜๋ฉด์„œ PRIMARY KEY๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,
BIGINT์™€ AS IDENTITY๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AUTO_INCREMENT๋ฅผ ์ ์šฉ์‹œํ‚ค๊ณ  GENERATED ALWAYS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋„ฃ์„ ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด SQL ํ‘œ์ค€์ด๋‹ค.(genre_id๋Š” ์ˆ˜์ •๋„ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง)

'๐Ÿงฉ SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SQL - PostgreSQL, Function, Procedure  (0) 2026.04.01
SQL - PostgreSQL, UNNEST, DISTINCT, FULL OUTER JOIN  (0) 2026.04.01
SQL - PostgreSQL, pgAdmin  (0) 2026.04.01
SQL - PostgreSQL ์„ค์น˜(๊ณต์‹ ์‚ฌ์ดํŠธ, Homebrew)  (0) 2026.04.01
SQL - MySQL, Full Text Index  (0) 2026.03.31
'๐Ÿงฉ SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • SQL - PostgreSQL, Function, Procedure
  • SQL - PostgreSQL, UNNEST, DISTINCT, FULL OUTER JOIN
  • SQL - PostgreSQL, pgAdmin
  • SQL - PostgreSQL ์„ค์น˜(๊ณต์‹ ์‚ฌ์ดํŠธ, Homebrew)
j2yonghwa
j2yonghwa
Trying to be a fullstack developer ๐Ÿš€
  • j2yonghwa
    j2yonghwa
    j2yonghwa
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (156)
      • โฐ Daily WakaTime (1)
      • ๐Ÿ–๏ธ ๋…ธ๋งˆ๋“œ์ฝ”๋” (2)
      • ๐Ÿบ Dev Setup (3)
      • ๐Ÿ”ญ Tech Info (1)
      • ๐Ÿšซ Error (1)
      • ๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (23)
      • ♣๏ธ Next.js 14 (10)
      • ♠๏ธ Next.js 12 (20)
      • ๐Ÿ›ธ React Native (12)
      • ๐Ÿฆ‹ TypeScript (1)
      • ๐Ÿ Python (2)
      • ๐ŸŒŠ TailwindCSS (4)
      • ๐Ÿงฉ SQL (25)
      • ๐Ÿ’Ž Prisma (5)
      • ๐ŸŒฑ MongoDB (4)
      • ๐ŸŽฏ Redis (1)
      • ๐Ÿงฌ GraphQL (2)
      • ๐Ÿ”ฅ Firebase (7)
      • ๐Ÿ’ธ Third-Party Services (2)
      • ๐Ÿ•ธ๏ธ Web (1)
      • ๐Ÿ† ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (23)
      • ๐Ÿ“™ ๋ชจ๋”ฅ๋‹ค (5)
      • ๐Ÿ“— ์ฝ”ํ…Œ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ -JS- (0)
      • ๐Ÿ“˜ ํด๋ฆฐ์ฝ”๋“œ (0)
      • ๐Ÿฏ ๊ฟ€ํŒ ๐Ÿ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๊นƒํ—™
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    SQL
    next.js 12
    Prisma
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ
    mongoDB
    dev setup
    ๋ชจ๋”ฅ๋‹ค
    next.js 14
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    react router
    MySQL
    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    PostgreSQL
    0๋ ˆ๋ฒจ
    Firebase
    Next.js
    Python
    tailwindcss
    React Native
    API
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
j2yonghwa
SQL - PostgreSQL, Data Types
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”