Skip to content

Tạo bảng trong PostgreSQL

Tóm lược nội dung

Bài này trình bày cách tạo cơ sở dữ liệu gồm một bảng bằng công cụ pgAdmin 4 của PostgreSQL.

Khái quát cơ sở dữ liệu

Cơ sở dữ liệu cần tạo là school_db, dùng để quản lý điểm số của học sinh, gồm có một số bảng sau:

Tên bảng Dữ liệu được lưu trữ
classrooms Dữ liệu về lớp học
students Dữ liệu về học sinh
subjects Dữ liệu về môn học
scores Dữ liệu về điểm số của học sinh

Bài này chỉ trình bày cách tạo một bảng là bảng students.

Mở chương trình pgAdmin 4

1. Trong Start menu của Windows, chọn pgAdmin 4.

2. Trong cửa sổ công cụ pgAdmin 4, trong bảng Object Explorer, chọn mục Servers để chuẩn bị kết nối vào.

3. Click đôi vào server cần kết nối. Hình dưới đây là PostgreSQL 17, bạn có thể chọn server khác theo máy của mình.

4. Trong hộp thoại Connect to Server, nhập mật khẩu (mật khẩu này được tạo trong lúc cài đặt PostgreSQL).

5. Nhấn OK.

Mở chương trình pgAdmin 4

Mở công cụ Query Tool

1. Click chọn Database.

2. Click chọn cơ sở dữ liệu cần làm việc. Nếu chưa có cơ sở dữ liệu nào, ta click chọn postgres. (1)

  1. postgres là cơ sở dữ liệu quản trị mặc định, được tạo sẵn sau khi cài đặt PostgreSQL, dành cho các thao tác quản lý user, role và config.

3. Nhấn nút Query Tool. (1)

  1. Query Tool là công cụ để nhập và thực thi các câu lệnh SQL.

Mở công cụ Query dùng để nhập câu lệnh SQL

Tạo cơ sở dữ liệu

Để tạo cơ sở dữ liệu mới, ta dùng câu lệnh SQL CREATE DATABASE.

Cú pháp lệnh CREATE DATABASE

CREATE DATABASE tên_cơ_sở_dữ_liệu;

Ví dụ:

Để tạo cơ sở dữ liệu school_db, ta thực hiện như sau:

1. Trong tab Query, nhập câu lệnh CREATE DATABASE:

create database school_db;

2. Nhấn F5 để chạy. (Hoặc nhấn nút Execute script trên thanh công cụ.)

3. Xem kết quả thực hiện trong tab Messages ở phần dưới cửa sổ.

Tab Message

3. Click phải lên Databases,

4. Click chọn Refresh để thấy được cơ sở dữ liệu vừa tạo.

Refresh để xem các cơ sở dữ liệu đã tạo

5. Cũng trong mục Databases, click chọn school_db để chuẩn bị làm việc với cơ sở dữ liệu này.

Chọn cơ sở dữ liệu để làm việc

Lưu tập tin SQL script

Để lưu tập tin chứa mã lệnh SQL cho những lần sử dụng về sau, ta thực hiện:

1. Nhấn nút có biểu tượng hình cái đĩa mềm hoặc nhấn Ctrl + S.

2. Chọn thư mục để lưu và nhập tên tập tin tuỳ ý, chẳng hạn school_db.sql. (1) (Mặc định trong Windows thì không cần gõ phần mở rộng .sql)

  1. Tập tin .sql là tập tin chứa các mã lệnh SQL dùng để tương tác với cơ sở dữ liệu.

    Khi cơ sở dữ liệu gặp trục trặc, ta có thể chạy tập tin này để phần nào đó khôi phục lại cơ sở dữ liệu ban đầu.

Tạo bảng

Để tạo bảng, ta dùng câu lênh SQL CREATE TABLE.

Cú pháp lệnh `CREATE TABLE

CREATE TABLE table_name (
    thuộc_tính_1 kiểu_dữ_liệu_1 [ràng buộc],
    thuộc_tính_2 kiểu_dữ liệu 2 [ràng buộc],
    ...
    [các ràng buộc của bảng]
);

Ví dụ:

Mô tả của bảng students như sau:

Thuộc tính Ý nghĩa Kiểu dữ liệu
student_id mã định danh của mỗi học sinh chuỗi gồm 6 ký tự và là khóa chính
last_name họ và chữ đệm của học sinh chuỗi gồm 50 ký tự
first_name tên của học sinh chuỗi gồm 50 ký tự
gender giới tính 0 là nam, 1 là nữ
birth_date ngày sinh giá trị gồm ngày, tháng và năm
birth_place nơi sinh chuỗi gồm 50 ký tự

Để tạo bảng students ứng với mô tả trên, ta thực hiện như sau:

1. Trong tab Query, nhập tiếp câu lệnh CREATE TABLE như các dòng được tô nổi dưới đây.

-- Tạo cơ sở dữ liệu (1)
create database school_db;

-- Tạo bảng students
create table students (
    student_id char(6) primary key, -- (2)!
    last_name varchar(50), -- (3)!
    first_name varchar(50),
    gender smallint, -- (4)!
    birth_date date, -- (5)!
    birth_place varchar(50)
);

  1. Để nhập chú thích cho các dòng lệnh, ta gõ hai dấu gạch ngang --.
  2. Khai báo thuộc tính student_id là mã học sinh, có kiểu dữ liệu char, chứa tối đa 6 ký tự và đặt làm khoá chính.
  3. Khai báo các thuộc tính last_name, first_namebirth_place ứng với họ, tên và nơi sinh, đều có kiểu dữ liệu chuỗi là varchar, chứa tối đa 50 ký tự.
  4. Khai báo thuộc tính gender là giới tính, có kiểu dữ liệu số nguyên là smallint, ngầm định hiểu 0 là nam, 1 là nữ.
  5. Khai báo thuộc tính birth_date là ngày sinh, có kiểu dữ liệu là date.

2. Quét khối câu lệnh SQL vừa viết, rồi nhấn F5 để chạy. (Hoặc chỉ cần đặt con trỏ vào vị trí bất kỳ trong câu lệnh, rồi nhấn Alt + F5).

Thử xem kết quả tạo bảng bằng cách:

3. Trong Object Explorer, click phải vào school_db rồi chọn Refresh....

4. Click mở school_db.

5. Click mở Schemas.

6. Click mở public.

7. Click mở Tables, rồi xem đã có bảng students hay chưa.

Xem kết quả thực hiện tạo bảng

Thêm dữ liệu vào bảng

Để thêm dữ liệu vào một bảng, ta dùng câu lệnh SQL INSERT INTO.

Cú pháp lệnh INSERT INTO

INSERT INTO bảng (thuộc_tính_1, thuộc_tính_2, ..., thuộc_tính_n)
VALUES (giá_trị_1, giá_trị_2, ..., giá_trị_n);

Trong trường hợp thêm dữ liệu cho tất cả cột, ta có thể bỏ qua không gần nhập tên cột.

INSERT INTO bảng
VALUES (giá_trị_1, giá_trị_2, ..., giá_trị_n);

Ví dụ:

Để thêm mới 18 mẫu tin (1) vào bảng students, ta nhập mã lệnh SQL như sau:

  1. Mỗi mẫu tin là một hàng trong bảng, chứa dữ liệu của một thực thể hoặc một sự kiện, cụ thể ở đây, mỗi mẫu tin là dữ liệu của một học sinh.
-- Thêm dữ liệu vào bảng students
insert into students(student_id, last_name, first_name, gender, birth_date, birth_place) 
values
    ('231001', 'Lưu Huyền', 'Anh', 0, '2008-02-14', 'Amsterdam, Netherlands'),
    ('221001', 'Tào Mạnh', 'Đức', 0, '2007-01-01', 'Dublin, Ireland'),
    ('241001', 'Tôn Trọng', 'Mưu', 0, '2009-03-08', 'Hong Kong, China'),
    ('231002', 'Gia Cát', 'Lượng', 0, '2008-11-20', 'Milan, Italy'),
    ('231003', 'Triệu Tử', 'Long', 0, '2008-09-23', 'Taipei, Taiwan'),
    ('220002', 'Điển', 'Vi', 0, '2007-01-04', 'Sydney, Australia'),
    ('230004', 'Hoàng Hán', 'Thăng', 0, '2007-11-07', 'Edinburgh, United Kingdom'),
    ('231005', 'Hoàng Nguyệt', 'Anh', 1, '2008-12-31', 'Abu Dhabi, United Arab Emirates'),
    ('240010', 'Tôn Thượng', 'Hương', 1, '2009-08-19', 'Lisbon, Portugal'),
    ('240011', 'Đại', 'Kiều', 1, '2009-09-05', 'Stockholm, Sweden'),
    ('240012', 'Tiểu', 'Kiều', 1, '2009-09-05', 'Stockholm, Sweden'),
    ('230006', 'Khương Bá', 'Ước', 0, '2008-01-05', 'Prague, Czech Republic'),
    ('231007', 'Mã Mạnh', 'Khởi', 0, '2008-07-27', 'Heraklion, Greece'),
    ('220003', 'Hứa Trọng', 'Khang', 0, '2007-05-07', 'Ohio, United States'),
    ('220091', 'Chân', 'Lạc', 1, '2007-09-02', 'Makkah, Saudi Arabia'),
    ('221017', 'Điêu', 'Thuyền', 1, '2007-02-27', 'Tallinn, Estonia'),
    ('230008', 'Quan Vân', 'Trường', 0, '2008-01-06', 'Madrid, Spain'),
    ('230009', 'Trương Dực', 'Đức', 0, '2008-03-10', 'Istanbul, Turkey');

Như vậy, cơ sở dữ liệu school_db đã có một bảng, đó làstudents gồm 18 mẫu tin.

Để xem tất cả mẫu tin của bảng, ta thực hiện như sau:

1. Trong Object Explorer, click phải vào bảng students.

2. Chọn View/Edit Data.

3. Chọn All rows.

Xem tất cả mẫu tin của bảng

Sơ đồ tóm tắt nội dung

Sơ đồ tóm tắt cách tạo bảng trong PostgreSQL