PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách tạo và xóa cơ sở dữ liệu và bảng trong PostgreSQL


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 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ột DATE_OF_BIRTH trước DATE_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:

Nguồn cung cấp
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:

Giáo viên
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:

Nguồn cung cấ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. createdbdropdb 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thủ tục được lưu trữ có chạy trong giao dịch cơ sở dữ liệu trong Postgres không?

  2. Nhập .csv với cột dấu thời gian (dd.mm.yyyy hh.mm.ss) bằng psql \ copy

  3. Django ConnectionAbortedError:[WinError 10053] Một kết nối đã thiết lập đã bị phần mềm trong máy chủ của bạn hủy bỏ

  4. Tính toán phần trăm từ SUM () trong cùng một truy vấn SELECT sql

  5. Kiểm tra xem NULL có tồn tại trong mảng Postgres không