Giới thiệu
PostgreSQL và các hệ thống quản lý cơ sở dữ liệu quan hệ khác sử dụng cơ sở dữ liệu và bảng để cấu trúc và tổ chức dữ liệu của họ. Chúng ta có thể xem lại định nghĩa của hai thuật ngữ đó một cách nhanh chóng:
- cơ sở dữ liệu: tách các nhóm cấu trúc và dữ liệu khác nhau với nhau
- bảng: xác định cấu trúc dữ liệu và lưu trữ các giá trị dữ liệu thực tế trong cơ sở dữ liệu
Trong PostgreSQL, cũng có một đối tượng trung gian giữa cơ sở dữ liệu và bảng được gọi là lược đồ :
- giản đồ: một vùng tên trong cơ sở dữ liệu có chứa bảng, chỉ mục, dạng xem và các mục khác.
Hướng dẫn này sẽ không đề cập trực tiếp đến khái niệm lược đồ của PostgreSQL, nhưng thật tốt khi biết nó ở đó.
Thay vào đó, chúng tôi sẽ tập trung vào cách tạo và phá hủy cơ sở dữ liệu và bảng PostgreSQL. Các ví dụ chủ yếu sẽ sử dụng SQL, nhưng về phần cuối, chúng tôi sẽ chỉ cho bạn cách thực hiện một số tác vụ này bằng cách sử dụng dòng lệnh. Các lựa chọn thay thế này sử dụng các công cụ có trong bản cài đặt PostgreSQL tiêu chuẩn có sẵn nếu bạn có quyền truy cập quản trị vào máy chủ PostgreSQL.
Một số câu lệnh được đề cập trong hướng dẫn này, đặc biệt là CREATE TABLE
của PostgreSQL tuyên bố, có nhiều tùy chọn bổ sung nằm ngoài phạm vi của bài viết này. Nếu bạn muốn biết thêm thông tin, hãy tìm hiểu thêm bằng cách xem tài liệu PostgreSQL chính thức.
Điều kiện tiên quyết
Để làm theo hướng dẫn này, bạn sẽ cần đăng nhập vào phiên bản PostgreSQL với người dùng có đặc quyền quản trị bằng cách sử dụng psql
máy khách dòng lệnh. Phiên bản PostgreSQL của bạn có thể được cài đặt cục bộ, từ xa hoặc được cung cấp bởi nhà cung cấp.
Cụ thể, người dùng PostgreSQL của bạn sẽ cần CREATE DB
đặc quyền hoặc trở thành Superuser
, bạn có thể kiểm tra bằng \du
lệnh meta trong psql
:
\du
List of roles Role name | Attributes | Member of-----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres
superuser, được tạo tự động khi cài đặt, có các đặc quyền cần thiết, nhưng bạn có thể sử dụng bất kỳ người dùng nào với Create DB
đặc quyền.
Tạo cơ sở dữ liệu mới
Sau khi bạn được kết nối với phiên bản PostgreSQL của mình bằng psql
hoặc bất kỳ ứng dụng khách SQL nào khác, bạn có thể tạo cơ sở dữ liệu bằng SQL.
Cú pháp cơ bản để tạo cơ sở dữ liệu là:
CREATE DATABASE db_name;
Thao tác này sẽ tạo cơ sở dữ liệu có tên db_name
trên máy chủ hiện tại với người dùng hiện tại được đặt làm chủ sở hữu cơ sở dữ liệu mới bằng cách sử dụng cài đặt cơ sở dữ liệu mặc định. Bạn có thể xem các thuộc tính của template1
mặc định mẫu sử dụng psql
sau lệnh meta:
\l template1
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges-----------+----------+----------+-------------+-------------+----------------------- template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres(1 row)
Bạn có thể thêm các tham số bổ sung để thay đổi cách tạo cơ sở dữ liệu của bạn. Đây là một số tùy chọn phổ biến:
- THƯỞNG THỨC: đặt mã hóa ký tự cho cơ sở dữ liệu.
- LC_COLLATE: đặt đối chiếu , hoặc sắp xếp, thứ tự cho cơ sở dữ liệu. Đây là tùy chọn bản địa hóa xác định cách tổ chức các mặt hàng khi chúng được đặt hàng.
- LC_CTYPE: đặt phân loại ký tự cho cơ sở dữ liệu mới. Đây là một tùy chọn bản địa hóa ảnh hưởng đến những ký tự nào được coi là chữ hoa, chữ thường và chữ số.
Những điều này có thể giúp đảm bảo rằng cơ sở dữ liệu có thể lưu trữ dữ liệu ở các định dạng bạn định hỗ trợ và với các tùy chọn bản địa hóa dự án của bạn.
Ví dụ:để đảm bảo rằng cơ sở dữ liệu của bạn được tạo với hỗ trợ Unicode và ghi đè ngôn ngữ riêng của máy chủ để sử dụng bản địa hóa tiếng Anh Mỹ (tất cả đều khớp với các giá trị trong template1
được hiển thị ở trên, vì vậy sẽ không có thay đổi thực sự xảy ra), bạn có thể nhập:
CREATE DATABASE db_name ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
Để làm theo các ví dụ trong hướng dẫn này, hãy tạo cơ sở dữ liệu có tên school
sử dụng cài đặt ngôn ngữ mặc định của phiên bản của bạn và mã hóa ký tự UTF8:
CREATE DATABASE school ENCODING 'UTF8';
Thao tác này sẽ tạo cơ sở dữ liệu mới của bạn bằng cách sử dụng các thông số kỹ thuật bạn đã cung cấp.
Liệt kê các cơ sở dữ liệu hiện có
Để xác định những cơ sở dữ liệu nào hiện có sẵn trên máy chủ hoặc cụm của bạn, bạn có thể sử dụng câu lệnh SQL sau:
SELECT datname FROM pg_database;
Điều này sẽ liệt kê từng cơ sở dữ liệu hiện được xác định trong môi trường:
datname----------- _dodb template1 template0 defaultdb school(5 rows)
Như đã đề cập trước đây, nếu bạn được kết nối bằng psql
khách hàng, bạn cũng có thể lấy thông tin này \l
lệnh meta:
\l
Điều này sẽ hiển thị các tên cơ sở dữ liệu có sẵn cùng với chủ sở hữu, mã hóa, cài đặt ngôn ngữ và đặc quyền của chúng:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges-----------+----------+----------+-------------+-------------+----------------------- _dodb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | defaultdb | doadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | school | doadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres(5 rows)
school
cơ sở dữ liệu mà chúng tôi đã tạo được hiển thị giữa các cơ sở dữ liệu khác trên hệ thống. Đây là một cách hay để có được cái nhìn tổng quan về cơ sở dữ liệu trong máy chủ hoặc cụm của bạn.
Tạo bảng trong cơ sở dữ liệu
Sau khi tạo một hoặc nhiều cơ sở dữ liệu, bạn có thể bắt đầu xác định các bảng để lưu trữ dữ liệu của mình. Các bảng bao gồm một tên và một lược đồ xác định để xác định các trường và kiểu dữ liệu mà mỗi bản ghi phải chứa.
PostgreSQL CREATE TABLE
cú pháp
Bạn có thể tạo bảng bằng CREATE TABLE
tuyên bố. Cú pháp cơ bản đơn giản cho lệnh trông giống như sau:
CREATE TABLE table_name ( column_name TYPE [column_constraint], [table_constraint,]);
Các thành phần của cú pháp trên bao gồm như sau:
-
CREATE TABLE table_name
:Câu lệnh tạo cơ bản báo hiệu rằng bạn muốn xác định một bảng.table_name
Trình giữ chỗ phải được thay thế bằng tên của bảng bạn muốn sử dụng. -
column_name TYPE
:Xác định một cột cơ bản trong bảng.column_name
trình giữ chỗ phải được thay thế bằng tên bạn muốn sử dụng cho cột của mình.TYPE
chỉ định kiểu dữ liệu PostgreSQL cho cột. Dữ liệu được lưu trữ trong bảng phải tuân theo cấu trúc cột và loại dữ liệu cột được chấp nhận. -
column_constraint
:Các ràng buộc cột là các hạn chế tùy chọn để thêm các hạn chế khác đối với dữ liệu có thể được lưu trữ trong cột. Ví dụ:bạn có thể yêu cầu các mục nhập không phải là số nguyên rỗng, duy nhất hoặc số nguyên dương. -
table_constraints
:Ràng buộc bảng tương tự như ràng buộc cột nhưng liên quan đến sự tương tác của nhiều cột. Ví dụ:bạn có thể có một ràng buộc bảng để kiểm tra xem mộtDATE_OF_BIRTH
trướcDATE_OF_DEATH
trong một bảng.
Tạo bảng có điều kiện với IF NOT EXISTS
mệnh đề
Theo mặc định, nếu bạn cố gắng tạo một bảng trong PostgreSQL đã tồn tại trong cơ sở dữ liệu, thì sẽ xảy ra lỗi. Để khắc phục sự cố này trong trường hợp bạn muốn tạo bảng nếu nó không tồn tại, nhưng chỉ cần tiếp tục nếu nó đã tồn tại, bạn có thể sử dụng IF NOT EXISTS
mệnh đề. IF NOT EXISTS
bộ định tính tùy chọn yêu cầu PostgreSQL bỏ qua câu lệnh nếu cơ sở dữ liệu đã tồn tại.
Để sử dụng IF NOT EXISTS
, chèn nó vào lệnh sau CREATE TABLE
cú pháp và trước tên bảng:
CREATE TABLE IF NOT EXISTS table_name ( column_name TYPE [column_constraint], [table_constraint,]);
Biến thể này sẽ cố gắng tạo bảng. Nếu một bảng có tên đó đã tồn tại trong cơ sở dữ liệu được chỉ định, PostgreSQL sẽ đưa ra cảnh báo cho biết rằng tên bảng đã được sử dụng thay vì bị lỗi.
Cách tạo bảng trong PostgreSQL
Cú pháp trên là đủ để tạo các bảng cơ bản. Ví dụ:chúng tôi sẽ tạo hai bảng trong school
của chúng tôi cơ sở dữ liệu. Một bảng sẽ được gọi là supplies
và người còn lại sẽ được gọi là teachers
:
Trong supplies
bảng, chúng tôi muốn có các trường sau:
- ID: Một ID duy nhất cho từng loại cung cấp trường học.
- Tên: Tên của một mục cụ thể trong trường học.
- Mô tả: Mô tả ngắn gọn về mặt hàng.
- Nhà sản xuất: Tên của nhà sản xuất mặt hàng.
- Màu sắc: Màu sắc của mặt hàng.
- Khoảng không quảng cáo: Số lượng các mặt hàng chúng tôi có cho một loại cung cấp trường học nhất định. Con số này không bao giờ được nhỏ hơn 0.
Chúng tôi có thể tạo supplies
bảng với các chất lượng ở trên bằng cách sử dụng SQL sau.
Đầu tiên, thay đổi thành school
cơ sở dữ liệu bạn đã tạo bằng psql
bằng cách gõ:
\c school
Điều này sẽ thay đổi cơ sở dữ liệu mà các lệnh trong tương lai của chúng tôi sẽ nhắm mục tiêu. Lời nhắc của bạn sẽ thay đổi để phản ánh cơ sở dữ liệu.
Tiếp theo, tạo supplies
bảng với câu lệnh sau:
CREATE TABLE supplies ( id INT PRIMARY KEY, name VARCHAR, description VARCHAR, manufacturer VARCHAR, color VARCHAR, inventory int CHECK (inventory > 0));
Thao tác này sẽ tạo supplies
bảng trong school
cơ sở dữ liệu. PRIMARY KEY
ràng buộc cột là một ràng buộc đặc biệt được sử dụng để chỉ ra các cột có thể xác định duy nhất các bản ghi trong bảng. Như vậy, ràng buộc chỉ định rằng cột không được rỗng và phải là duy nhất. PostgreSQL tạo chỉ mục cho các cột khóa chính để tăng tốc độ truy vấn.
Xác minh rằng bảng mới hiện diện bằng cách nhập:
\dt
List of relations Schema | Name | Type | Owner --------+----------+-------+--------- public | supplies | table | doadmin(1 row)
Xác minh rằng lược đồ phản ánh thiết kế dự kiến bằng cách nhập:
\d supplies
Table "public.supplies" Column | Type | Collation | Nullable | Default--------------+-------------------+-----------+----------+--------- id | integer | | not null | name | character varying | | | description | character varying | | | manufacturer | character varying | | | color | character varying | | | inventory | integer | | |Indexes: "supplies_pkey" PRIMARY KEY, btree (id)Check constraints: "supplies_inventory_check" CHECK (inventory > 0)
Chúng ta có thể thấy từng cột và kiểu dữ liệu mà chúng ta đã chỉ định. Ràng buộc cột mà chúng tôi đã xác định cho inventory
được liệt kê ở cuối.
Tiếp theo, chúng tôi sẽ tạo một teachers
bàn. Trong bảng này, cần có các cột sau:
- ID nhân viên :Một số nhận dạng nhân viên duy nhất.
- Tên :Họ của giáo viên.
- Họ :Họ của giáo viên.
- Chủ đề :Môn học mà giáo viên được thuê để dạy.
- Cấp độ :Cấp độ của học sinh mà giáo viên được thuê để dạy.
Tạo teachers
bảng với lược đồ trên với SQL sau:
CREATE TABLE teachers ( id INT PRIMARY KEY, first_name VARCHAR, last_name VARCHAR, subject VARCHAR, grade_level int);
Cách tạo bảng có khóa chính và khóa ngoại
Bạn có thể tìm thông tin về cách tạo bảng với khóa chính và khóa ngoại trong một số hướng dẫn PostgreSQL khác của chúng tôi. Khóa chính và khóa ngoại đều là loại ràng buộc cơ sở dữ liệu trong PostgreSQL.
Khóa chính là một cột hoặc cột đặc biệt được đảm bảo là duy nhất trên các hàng trong cùng một bảng. Tất cả các khóa chính có thể được sử dụng để xác định duy nhất một hàng cụ thể. Khóa chính không chỉ đảm bảo rằng mỗi hàng có một giá trị duy nhất cho các cột khóa chính mà còn đảm bảo rằng không có hàng nào chứa NULL
giá trị cho cột đó. Thông thường, khóa chính trong PostgreSQL sử dụng định dạng sau để chỉ định khóa chính tăng dần được gán tự động:id SERIAL PRIMARY KEY
.
Khóa ngoại là một cách để đảm bảo rằng một cột hoặc các cột trong một bảng khớp với các giá trị có trong một bảng khác. Điều này giúp đảm bảo tính toàn vẹn tham chiếu giữa các bảng.
Cách xem bảng trong PostgreSQL
Trong PostgreSQL, bạn có thể liệt kê các bảng theo một số cách khác nhau tùy thuộc vào thông tin bạn đang tìm kiếm.
Nếu bạn muốn xem những bảng nào có sẵn trong cơ sở dữ liệu của mình, bạn có thể sử dụng \dt
meta-command đi kèm với psql
khách hàng để liệt kê tất cả các bảng, như chúng tôi đã trình bày ở trên:
\dt
List of relations Schema | Name | Type | Owner--------+----------+-------+--------- public | supplies | table | doadmin public | teachers | table | doadmin(2 rows)
Bạn cũng có thể kiểm tra xem lược đồ cho bảng có khớp với thông số kỹ thuật của bạn không:
\d teachers
Table "public.teachers" Column | Type | Collation | Nullable | Default-------------+-------------------+-----------+----------+--------- id | integer | | not null | first_name | character varying | | | last_name | character varying | | | subject | character varying | | | grade_level | integer | | |Indexes: "teachers_pkey" PRIMARY KEY, btree (id)
teachers
bảng có vẻ phù hợp với định nghĩa của chúng tôi.
Các bảng thay thế
Nếu bạn cần thay đổi lược đồ của một bảng hiện có trong PostgreSQL, bạn có thể sử dụng ALTER TABLE
yêu cầu. ALTER TABLE
rất giống với lệnh CREATE TABLE
nhưng hoạt động trên một bảng hiện có.
Cú pháp bảng thay thế
Cú pháp cơ bản để sửa đổi bảng trong PostgreSQL trông như sau:
ALTER TABLE <table_name> <change_command> <change_parameters>
<change_command>
cho biết loại thay đổi chính xác mà bạn muốn thực hiện, cho dù nó liên quan đến việc thiết lập các tùy chọn khác nhau trên bảng, thêm hoặc xóa cột, hoặc thay đổi loại hoặc ràng buộc. <change_parameters>
một phần của lệnh chứa bất kỳ thông tin bổ sung nào mà PostgreSQL cần để hoàn thành thay đổi.
Thêm cột vào bảng
Bạn có thể thêm một cột vào bảng PostgreSQL bằng ADD COLUMN
thay đổi lệnh. Các tham số thay đổi sẽ bao gồm tên cột, loại và các tùy chọn, giống như bạn sẽ chỉ định chúng trong CREATE TABLE
lệnh.
Ví dụ:để thêm một cột có tên là missing_column
của text
gõ vào bảng có tên some_table
, bạn sẽ nhập:
ALTER TABLE some_table ADD COLUMN missing_column text;
Xóa cột khỏi bảng
Thay vào đó, nếu bạn muốn xóa một cột hiện có, bạn có thể sử dụng DROP COLUMN
lệnh thay thế. Bạn cần chỉ định tên của cột mà bạn muốn thả làm tham số thay đổi:
ALTER TABLE some_table DROP COLUMN useless_column;
Thay đổi kiểu dữ liệu của cột
Để thay đổi kiểu dữ liệu mà PostgreSQL sử dụng cho một cột cụ thể, bạn có thể sử dụng ALTER COLUMN
thay đổi lệnh bằng SET DATA TYPE
lệnh cột. Các tham số bao gồm tên cột, kiểu mới của nó và USING
tùy chọn để chỉ định cách chuyển đổi kiểu cũ sang kiểu mới.
Ví dụ:để đặt giá trị của id
trong cột resident
bảng thành một int
bằng cách sử dụng diễn viên rõ ràng, chúng ta có thể nhập như sau:
ALTER TABLE resident ALTER COLUMN id SET DATA TYPE int USING id::int;
Thay đổi bảng khác
Nhiều loại thay đổi khác có thể đạt được với ALTER TABLE
yêu cầu. Để biết thêm thông tin về các tùy chọn có sẵn, hãy xem tài liệu PostgreSQL chính thức cho ALTER TABLE
.
Bỏ bảng
Nếu bạn muốn xóa một bảng, bạn có thể sử dụng DROP TABLE
Câu lệnh sql. Thao tác này sẽ xóa bảng cũng như mọi dữ liệu được lưu trữ trong bảng.
Cú pháp cơ bản giống như sau:
DROP TABLE table_name;
Thao tác này sẽ xóa bảng nếu nó tồn tại và gây ra lỗi nếu tên bảng không tồn tại.
Nếu bạn muốn xóa bảng nếu nó tồn tại và không làm gì nếu nó không tồn tại, bạn có thể bao gồm IF EXISTS
định tính trong câu lệnh:
DROP TABLE IF EXISTS table_name;
Các bảng có phụ thuộc vào các bảng hoặc đối tượng khác không thể bị xóa theo mặc định trong khi các bảng phụ thuộc đó tồn tại. Để tránh lỗi, bạn có thể tùy chọn bao gồm CASCADE
tham số này tự động loại bỏ bất kỳ phần phụ thuộc nào cùng với bảng:
DROP TABLE table_name CASCADE;
Nếu bất kỳ bảng nào có khóa ngoại ràng buộc, tham chiếu đến bảng mà bạn đang xóa, ràng buộc đó sẽ tự động bị xóa.
Xóa supplies
bảng chúng tôi đã tạo trước đó bằng cách nhập:
DROP TABLE supplies;
Chúng tôi sẽ giữ các teachers
cơ sở dữ liệu để chứng minh rằng câu lệnh xóa cơ sở dữ liệu cũng loại bỏ tất cả các đối tượng con như bảng.
Thả cơ sở dữ liệu
DROP DATABASE
câu lệnh yêu cầu PostgreSQL xóa cơ sở dữ liệu được chỉ định. Cú pháp cơ bản giống như sau:
DROP DATABASE database_name;
Thay thế database_name
trình giữ chỗ với tên của cơ sở dữ liệu bạn muốn loại bỏ. Thao tác này sẽ xóa cơ sở dữ liệu nếu nó được tìm thấy. Nếu không tìm thấy cơ sở dữ liệu, sẽ xảy ra lỗi:
DROP DATABASE some_database;
ERROR: database "some_database" does not exist
Nếu bạn muốn xóa cơ sở dữ liệu nếu nó tồn tại và không làm gì cả, hãy bao gồm IF EXISTS
tùy chọn tùy chọn:
DROP DATABASE IF EXISTS some_database;
NOTICE: database "some_database" does not exist, skippingDROP DATABASE
Thao tác này sẽ xóa cơ sở dữ liệu hoặc không làm gì nếu không thể tìm thấy nó.
Để xóa school
cơ sở dữ liệu mà chúng tôi đã sử dụng trong hướng dẫn này, liệt kê các cơ sở dữ liệu hiện có trên hệ thống của bạn:
\l
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges-----------+----------+----------+-------------+-------------+----------------------- _dodb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | defaultdb | doadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | school | doadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres(5 rows)
Mở một kết nối mới tới một trong những cơ sở dữ liệu mà bạn không muốn xóa:
\c defaultdb
Khi kết nối mới được mở, hãy xóa school
cơ sở dữ liệu bằng lệnh sau:
DROP DATABASE school;
Thao tác này sẽ xóa school
cơ sở dữ liệu cùng với teachers
bảng được xác định bên trong.
Nếu bạn đã và đang sử dụng SQL, bạn có thể kết thúc ở đây hoặc chuyển sang phần kết luận. Nếu bạn muốn tìm hiểu về cách tạo và xóa cơ sở dữ liệu khỏi dòng lệnh, hãy tiếp tục đến phần tiếp theo.
Sử dụng công cụ dòng lệnh quản trị để tạo và xóa cơ sở dữ liệu
Nếu bạn có quyền truy cập trình bao vào máy chủ hoặc cụm nơi PostgreSQL được cài đặt, bạn có thể có quyền truy cập vào một số công cụ dòng lệnh bổ sung có thể giúp tạo và xóa cơ sở dữ liệu. createdb
và dropdb
các lệnh đi kèm với PostgreSQL khi nó được cài đặt.
Tạo cơ sở dữ liệu mới từ dòng lệnh
Cú pháp cơ bản cho createdb
lệnh (sẽ được chạy bởi người dùng hệ thống có quyền truy cập quản trị vào PostgreSQL) là:
createdb db_name
Thao tác này sẽ tạo cơ sở dữ liệu có tên db_name
trong PostgreSQL bằng cách sử dụng cài đặt mặc định.
Lệnh này cũng chấp nhận các tùy chọn để thay đổi hành vi của nó, giống như biến thể SQL mà bạn đã thấy trước đó. Bạn có thể tìm hiểu thêm về các tùy chọn này với man createdb
. Một số tùy chọn quan trọng nhất là:
-
--encoding=
:đặt mã hóa ký tự cho cơ sở dữ liệu. -
--locale=
:đặt ngôn ngữ cho cơ sở dữ liệu.
Những điều này có thể giúp đảm bảo rằng cơ sở dữ liệu có thể lưu trữ dữ liệu ở các định dạng bạn định hỗ trợ và với các tùy chọn bản địa hóa dự án của bạn.
Ví dụ:để đảm bảo rằng cơ sở dữ liệu của bạn được tạo với hỗ trợ Unicode và để ghi đè ngôn ngữ riêng của máy chủ để sử dụng bản địa hóa tiếng Anh Mỹ, bạn có thể nhập:
createdb --encoding=UTF8 --locale=en_US db_name
Giả sử bạn có quyền chính xác, cơ sở dữ liệu sẽ được tạo theo thông số kỹ thuật của bạn.
Để làm theo các ví dụ trong hướng dẫn này, bạn có thể tạo cơ sở dữ liệu có tên school
sử dụng ngôn ngữ mặc định và mã hóa ký tự UTF8 bằng cách nhập:
createdb --encoding=UTF8 school
Sau đó, bạn có thể kết nối với cơ sở dữ liệu bằng psql
để thiết lập các bảng của bạn như bình thường.
Thả cơ sở dữ liệu khỏi dòng lệnh
dropdb
lệnh phản chiếu DROP DATABASE
Câu lệnh sql. Nó có cú pháp cơ bản sau:
dropdb database_name
Thay đổi database_name
trình giữ chỗ để tham chiếu cơ sở dữ liệu bạn muốn xóa.
Theo mặc định, lệnh này sẽ dẫn đến lỗi nếu không tìm thấy cơ sở dữ liệu được chỉ định. Để tránh điều này, bạn có thể bao gồm --if-exists
tùy chọn cờ:
dropdb --if-exists database_name
Thao tác này sẽ xóa cơ sở dữ liệu được chỉ định nếu nó tồn tại. Nếu không, nó sẽ không làm gì cả.
Để xóa school
cơ sở dữ liệu chúng tôi đã tạo trước đó, nhập:
dropdb school
Thao tác này sẽ xóa cơ sở dữ liệu và bất kỳ phần tử con nào, như bảng, bên trong.
Kết luận
Bài viết này trình bày những kiến thức cơ bản về cách tạo và xóa cơ sở dữ liệu và bảng trong PostgreSQL. Đây là một số lệnh cơ bản nhất cần thiết để thiết lập hệ thống cơ sở dữ liệu và xác định cấu trúc dữ liệu của bạn.
Như đã đề cập trước đó, các câu lệnh SQL được đề cập trong hướng dẫn PostgreSQL này, đặc biệt là CREATE TABLE
, có nhiều tham số bổ sung có thể được sử dụng để thay đổi hành vi của PostgreSQL. Bạn có thể tìm hiểu thêm về những điều này bằng cách xem tài liệu PostgreSQL chính thức.