跳至主要内容

[PSQL] Data Types

CHAR, VARCHAR, TEXT

keywords: CHAR(n), VARCHAR(n), VARCHAR, TEXT

PostgreSQL Character Types: CHAR, VARCHAR, and TEXT

在 PostgreSQL 中支援 CHAR, VARCHAR, TEXT

  • 其中 CHAR(n) 是固定長度,VARCHARTEXT 則是不固定長度
  • 如果希望限制 VARCHAR 的長度,可以使用 VARCHAR(n)
  • VARCHAR 沒有限制長度時,和 TEXT 是相同的

Integer

A Look At Various PostgreSQL Integer Data Types

在 PostgreSQL 中和 MySQL 不同:

  • 並沒有 unsigned
  • 並沒有 tinyint
  • 型別後面不會加上長度,不會寫 INTEGER(10)

可以使用的包含:SMALLINT, INT, BIGINT

💡 INTINTEGER 的縮寫,兩者都可以使用。

Serial

serial @ postgreSQLTutorial

CREATE TABLE table_name(
id SERIAL
);

SERIAL 屬於 pseudo type,使用 SERIAL 後將會:

  • 自動建立有順序的清單,類似 auto-increment
  • 將入 NOT NULL 的限制
  • 將 SEQUENCE 添加 owner

等同於如下的指令:

-- SERIAL pseudo-type 等同於以下的指令
CREATE SEQUENCE table_name_id_seq;

CREATE TABLE table_name (
id integer NOT NULL DEFAULT nextval('table_name_id_seq')
);

ALTER SEQUENCE table_name_id_seq
OWNED BY table_name.id;

使用範例

CREATE TABLE fruits(
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL
);