Tạo cơ sở dữ liệu trong PostgreSQL bằng lệnh createdb

Tao Co So Du Lieu Trong Postgresql Bang Lenh Createdb



Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách tạo cơ sở dữ liệu trong PostgreSQL bằng lệnh createdb.

điều kiện tiên quyết:

Để thực hiện các bước được trình bày trong hướng dẫn này, bạn cần có các thành phần sau:

  • Một hệ thống Linux được cấu hình đúng cách. Để thử nghiệm, hãy xem xét thiết lập máy Ubuntu ảo bằng VirtualBox .
  • Đã cài đặt và định cấu hình PostgreSQL. Học nhiều hơn về cài đặt PostgreSQL trên Ubuntu .
  • Truy cập vào một người dùng không phải root với đặc quyền sudo .

Cơ sở dữ liệu PostgreSQL

PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng tuân thủ SQL mã nguồn mở và miễn phí. Nó có thể hoạt động với cả truy vấn quan hệ (SQL) và không quan hệ (JSON). Tìm hiểu thêm về Các tính năng của PostgreSQL .







Trong PostgreSQL, hệ thống phân cấp dữ liệu như sau:



  • cụm
  • cơ sở dữ liệu
  • lược đồ
  • bảng (hoặc các đối tượng khác; ví dụ: chức năng)

Bất kỳ phiên bản PostgreSQL nào cũng có thể chấp nhận nhiều kết nối máy khách. Máy khách phải chỉ định tên cơ sở dữ liệu trong yêu cầu kết nối. Chỉ cho phép một cơ sở dữ liệu trên mỗi kết nối. Tuy nhiên, một máy khách có thể mở nhiều kết nối đến máy chủ, kết nối đồng thời với một hoặc nhiều cơ sở dữ liệu.



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

1. Mở kết nối đến máy chủ

Để tạo cơ sở dữ liệu mới, trước tiên hãy kết nối với máy chủ PostgreSQL:





$ sudo -Tôi -TRONG postgres
$psql

Lưu ý rằng việc tạo cơ sở dữ liệu là một hoạt động bị hạn chế. Chỉ những người dùng có đủ đặc quyền mới được phép thực hiện hành động.



2. Liệt kê các cơ sở dữ liệu hiện tại
Chạy truy vấn sau trong psql để in danh sách cơ sở dữ liệu trên máy chủ:

$ \danh sách

Trong quá trình cài đặt, PostgreSQL tạo cơ sở dữ liệu đầu tiên của máy chủ là “postgres”. Hai cơ sở dữ liệu bổ sung cũng được tạo ra:

  • mẫu1 : Bất cứ khi nào tạo bất kỳ cơ sở dữ liệu mới nào trong cụm, “template1” sẽ được sao chép.
  • mẫu0 : Nó phục vụ như một bản sao nguyên sơ của nội dung gốc của “template1”.

Không tạo các đối tượng trong “template1” trừ khi bạn muốn chúng là một phần của mọi cơ sở dữ liệu mới được tạo. Nếu “template1” được sửa đổi, “template0” có thể được sao chép để tạo cơ sở dữ liệu mới mà không cần bất kỳ bổ sung cục bộ nào.

3. Tạo cơ sở dữ liệu mới
Để tạo cơ sở dữ liệu mới, hãy chạy truy vấn sau trong psql:

$ TẠO NÊN CƠ SỞ DỮ LIỆU < db_name > ;

Đây:

  • Vai trò hiện tại được tự động coi là chủ sở hữu của cơ sở dữ liệu mới.
  • Chủ sở hữu có đặc quyền thay đổi chủ sở hữu thành một vai trò khác.

Kiểm tra danh sách cơ sở dữ liệu nếu hành động thành công bằng lệnh sau:

$ \danh sách

Với tài khoản đặc quyền, chúng ta cũng có thể tạo cơ sở dữ liệu cho người khác bằng lệnh sau:

$ TẠO NÊN CƠ SỞ DỮ LIỆU < db_name > NGƯỜI SỞ HỮU < vai trò > ;

Lệnh Createdb

Trong phương pháp trước, chúng ta phải trải qua nhiều bước để tạo cơ sở dữ liệu:

  • Kết nối với máy chủ PostgreSQL bằng psql.
  • Chạy các truy vấn để tạo cơ sở dữ liệu mới.

Để hợp lý hóa quy trình, PostgreSQL đi kèm với lệnh createdb. Về cơ bản, nó hoạt động như một trình bao bọc cho những hành động này. Chúng ta có thể chạy trực tiếp lệnh createdb từ trình bao.

1. Tạo cơ sở dữ liệu bằng Createb
Để tạo cơ sở dữ liệu bằng máy chủ cơ sở dữ liệu mặc định, hãy sử dụng lệnh sau:

$ đã tạob < db_name >

Xác minh hành động bằng lệnh sau:

$ psql -c '\danh sách'

Với các tùy chọn khác nhau, chúng tôi cũng có thể tinh chỉnh các hoạt động đã tạo. Kiểm tra ví dụ sau:

$ đã tạob -h < chủ nhà > -P < Hải cảng > -T < bản mẫu > -Nó là --tên tài khoản = < tên tài khoản > --mật khẩu --bảo trì-db = < bảo trì_db_name > < db_name >

Đây:

  • -h : Tham số này chỉ định vị trí máy chủ PostgreSQL (địa chỉ IP hoặc tên miền).
  • -P : Cổng để kết nối với máy chủ.
  • -T : Mẫu sẽ sử dụng khi tạo cơ sở dữ liệu mới. Nó có thể là template0, template1 hoặc bất kỳ cơ sở dữ liệu nào khác.
  • -Nó là : Báo lại truy vấn tương đương.
  • -tên tài khoản : Tên người dùng để kết nối với máy chủ.
  • -mật khẩu : Buộc lệnh createdb nhắc nhập mật khẩu trước khi kết nối với máy chủ. Trong hầu hết các trường hợp, nó không bắt buộc vì createdb tự động nhắc nhập mật khẩu nếu máy chủ yêu cầu. Tuy nhiên, nó dành một nỗ lực kết nối để tìm ra nó.
  • –bảo trì-db : Cơ sở dữ liệu để kết nối khi tạo cơ sở dữ liệu mới. Nếu không được chỉ định, postgres được giả định theo mặc định. Nếu postgres không tồn tại, thì “template1” được giả định.

Thời gian để đưa nó vào hành động. Chạy lệnh createdb sau:

$ đã tạob -h máy chủ cục bộ -P 5432 -T mẫu0 -Nó là --tên tài khoản =postgres test_db

Như đầu ra gợi ý, nó tương đương với truy vấn sau:

$ TẠO CƠ SỞ DỮ LIỆU test_db TEMPLATE template0;

Quản lý cơ sở dữ liệu bổ sung

Trong phần này, chúng ta hãy xem các hoạt động quản lý cơ sở dữ liệu khác.

Liệt kê cơ sở dữ liệu

Có một số cách để liệt kê các cơ sở dữ liệu được lưu trữ trong máy chủ. Chúng tôi đã trình bày một phương pháp trong các phần trước:

$ \danh sách

Một cách khác là kiểm tra danh mục hệ thống “pg_database”:

$ CHỌN tên dữ liệu TỪ pg_database;

Xóa cơ sở dữ liệu

Để xóa cơ sở dữ liệu, hãy chạy truy vấn sau:

$ CƠ SỞ DỮ LIỆU THẢ < db_name > ;

Tương tự như createdb, PostgreSQL cũng đi kèm với lệnh dropdb mà chúng ta có thể chạy từ trình bao. Hãy xem ví dụ sau:

$ dropdb -h < chủ nhà > -P < Hải cảng > --tên tài khoản = < tên tài khoản > --mật khẩu -Nó là < db_name >

Đây:

  • -h : Máy chủ PostgreSQL để kết nối.
  • -P : Cổng của máy chủ PostgreSQL để kết nối.
  • -Nó là : Báo lại truy vấn tương đương.

Lưu ý rằng người dùng phải có đủ đặc quyền để xóa cơ sở dữ liệu.

Thay đổi quyền sở hữu cơ sở dữ liệu

Chủ sở hữu cơ sở dữ liệu có thể thực hiện bất kỳ hành động nào trên cơ sở dữ liệu, bao gồm xóa cơ sở dữ liệu. Theo mặc định, người dùng tạo cơ sở dữ liệu được chỉ định làm chủ sở hữu. Tuy nhiên, chúng tôi có thể chỉ định lại quyền sở hữu cho một người dùng khác.

Để thay đổi chủ sở hữu cơ sở dữ liệu, hãy chạy truy vấn sau trong psql:

$ THAY ĐỔI CƠ SỞ DỮ LIỆU < db_name > CHỦ SỞ HỮU ĐẾN < chủ sở hữu mới > ;

Tuy nhiên, điều này sẽ không thay đổi quyền sở hữu của các đối tượng trong cơ sở dữ liệu (bao gồm cả bảng). Trong những trường hợp như vậy, chúng tôi phải sử dụng một truy vấn khác. Kết nối với cơ sở dữ liệu đích và chạy truy vấn sau:

$ BỞI SỞ HỮU LẠI BỞI < old_owner > ĐẾN < chủ sở hữu mới > ;

Trong khi thuận tiện, truy vấn này đi kèm với một số cảnh báo:

  • Khi kết nối với postgres (cơ sở dữ liệu), nó có thể thay đổi quyền sở hữu của nhiều cơ sở dữ liệu cùng một lúc.
  • Không sử dụng truy vấn này khi chủ sở hữu ban đầu là postgres vì ​​nó có thể làm hỏng toàn bộ phiên bản CSDL.

Phần thưởng: Chạy truy vấn từ Shell

Cho đến nay, chúng tôi chạy các truy vấn từ bảng điều khiển PostgreSQL. Điều gì sẽ xảy ra nếu bạn muốn kết hợp một số chức năng cơ sở dữ liệu trong tập lệnh của mình? Các lệnh createdb và dropdb chỉ có thể thực hiện các thao tác cụ thể.

Để giải quyết vấn đề này, chúng ta có thể sử dụng psql làm ống dẫn. Bên cạnh trình bao tương tác tiêu chuẩn, psql cũng có thể chạy các truy vấn một cách nhanh chóng.

Cách 1:

Cấu trúc lệnh như sau:

$ psql -h < chủ nhà > -P < Hải cảng > -TRONG < tên tài khoản > -d < cơ sở dữ liệu > -c < truy vấn >

Đây:

  • -h : Địa chỉ của máy chủ PostgreSQL.
  • -P : Cổng để kết nối (giá trị mặc định là 5432).
  • -TRONG : Người dùng để kết nối với as.
  • -d : Cơ sở dữ liệu để kết nối.
  • -c : Truy vấn để thực thi.

Cách 2:

PostgreSQL đi kèm với một tính năng thú vị khác: URI kết nối. Đó là một cách thông minh để mã hóa gọn gàng tất cả các tham số kết nối. Cấu trúc của một URI kết nối như sau:

$ postgresql: //< tên tài khoản > : < mật khẩu >@< chủ nhà > : < Hải cảng >/< db_name >

Đây:

  • postgresql hoặc postgres : Giao thức duy nhất cho URI kết nối PostgreSQL.

Để kết nối với cơ sở dữ liệu bằng URI kết nối, hãy sử dụng lệnh psql sau:

$ psql -d < kết nối_uri > -c < truy vấn >

Phần kết luận

Chúng ta đã học về nhiều cách khác nhau để tạo cơ sở dữ liệu trong PostgreSQL. Chúng tôi đã trình bày cách tạo cơ sở dữ liệu bằng truy vấn CREATE DATABASE. Chúng tôi cũng giới thiệu việc tạo cơ sở dữ liệu bằng lệnh createdb. Ngoài ra, chúng tôi cũng đề cập đến một số hành động quản lý cơ sở dữ liệu quan trọng khác như xóa cơ sở dữ liệu và thay đổi chủ sở hữu.

Quan tâm đến việc tìm hiểu thêm về PostgreSQL? Kiểm tra Tiểu thể loại PostgreSQL y chứa nhiều hướng dẫn về các tính năng khác nhau; Ví dụ: chức năng , biểu thức chính quy , những cái bàn , và nhiều hơn nữa.