[PSQL] Data Types
CHAR, VARCHAR, TEXT
keywords: CHAR(n)
, VARCHAR(n)
, VARCHAR
, TEXT
在 PostgreSQL 中支援 CHAR
, VARCHAR
, TEXT
:
- 其中
CHAR(n)
是固定長度,VARCHAR
和TEXT
則是不固定長度 - 如果希望限制 VARCHAR 的長度,可以使用
VARCHAR(n)
- 當
VARCHAR
沒有限制長度時,和TEXT
是相同的
Integer
在 PostgreSQL 中和 MySQL 不同:
- 並沒有
unsigned
- 並沒有
tinyint
- 型別後面不會加上長度,不會寫
INTEGER(10)
可以使用的包含:SMALLINT
, INT
, BIGINT
。
💡
INT
是INTEGER
的縮寫,兩者都可以使用。
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
);