Jeśli chodzi o administrowanie bazami danych Postgres, dostępna jest szeroka gama narzędzi innych firm, takich jak SQL Workbench/J lub pgAdmin III. Jednak sam Postgres jest dostarczany z potężnym narzędziem wiersza poleceń o nazwie psql
co jest świetne dla osób zaznajomionych z terminalem lub szukających zadań administracyjnych skryptów. Jednym z najczęstszych zadań wykonywanych przez administratora bazy danych jest po prostu zapoznanie się ze środowiskiem. Obejmuje to zadawanie pytań typu „Które bazy danych znajdują się na tym serwerze?” lub „Jakie tabele są przechowywane w konkretnej bazie danych na tym serwerze?”. W tym samouczku dowiemy się, jak odpowiedzieć na te kluczowe pytania z wiersza poleceń za pomocą psql
.
Meta-polecenia
Oprócz możliwości przesyłania surowych zapytań SQL do serwera za pośrednictwem psql
możesz również skorzystać z psql
meta-polecenia do uzyskania informacji z serwera. Metapolecenia to polecenia, które są oceniane przez psql
i często tłumaczone na język SQL, który jest wystawiany na podstawie tabel systemowych na serwerze, oszczędzając czas administratorów podczas wykonywania rutynowych zadań. Są one oznaczone odwrotnym ukośnikiem, po których następuje polecenie i jego argumenty. Poniżej zobaczymy kilka przykładów.
Bazy danych list
Pojedynczy proces serwera Postgres może zarządzać wieloma bazami danych jednocześnie. Każda baza danych jest przechowywana jako osobny zestaw plików we własnym katalogu w katalogu danych serwera. Aby wyświetlić wszystkie zdefiniowane bazy danych na serwerze, możesz użyć \list
metapolecenie lub jego skrót \l
.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sales | ubuntu | 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
(4 rows)
Przełączanie baz danych
Większość serwerów Postgres ma domyślnie zdefiniowane trzy bazy danych:template0
, template1
i postgres
. template0
i template1
są szkieletowymi bazami danych, które są lub mogą być używane przez CREATE DATABASE
Komenda. postgres
jest domyślną bazą danych, z którą będziesz się łączyć przed utworzeniem jakichkolwiek innych baz danych. Po utworzeniu innej bazy danych będziesz chciał się do niej przełączyć, aby tworzyć tabele i wstawiać dane. Często podczas pracy z serwerami, które zarządzają wieloma bazami danych, będziesz musiał często przeskakiwać między bazami danych. Można to zrobić za pomocą \connect
metapolecenie lub jego skrót \c
.
postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#
Tabele z listami
Po połączeniu się z bazą danych będziesz chciał sprawdzić, które tabele zostały tam utworzone. Można to zrobić za pomocą \dt
metapolecenie. Jeśli jednak nie ma tabel, nie otrzymasz żadnych danych wyjściowych.
sales=# \dt
No relations found.
sales=#
Po utworzeniu tabeli zostanie ona zwrócona na tabelarycznej liście utworzonych tabel.
sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+--------
public | leads | table | ubuntu
(1 row)
sales=#