PostgreSQL - TẠO Bảng

Câu lệnh PostgreSQL CREATE TABLE được sử dụng để tạo một bảng mới trong bất kỳ cơ sở dữ liệu đã cho.

Cú pháp

Cú pháp cơ bản của câu lệnh CREATE TABLE như sau:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

CREATE TABLE là một từ khóa, yêu cầu hệ thống cơ sở dữ liệu tạo một bảng mới. Tên hoặc mã định danh duy nhất cho bảng tuân theo câu lệnh CREATE TABLE. Ban đầu, bảng trống trong cơ sở dữ liệu hiện tại thuộc sở hữu của người dùng ban hành lệnh.

Sau đó, trong dấu ngoặc sẽ xuất hiện danh sách, xác định từng cột trong bảng và loại dữ liệu đó là. Cú pháp sẽ trở nên rõ ràng với một ví dụ dưới đây.

Ví dụ

Sau đây là một ví dụ, tạo một bảng COMPANY với ID là khóa chính và NOT NULL là các ràng buộc cho thấy rằng các trường này không thể là NULL khi tạo bản ghi trong bảng này -

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Hãy để chúng tôi tạo thêm một bảng, chúng tôi sẽ sử dụng bảng này trong các bài tập của mình trong các chương tiếp theo -

CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);

Bạn có thể xác minh xem bảng của mình đã được tạo thành công hay chưa bằng cách sử dụng \d lệnh này sẽ được sử dụng để liệt kê tất cả các bảng trong cơ sở dữ liệu đính kèm.

testdb-# \d

Câu lệnh PostgreSQL đã cho ở trên sẽ tạo ra kết quả sau:

List of relations
 Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
 public | company    | table | postgres
 public | department | table | postgres
(2 rows)

Sử dụng \d tablename để mô tả từng bảng như hình dưới đây -

testdb-# \d company

Câu lệnh PostgreSQL đã cho ở trên sẽ tạo ra kết quả sau:

Table "public.company"
  Column   |     Type      | Modifiers
-----------+---------------+-----------
 id        | integer       | not null
 name      | text          | not null
 age       | integer       | not null
 address   | character(50) |
 salary    | real          |
 join_date | date          |
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)