Введение
В этой лабораторной работе вы изучите основы управления базами данных с использованием PostgreSQL. Лабораторная работа охватывает основные операции по управлению базами данных, включая создание новых баз данных, перечисление и подключение к существующим, а также удаление баз данных, когда они больше не нужны.
Вы начнете с создания новой базы данных с помощью команды createdb и проверки ее создания с помощью команды psql. Затем вы узнаете, как перечислить все доступные базы данных и подключиться к определенной базе данных. Наконец, вы изучите, как удалить базу данных и просмотреть метаданные базы данных. Эта лабораторная работа представляет собой практическое введение в основные задачи администрирования баз данных в PostgreSQL.
Создание новой базы данных
В этом шаге вы узнаете, как создать новую базу данных в PostgreSQL. Создание базы данных — это первый шаг в организации и хранении ваших данных.
Прежде чем мы начнем, давайте разберемся, что такое база данных. База данных — это структурированный набор данных, организованный для легкого доступа, управления и обновления. В PostgreSQL база данных — это контейнер для таблиц, представлений (views) и других объектов базы данных.
Чтобы создать новую базу данных, вы будете использовать команду createdb. Эта команда является оболочкой (wrapper) для SQL-команды CREATE DATABASE.
Откройте терминал: Если у вас еще нет открытого терминала, запустите окно терминала.
Создайте новую базу данных: Используйте команду
createdb, за которой следует имя, которое вы хотите присвоить своей базе данных. Например, чтобы создать базу данных с именемmydatabase, выполните следующую команду:createdb mydatabaseЭта команда создаст новую базу данных с именем
mydatabase. Если команда выполнена успешно, вы не увидите никакого вывода.Проверьте создание базы данных: Чтобы убедиться, что база данных была создана, вы можете перечислить все базы данных с помощью команды
psql. Сначала подключитесь к базе данных по умолчаниюpostgres:psql -d postgresВы увидите приглашение
postgres=#.Список баз данных: В приглашении
postgres=#выполните следующую SQL-команду, чтобы перечислить все базы данных:\l
Эта команда отобразит список баз данных, включая ту, которую вы только что создали (
mydatabase). Вы должны увидеть вывод, подобный этому:List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- mydatabase| labex | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | 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)Обратите внимание, что
mydatabaseнаходится в списке.Выход из psql: Чтобы выйти из приглашения
psql, введите:\qи нажмите Enter. Вы вернетесь к обычному приглашению терминала.
Теперь вы успешно создали новую базу данных в PostgreSQL.
Список и подключение к базам данных
В этом шаге вы узнаете, как перечислить доступные базы данных и подключиться к определенной базе данных с помощью инструмента командной строки psql.
Откройте терминал: Если у вас еще нет открытого терминала, запустите окно терминала.
Список доступных баз данных: Чтобы перечислить все базы данных, вы можете использовать команду
psqlс опцией-l(это строчная буква 'L'). Эта опция перечисляет все базы данных на сервере. Поскольку вы не указали базу данных для подключения,psqlпопытается подключиться, используя ваше текущее имя пользователя.psql -lЭта команда отобразит список баз данных, а также их владельцев, кодировки и другую информацию. Вы должны увидеть вывод, подобный этому:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- mydatabase| labex | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | 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)Этот вывод показывает имена баз данных, их владельцев и другие детали. Вы должны увидеть базу данных
mydatabase, которую вы создали на предыдущем шаге.Подключение к определенной базе данных: Чтобы подключиться к определенной базе данных, используйте команду
psqlс опцией-d, за которой следует имя базы данных. Например, чтобы подключиться к базе данныхmydatabase, выполните следующую команду:psql -d mydatabaseЕсли соединение установлено успешно, вы увидите приглашение
mydatabase=#. Это означает, что вы подключены к базе данныхmydatabase.Проверка соединения: Чтобы убедиться, что вы подключены к правильной базе данных, вы можете выполнить простую SQL-команду, например:
SELECT version();
Эта команда отобразит версию сервера PostgreSQL, к которому вы подключены. Вывод будет выглядеть примерно так:
version ---------------------------------------------------------------------------------------------------------------- PostgreSQL 14.7 (Debian 14.7-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit (1 row)Выход из psql: Чтобы выйти из приглашения
psql, введите:\qи нажмите Enter. Вы вернетесь к обычному приглашению терминала.
Теперь вы успешно перечислили доступные базы данных и подключились к определенной базе данных с помощью psql.
Удаление базы данных
В этом шаге вы узнаете, как удалить (drop) базу данных в PostgreSQL. Удаление базы данных — это необратимое действие, поэтому важно быть осторожным при использовании этой команды. Все данные в базе данных будут потеряны.
Откройте терминал: Если у вас еще нет открытого терминала, запустите окно терминала.
Удалите базу данных: Используйте команду
dropdb, за которой следует имя базы данных, которую вы хотите удалить. Например, чтобы удалить базу данныхmydatabase, выполните следующую команду:dropdb mydatabaseЭта команда удалит базу данных
mydatabase. Если команда выполнена успешно, вы не увидите никакого вывода.Важно: Перед удалением базы данных убедитесь, что к ней никто не подключен. Если есть активные соединения, команда
dropdbможет завершиться неудачно.Проверьте удаление базы данных: Чтобы убедиться, что база данных была удалена, вы можете перечислить все базы данных с помощью команды
psql. Сначала подключитесь к базе данных по умолчаниюpostgres:psql -d postgres
Вы увидите приглашение
postgres=#.Список баз данных: В приглашении
postgres=#выполните следующую SQL-команду, чтобы перечислить все базы данных:\lЭта команда отобразит список баз данных. Убедитесь, что
mydatabaseбольше нет в списке.List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | 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 (3 rows)Если
mydatabaseне указана, она была успешно удалена.Выход из psql: Чтобы выйти из приглашения
psql, введите:\qи нажмите Enter. Вы вернетесь к обычному приглашению терминала.
Теперь вы успешно удалили базу данных в PostgreSQL. Помните, что при удалении баз данных следует проявлять осторожность, так как это действие необратимо.
Просмотр метаданных базы данных
В этом шаге вы узнаете, как просматривать метаданные базы данных в PostgreSQL. Метаданные — это "данные о данных". В контексте базы данных метаданные описывают структуру и характеристики самой базы данных, включая информацию о таблицах, столбцах, типах данных и ограничениях (constraints).
Откройте терминал: Если у вас еще нет открытого терминала, запустите окно терминала.
Подключитесь к базе данных
postgres: Поскольку мы удалилиmydatabaseна предыдущем шаге, мы подключимся к базе данныхpostgresпо умолчанию, чтобы изучить метаданные.psql -d postgresВы увидите приглашение
postgres=#.Список таблиц: Чтобы перечислить все таблицы в текущей подключенной базе данных, вы можете использовать команду
\dt.\dtПоскольку мы еще не создали никаких таблиц, вывод должен быть пустым или показывать системные таблицы. Это может выглядеть так:
Did not find any relations.или
List of relations Schema | Name | Type | Owner --------+-----------------------+-------+---------- pg_catalog | pg_aggregate | table | postgres pg_catalog | pg_am | table | postgres pg_catalog | pg_amop | table | postgres ...Вывод показывает схему (schema), имя, тип и владельца каждой таблицы.
Описание таблицы: Чтобы просмотреть подробную информацию о конкретной таблице, вы можете использовать команду
\d, за которой следует имя таблицы. Поскольку у нас нет пользовательской таблицы, давайте рассмотрим системную таблицу, например,pg_class.\d pg_class
Эта команда отобразит структуру таблицы
pg_class, включая имена столбцов, типы данных и любые ограничения. Вывод будет довольно обширным, но он предоставляет исчерпывающий обзор определения таблицы.Table "pg_catalog.pg_class" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description -------------------+-----------+-----------+----------+---------+----------+--------------+------------- oid | oid | | not null | | plain | | relname | name | | not null | | plain | | relnamespace | oid | | not null | | plain | | reltype | oid | | not null | | plain | | reloftype | oid | | not null | | plain | | relowner | oid | | not null | | plain | | relam | oid | | not null | | plain | | relfilenode | oid | | not null | | plain | | reltablespace | oid | | not null | | plain | | relpages | integer | | not null | | plain | | reltuples | real | | not null | | plain | | relallvisible | boolean | | not null | | plain | | reltoastrelid | oid | | not null | | plain | | relhasindex | boolean | | not null | | plain | | relhasrules | boolean | | not null | | plain | | relhastriggers | boolean | | not null | | plain | | relhassubclass | boolean | | not null | | plain | | relrowsecurity | boolean | | not null | | plain | | relforcerowsecurity| boolean | | not null | | plain | | relispopulated | boolean | | not null | | plain | | relreplident | character | | not null | | plain | | relispartition | boolean | | not null | | plain | | relrewrite | oid | | not null | | plain | | relacl | aclitem[] | | | | plain | | reloptions | text[] | | | | plain | | relpartbound | pg_node_tree | | | | extended | | Indexes: "pg_class_oid_index" UNIQUE, btree (oid) "pg_class_relname_nsp_index" UNIQUE, btree (relname, relnamespace) Foreign-key constraints: "pg_class_relam_fkey" FOREIGN KEY (relam) REFERENCES pg_am(oid) "pg_class_relnamespace_fkey" FOREIGN KEY (relnamespace) REFERENCES pg_namespace(oid) "pg_class_relowner_fkey" FOREIGN KEY (relowner) REFERENCES pg_authid(oid) "pg_class_reltoastrelid_fkey" FOREIGN KEY (reltoastrelid) REFERENCES pg_class(oid) Referenced by: TABLE "pg_statistic_ext" CONSTRAINT "pg_statistic_ext_relid_fkey" FOREIGN KEY (relid) REFERENCES pg_class(oid) TABLE "pg_rewrite" CONSTRAINT "pg_rewrite_ev_class_fkey" FOREIGN KEY (ev_class) REFERENCES pg_class(oid) TABLE "pg_trigger" CONSTRAINT "pg_trigger_tgrelid_fkey" FOREIGN KEY (tgrelid) REFERENCES pg_class(oid)Выход из psql: Чтобы выйти из приглашения
psql, введите:\qи нажмите Enter. Вы вернетесь к обычному приглашению терминала.
Теперь вы успешно просмотрели метаданные базы данных в PostgreSQL с помощью psql. Это позволяет вам понимать структуру и свойства ваших баз данных и таблиц.
Резюме
В этой лабораторной работе вы изучили основы управления базами данных в PostgreSQL, начиная с создания новой базы данных. Процесс включает в себя использование команды createdb с последующим указанием желаемого имени базы данных в терминале. Успешное выполнение создает базу данных без какого-либо вывода.
Чтобы проверить создание, вы подключаетесь к базе данных postgres по умолчанию с помощью psql -d postgres, а затем используете команду \l для перечисления всех доступных баз данных, подтверждая, что вновь созданная база данных присутствует.


