Header Ads

Cài đặt PostgreSQL trên Ubuntu 16.04 LTS

Cài đặt PostgreSQL trên Ubuntu 16.04 LTS


Giới thiệuhệ thống quản lý cơ sở dữ liệu quan hệ là một thành phần quan trọng của nhiều trang web và các ứng 

dụng. Họ cung cấp một cách có cấu trúc để lưu trữ, sắp xếp và truy cập thông tin.PostgreSQL , hoặc Postgres, 

là một hệ thống quản lý cơ sở dữ liệu quan hệ cung cấp một thực hiện của ngôn ngữ SQL truy vấn. Đó là một

 lựa chọn phổ biến cho nhiều dự án lớn và nhỏ và có lợi thế là tiêu chuẩn phù hợp và có nhiều tính năng tiên tiến 

như giao dịch đáng tin cậy và đồng thời mà không cần khóa đọc.Trong hướng dẫn này, chúng tôi sẽ chứng minh

 làm thế nào để cài đặt Postgres trên Ubuntu 16.04 VPS dụ và đi qua một số cách cơ bản để sử dụng nó.

Cài đặt

Lưu trữ mặc định của Ubuntu chứa Postgres gói, vì vậy chúng tôi có thể cài đặt những cách dễ 
dàng bằng cách sử dụng apthệ thống đóng gói.
Vì đây là lần đầu tiên chúng tôi sử dụng apttrong phiên giao dịch này, chúng ta cần phải làm 
mới chỉ số gói địa phương của chúng tôi. Sau đó chúng ta có thể cài đặt các gói Postgres và
 một -contribgói bổ sung thêm một số tiện ích bổ sung và các chức năng:
  • sudo apt-get update
  • sudo apt-get install postgresql postgresql-contrib

Bây giờ phần mềm của chúng tôi được cài đặt, chúng ta có thể đi qua như thế nào nó hoạt
 động và làm thế nào nó có thể khác nhau từ các hệ thống quản lý cơ sở dữ liệu tương tự, bạn 
có thể đã được sử dụng.

Sử dụng Vai trò PostgreSQL và Cơ sở dữ liệu

Theo mặc định, Postgres dùng một khái niệm gọi là "vai diễn" để xử lý xác thực và ủy quyền. 
Đây là, trong một số cách khác nhau, tương tự như các tài khoản Unix-phong cách thường xuyên, 
nhưng Postgres không phân biệt giữa người dùng và các nhóm và thay vào đó thích thuật ngữ linh 
hoạt hơn "vai trò".
Sau khi cài đặt Postgres được thiết lập để sử dụng ident xác thực, có nghĩa là nó liên kết
 Postgres vai trò với một tài khoản hệ thống Unix / Linux phù hợp. Nếu một vai trò tồn tại 
trong Postgres, một tên người dùng Unix / Linux có cùng tên sẽ có thể đăng nhập với vai trò đó.
Có một số cách để sử dụng tài khoản này để Postgres truy cập.

Chuyển Qua Tài khoản postgres

Thủ tục cài đặt tạo ra một tài khoản người dùng được gọi postgreslà liên kết với vai trò 
Postgres mặc định. Để sử dụng Postgres, chúng ta có thể đăng nhập vào tài khoản đó.
Chuyển sang postgrestài khoản trên máy chủ của bạn bằng cách gõ:
  • sudo -i -u postgres
Bây giờ bạn có thể truy cập một dấu nhắc Postgres ngay lập tức bằng cách gõ:
  • psql
Bạn sẽ được đăng nhập và có thể tương tác với các hệ thống quản lý cơ sở dữ liệu ngay lập tức.
Thoát ra khỏi dấu nhắc PostgreSQL bằng cách gõ:
  • \q
Bây giờ bạn sẽ được trở lại trong postgresdấu nhắc lệnh Linux.

Truy cập vào một Prompt Postgres Nếu không chuyển khoản

Bạn cũng có thể chạy các lệnh bạn muốn với các postgrestài khoản trực tiếp với sudo.
Ví dụ, trong ví dụ cuối cùng, chúng tôi chỉ muốn nhận được một nhắc nhở Postgres. Chúng
 ta có thể làm điều này trong một bước bằng cách chạy lệnh duy nhất psqllà postgres
người dùng có sudonhư thế này:
  • sudo -u postgres psql
Điều này sẽ đăng nhập của bạn trực tiếp vào Postgres mà không có sự trung gian bashvỏ ở giữa.
Một lần nữa, bạn có thể thoát phiên Postgres tương tác bằng cách gõ:
  • \q

Tạo một vai trò mới

Hiện nay, chúng tôi chỉ có postgresvai trò cấu hình bên trong cơ sở dữ liệu. Chúng ta 
có thể tạo ra vai trò mới từ dòng lệnh với createrolelệnh. Các --interactivelá cờ
 sẽ nhắc bạn cho các giá trị cần thiết.
Nếu bạn đang đăng nhập như postgrestài khoản, bạn có thể tạo một người dùng mới
 bằng cách gõ:
  • createuser --interactive
Nếu, thay vào đó, bạn thích sử dụng sudocho mỗi lệnh mà không cần chuyển đổi từ tài 
khoản của bạn bình thường, bạn có thể gõ:
  • sudo -u postgres createuser --interactive
Các kịch bản sẽ nhắc bạn với một số lựa chọn, và dựa vào phản ứng của bạn, hãy thực 
hiện đúng Postgres lệnh để tạo ra một người sử dụng thông số kỹ thuật của bạn.
Output
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
Bạn có thể có được kiểm soát nhiều hơn bằng cách đi qua một số cờ bổ sung. Kiểm tra 
các tùy chọn bằng cách nhìn vào mantrang:
  • man createuser

Tạo một cơ sở dữ liệu mới

Theo mặc định, một giả định rằng hệ thống xác thực Postgres làm là sẽ có một cơ sở 
dữ liệu với tên giống như vai trò được sử dụng để đăng nhập, trong đó vai trò có quyền truy cập vào.
Vì vậy, nếu trong phần trước, chúng ta đã tạo một người dùng được gọi là sammy, vai trò 
đó sẽ cố gắng để kết nối với một cơ sở dữ liệu đó cũng được gọi là sammytheo mặc định. 
Bạn có thể tạo ra các cơ sở dữ liệu phù hợp với các createdblệnh.
Nếu bạn đang đăng nhập như postgrestài khoản, bạn nên gõ một cái gì đó như:
  • createdb sammy
Nếu, thay vào đó, bạn thích sử dụng sudocho mỗi lệnh mà không cần chuyển đổi từ tài 
khoản của bạn bình thường, bạn nên gõ:
  • sudo -u postgres createdb sammy

Mở một cửa sổ Postgres với vai trò mới

Để đăng nhập bằng identxác thực dựa, bạn sẽ cần một người sử dụng Linux có tên 
giống như vai trò và cơ sở dữ liệu Postgres của bạn.
Nếu bạn không có một người sử dụng Linux phù hợp sẵn, bạn có thể tạo ra một với 
các adduserlệnh.Bạn sẽ phải làm điều này từ một tài khoản với sudocác đặc 
quyền (không đăng nhập như làpostgresngười sử dụng):
  • sudo adduser sammy
Một khi bạn có các tài khoản thích hợp sẵn, bạn có thể chuyển đổi hơn và kết nối 
với cơ sở dữ liệu bằng cách gõ:
  • sudo -i -u sammy
  • psql
Hoặc, bạn có thể làm nội tuyến này:
  • sudo -u sammy psql
Bạn sẽ được đăng nhập tự động giả định rằng tất cả các thành phần đã được cấu hình đúng.
Nếu bạn muốn sử dụng để kết nối vào cơ sở dữ liệu khác nhau, bạn có thể làm như 
vậy bằng cách xác định cơ sở dữ liệu như thế này:
  • psql -d postgres
Sau khi đăng nhập, bạn có thể có được kiểm tra thông tin kết nối hiện tại của bạn bằng cách gõ:
  • \conninfo
Output
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
Điều này có thể hữu ích nếu bạn đang kết nối với cơ sở dữ liệu không mặc định hoặc với
 những người dùng không mặc định.

Tạo và xóa các bảng

Bây giờ bạn biết làm thế nào để kết nối với các hệ thống cơ sở dữ liệu PostgreSQL, chúng 
ta có thể đi qua như thế nào để hoàn thành một số nhiệm vụ cơ bản.
Đầu tiên, chúng ta có thể tạo ra một bảng để lưu trữ một số dữ liệu. Hãy tạo ra một bảng
 mô tả thiết bị sân chơi.
Cú pháp cơ bản của lệnh này là một cái gì đó như thế này:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
Như bạn có thể thấy, chúng tôi cung cấp cho các bảng tên, và sau đó xác định các cột mà
 chúng ta muốn, cũng như các loại cột và chiều dài tối đa của các trường dữ liệu. Chúng 
tôi cũng có thể tùy chọn thêm các ràng buộc bảng cho mỗi cột.
Bạn có thể tìm hiểu thêm về làm thế nào để tạo và quản lý bảng trong Postgres đây.
Đối với mục đích của chúng ta, chúng ta sẽ tạo ra một bảng đơn giản như thế này:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
color varchar (25) NOT NULL,
install_date date
);
Chúng tôi đã thực hiện một bảng sân chơi mà hàng tồn kho các thiết bị mà chúng tôi có. 
Điều này bắt đầu với một ID thiết bị, đó là các serialloại. Kiểu dữ liệu này là một số
 nguyên tự động incrementing.Chúng tôi đã cho cột này ràng buộc của primary keyđiều 
đó có nghĩa rằng các giá trị phải là duy nhất và không null.
Đối với hai cột của chúng tôi ( equip_idvà install_date), chúng tôi đã không đưa ra 
một lĩnh vực chiều dài. Điều này là do một số loại cột không đòi hỏi một thời gian thiết lập 
bởi vì chiều dài được ngụ ý bởi kiểu.
Sau đó chúng tôi cung cấp cho các cột cho các thiết bị typevà color, mỗi trong số đó không
 thể để trống. Chúng tôi tạo ra một locationcột và tạo ra một ràng buộc và đòi hỏi giá trị là 
một trong tám giá trị có thể. Cột cuối cùng là một cột ngày ghi lại ngày mà chúng ta đã cài đặt
 các thiết bị.
Chúng ta có thể thấy bảng mới của chúng tôi bằng cách gõ:
  • \d
Output
List of relations
Schema | Name | Type | Owner
--------+-------------------------+----------+-------
public | playground_equip_id_seq | sequence | sammy
public | playground | table | sammy
(2 rows)
Bảng sân chơi của chúng tôi là ở đây, nhưng chúng tôi cũng có một cái gì đó gọiplayground_equip_id_seqlà các loại sequenceĐây là một đại diện của
 các serialloại chúng tôi đã cho chúng tôi equip_idcột. Điều này theo dõi những 
số tiếp theo trong dãy và được tạo ra tự động cho các cột của loại hình này.
Nếu bạn muốn nhìn thấy chỉ là bảng mà không có trình tự, bạn có thể gõ:
  • \dt
Output
List of relations
Schema | Name | Type | Owner
--------+------------+-------+-------
(1 row)
public | playground | table | sammy

Thêm, truy vấn, và Xóa dữ liệu trong một bảng

Bây giờ chúng ta có một bảng, chúng ta có thể chèn một số dữ liệu vào nó.
Hãy thêm một slide và một swing. Chúng tôi làm điều này bằng cách gọi bảng mà 
chúng ta đang muốn thêm vào, đặt tên cho các cột và sau đó cung cấp dữ liệu cho mỗi cột.
 trượt và xoay của chúng tôi có thể được thêm vào như thế này:
  • INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
  • INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');
Bạn nên cẩn thận khi nhập dữ liệu để tránh một vài hangups chung. Đầu tiên, hãy nhớ 
rằng các tên cột không nên được trích dẫn, nhưng cột giá trị mà bạn nhập làm cần dấu ngoặc kép.
Một điều cần lưu ý là chúng tôi không nhập giá trị cho các equip_idcột. Điều này là bởi 
vì đây là tự động tạo ra bất cứ khi nào một hàng mới trong bảng được tạo ra.
Sau đó chúng tôi có thể lấy lại thông tin chúng tôi đã thêm bằng cách gõ:
  • SELECT * FROM playground;
Output
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
2 | swing | yellow | northwest | 2010-08-16
1 | slide | blue | south | 2014-04-28
(2 rows)
Ở đây, bạn có thể thấy rằng chúng tôi equip_idđã được lấp đầy trong thành công và 
rằng tất cả các dữ liệu khác của chúng tôi đã được tổ chức một cách chính xác.
Nếu trượt trên vỡ sân chơi và chúng ta phải loại bỏ nó, chúng ta cũng có thể loại bỏ các
 hàng từ bảng của chúng tôi bằng cách gõ:
  • DELETE FROM playground WHERE type = 'slide';
Nếu chúng ta truy vấn bảng của chúng tôi một lần nữa, chúng ta sẽ thấy trượt của chúng
 tôi không còn là một phần của bảng:
  • SELECT * FROM playground;
Output
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
(1 row)
2 | swing | yellow | northwest | 2010-08-16

Làm thế nào để Thêm và Xóa cột từ một bảng

Nếu chúng ta muốn thay đổi một bảng sau khi nó đã được tạo ra để thêm một cột bổ sung, chúng 
ta có thể làm điều đó một cách dễ dàng.
Chúng ta có thể thêm một cột để hiển thị các lần bảo dưỡng cuối cùng cho mỗi phần của thiết
 bị bằng cách gõ:
  • ALTER TABLE playground ADD last_maint date;
Nếu bạn xem thông tin bảng của bạn một lần nữa, bạn sẽ thấy các cột mới đã được thêm 
vào (nhưng không có dữ liệu đã được nhập vào):
  • SELECT * FROM playground;
Output
equip_id | type | color | location | install_date | last_maint
----------+-------+--------+-----------+--------------+------------
(1 row)
2 | swing | yellow | northwest | 2010-08-16 |
Chúng tôi có thể xóa một cột thật dễ dàng. Nếu chúng ta thấy rằng phi hành đoàn làm việc
 của chúng tôi sử dụng một công cụ riêng để theo dõi lịch sử bảo trì, chúng ta có thể thoát khỏi
 những cột ở đây bằng cách gõ:

  • ALTER TABLE playground DROP last_maint;

Làm thế nào để cập nhật dữ liệu trong một bảng

Chúng tôi biết làm thế nào để thêm bản ghi vào một bảng và làm thế nào để xóa chúng, nhưng 
chúng tôi đã không được bảo hiểm như thế nào để sửa đổi các mục hiện có nào.
Bạn có thể cập nhật các giá trị của một mục nhập hiện có bằng cách truy vấn cho các hồ sơ bạn
 muốn và thiết lập các cột với giá trị mà bạn muốn sử dụng. Chúng ta có thể truy vấn cho các
 hồ sơ "swing" (điều này sẽ phù hợp với mỗi swing trong bảng của chúng tôi) và thay đổi màu sắc
 của nó "đỏ". Điều này có thể hữu ích nếu chúng tôi đã cho swing thiết lập một công việc sơn:
  • UPDATE playground SET color = 'red' WHERE type = 'swing';
Chúng tôi có thể xác minh rằng các hoạt động đã thành công bằng cách truy vấn dữ liệu của 
chúng tôi một lần nữa:
  • SELECT * FROM playground;
Output
equip_id | type | color | location | install_date
----------+-------+-------+-----------+--------------
(1 row)
2 | swing | red | northwest | 2010-08-16
Như bạn có thể thấy, trượt chúng tôi bây giờ đăng ký như là màu đỏ.


No comments