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
dàng bằng cách sử dụng
apt
hệ thống đóng gói.
Vì đây là lần đầu tiên chúng tôi sử dụng
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
apt
trong 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
-contrib
gó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.
độ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ò".
Đâ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ò đó.
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
Postgres mặc định. Để sử dụng Postgres, chúng ta có thể đăng nhập vào tài khoản đó.
postgres
là 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
postgres
tà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
postgres
dấ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
postgres
tà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
người dùng có
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
psql
là postgres
người dùng có
sudo
như 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
bash
vỏ ở 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ó
có thể tạo ra vai trò mới từ dòng lệnh với
sẽ nhắc bạn cho các giá trị cần thiết.
postgres
vai 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
createrole
lệnh. Các --interactive
lá cờsẽ nhắc bạn cho các giá trị cần thiết.
Nếu bạn đang đăng nhập như
bằng cách gõ:
postgres
tài khoản, bạn có thể tạo một người dùng mớibằng cách gõ:
- createuser --interactive
Nếu, thay vào đó, bạn thích sử dụng
khoản của bạn bình thường, bạn có thể gõ:
sudo
cho 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.
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
các tùy chọn bằng cách nhìn vào
man
trang:
- 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.
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à
đó sẽ cố gắng để kết nối với một cơ sở dữ liệu đó cũng được gọi là
Bạn có thể tạo ra các cơ sở dữ liệu phù hợp với các
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à
sammy
theo mặc định. Bạn có thể tạo ra các cơ sở dữ liệu phù hợp với các
createdb
lệnh.
Nếu bạn đang đăng nhập như
postgres
tà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
khoản của bạn bình thường, bạn nên gõ:
sudo
cho 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
giống như vai trò và cơ sở dữ liệu Postgres của bạn.
ident
xá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
quyền (không đăng nhập như là
các
adduser
lệnh.Bạn sẽ phải làm điều này từ một tài khoản với sudo
các đặc quyền (không đăng nhập như là
postgres
ngườ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õ:
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:
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.
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.
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.
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.
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.
Đố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
nguyên tự động incrementing.Chúng tôi đã cho cột này ràng buộc của
đó có nghĩa rằng các giá trị phải là duy nhất và không null.
Điều này bắt đầu với một ID thiết bị, đó là các
serial
loạ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 (
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.
equip_id
và 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ị
thể để trống. Chúng tôi tạo ra một
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ị.
type
và color
, mỗi trong số đó khôngthể để trống. Chúng tôi tạo ra một
location
cộ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ọi
các
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.
playground_equip_id_seq
là các loại sequence
. Đây là một đại diện củacác
serial
loại chúng tôi đã cho chúng tôi equip_id
cộ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:
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.
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
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.
equip_id
cộ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
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.
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õ:
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:
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.
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õ:
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):
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õ:
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.
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:
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:
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 đỏ.
Post a Comment