Để tạo một bảng trong Cơ sở dữ liệu PostgreSQL, chúng ta sử dụng câu lệnh SQL “CREATE TABLE“.
CREATE TABLE table_name ( column_name TYPE column_constraint, table_constraint table_constraint ) INHERITS existing_table_name;
Với
- column_name TYPE column_constraint: Danh sách các cột trong bảng bao gồm tên, kiểu dữ liệu, length,…
- table_constraint table_constraint: Mối quan hệ với các bảng khác
- INHERITS existing_table_name: Kế thừa từ 1 bảng khác trong CSDL
VD: Tạo 2 bảng CSDL Users và Groups:

Lệnh SQL để tạo bảng Groups:
-- Table: public.groups
-- DROP TABLE public.groups;
CREATE TABLE public.groups
(
    group_id integer NOT NULL,
    group_name character varying COLLATE pg_catalog."default" NOT NULL,
    created_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone,
    deleted_at timestamp without time zone,
    CONSTRAINT groups_pkey PRIMARY KEY (group_id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.groups
    OWNER to postgres;
Kết quả:

Lệnh SQL để tạo bảng users:
-- Table: public.users
-- DROP TABLE public.users;
CREATE TABLE public.users
(
    user_id integer NOT NULL,
    group_id integer NOT NULL,
    username character varying COLLATE pg_catalog."default" NOT NULL,
    password character varying COLLATE pg_catalog."default" NOT NULL,
    email character varying COLLATE pg_catalog."default",
    created_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone,
    deleted_at timestamp without time zone,
    CONSTRAINT users_pkey PRIMARY KEY (user_id),
    CONSTRAINT fk_group_id FOREIGN KEY (group_id)
        REFERENCES public.groups (group_id) MATCH SIMPLE
        ON UPDATE CASCADE
        ON DELETE CASCADE
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.users
    OWNER to postgres;
Với fk_group_id là foreign key liên kết giữa 2 bảng users và groups thông qua cột group_id
Kết quả:

 
                 
                