Реляционные системы управления базами данных являются ключевым компонентом многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения данных и организацию доступа к информации.
Postgresql — это объектно-реляционная система управления базами данных, которая все больше и больше вытесняет MySQL и производственных серверов.
Ее преимущество в множестве дополнительных функций и улучшений, таких как надежная передача данных и параллелизация без блокировок чтения.
Вы можете использовать эту СУБД из различных языков программирования, а ее синтаксис запросов PL/pgSQL очень похож на MySQL от Oracle.
В этой статье мы рассмотрим как выполняется установка Postgresql Ubuntu 16.04, а также как выполнить первоначальную настройку и подготовку к работе этой системы.
Установка Postgresql в Ubuntu 16.04
Это очень популярный сервер баз данных, потому программа есть в официальных репозиториях. Но если вы хотите получить самую новую версию, то придется добавить в систему PPA. Для этого выполните команды:
sudo sh -c 'echo «deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main» >> /etc/apt/sources.list.d/pgdg.list'
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O — | sudo apt-key add —
- Затем обновите списки пакетов, чтобы получить самую новую доступную версию:
- sudo apt-get update
- Установка Postgresl Ubuntu из PPA или официальных репозиториев выглядит одинаково:
- sudo apt-get install postgresql postgresql-contrib
Когда установка будет завершена, можно переходить к настройке.
Настройка Postgresql в Ubuntu
Вы знаете как установить Postgresql Ubuntu, но этого недостаточно для начала полноценной работы. Первым делом, откройте терминал и переключите его на пользователя postgres с помощью команды:
sudo su — postgres
Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию postgress использует концепцию ролей для аутентификации и авторизации.
Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли.
Сразу после установки Postgresql пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:
psql
И посмотреть информацию о соединении:
conninfo
- Чтобы выйти наберите:
- q
- Теперь давайте рассмотрим как создать другие роли и базы данных.
Создание роли Postgresql
Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните:
createuser —interactive
Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.
Создание базы данных
Точно также как имена ролей сопоставляются с системными пользователями, имя базы данных будет подбираться по имени пользователя. Например, если мы создали пользователя segiy, то по умолчанию система попытается получить доступ к базе данных segiy. Мы можем ее очень просто создать:
- createdb sergiy
- Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:
- sudo su — sergiy
Заходим в консоль и смотрим информацию о подключении:
psql
Все верно сработало. Мы подключились с помощью роли segiy к базе segiy. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:
psql -d postgres
Все сработало верно, при условии, что все компоненты были настроены как описано выше.
Создание таблиц
Теперь, когда вы знаете как подключится к базе данных Postgresql давайте рассмотрим как выполняются основные задачи. Сначала разберем создание таблиц для хранения некоторых данных. Для создания таблицы Postgresql используется такой синтаксис:
CREATE TABLE имя таблицы (
имя_колонки1 тип_колонки ( длина ) ограничения ,
имя_колонки2 тип_колонки ( длина ),
имя_колонки3 тип_колонки ( длина )
);
Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date
);
Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.
Следующие колонки — обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец — дата создания.
- Вы можете вывести все таблицы, выполнив команду:
- d
Здесь мы видим что кроме нашей таблицы, существует еще одна переменная — playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:
dt
Вставка и удаление данных
У нас есть таблица, но пока что она пуста. Мы можем добавить в нее некоторые данные. Давайте добавим пункт, описывающий качели. Для этого используются такие команды:
- INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2016-04-28');
- INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2015-08-16');
- Заметьте, что имена столбцов не обязательно заключать в кавычки, а вот имена значений — обязательно. Теперь смотрим что получилось:
- SELECT * FROM playground;
- Удалять записи можно по любому критерию, например, удалим записи, поле type которых имеет значение slide:
- DELETE FROM playground WHERE type = 'slide';
- И снова смотрим что получилось:
- SELECT * FROM playground;
Установка phppgadmin
Не всегда удобно управлять базой данных из терминала. Иногда нужно получить доступ ко всему через веб-интерфейс. Для этого есть программа phppgadmin, но для ее работы нужен веб-сервер Apache. Для установки программы наберите:
- sudo apt install phppgadmin
- Когда установка будет завершена откройте файл /etc/apache2/conf-available/phppgadmin.conf и закоментируйте строку:
- Require local
- А вместо нее добавьте:
- Allow From all
Это необходимо, чтобы открыть доступ к этому адресу не только с локального компьютера, но и их других устройств сети. Заметьте, что вы не сможете войти под учетной записью postgres, это сделано из соображений безопасности. Когда завершите, перезагрузите Apahce:
sudo service apache2 restart
Выводы
Теперь установка Postgresql Ubuntu 16.04 завершена и вы даже прошли краткий экскурс в синтаксис PgSQL, который очень похож на привычный нам MySQL, но имеет некоторые отличия. Если у вас остались вопросы, спрашивайте в х!
Источник: https://losst.ru/ustanovka-postgresql-ubuntu-16-04
Установка PostgreSQL в Ubuntu
PostgreSQL — свободная система управления различными базами данных, реализованная для разных платформ, включая Windows и Linux. Инструмент поддерживает большое количество типов данных, имеет встроенный скриптовый язык и поддерживает работу с применением классических языков программирования. В Ubuntu PostgreSQL устанавливается через «Терминал» с использованием официальных или пользовательских хранилищ, а уже после этого проводятся подготовительные работы, тестирование и создание таблиц.
Устанавливаем PostgreSQL в Ubuntu
Базы данных применяются в самых разных областях, а вот комфортное управление ими обеспечивает система управления. Многие юзеры останавливаются на PostgreSQL, инсталлируют ее в свою ОС и приступают к работе с таблицами. Далее мы бы хотели пошагово описать весь процесс установки, первого запуска и настройки упомянутого инструмента.
Шаг 1: Установка PostgreSQL
Конечно, начать следует с добавления всех необходимых файлов и библиотек в Ubuntu для обеспечения нормального функционирования PostgreSQL. Осуществляется это с применением консоли и пользовательских либо официальных хранилищ.
- Запустите «Терминал» любым удобным способом, например, через меню или зажатием комбинации клавиш Ctrl + Alt + T.
- Сначала отметим пользовательские хранилища, поскольку туда обычно в первую очередь выгружают самые свежие версии. Вставьте в поле команду sudo sh -c 'echo «deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main» >> /etc/apt/sources.list.d/pgdg.list', а затем нажмите на Enter.
- Введите пароль от своей учетной записи.
- После этого используйте wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O — | sudo apt-key add — для добавления пакетов.
- Осталось только обновить системные библиотеки стандартной командой sudo apt-get update.
- Если же вы заинтересованы в получении последней доступной версии PostgreSQL из официального репозитория, требуется написать в консоли sudo apt-get install postgresql postgresql-contrib и подтвердить добавление файлов.
По завершении успешной инсталляции можно переходить к запуску стандартной учетной записи, проверке работы системы и начальной конфигурации.
Шаг 2: Первый запуск PostgreSQL
Управление установленной СУБД тоже происходит через «Терминал» с помощью соответствующих команд. Обращение к созданному по умолчанию пользователю выглядит так:
- Введите команду sudo su — postgres и нажмите на Enter. Такое действие позволит вам перейти к управлению от лица созданной по умолчанию учетной записи, которая на текущий момент выступает в роли основной.
- Вход в консоль управления под видом используемого профиля осуществляется через psql. Разобраться с окружением вам поможет активация help — это покажет все доступные команды и аргументы.
- Просмотр информации о текущем сеансе PostgreSQL выполняется через conninfo.
- Выйти из окружения поможет команда q.
Теперь вы знаете о том, как выполнить вход в учетную запись и перейти в консоль управления, поэтому самое время переходить к созданию нового пользователя и его БД.
Шаг 3: Создание пользователя и базы данных
Не всегда удобно работать уже с имеющейся стандартной учетной записи, да и не всегда это нужно. Именно потому мы предлагаем рассмотреть процедуру создания нового профиля и привязку к нему отдельной базы данных.
- Находясь в консоли под управлением профиля postgres (команда sudo su — postgres), напишите createuser —interactive, а затем задайте ему подходящее имя, вписав символы в соответствующую строку.
- Далее определитесь, хотите ли вы предоставить пользователю права суперпользователя для доступа ко всем системным ресурсам. Просто выберите подходящий вариант и переходите далее.
- Базу данных лучше назвать таким же именем, как была названа учетная запись, поэтому стоит использовать команду createdb lumpics, где lumpics — имя пользователя.
- Переход к работе с указанной базой данных происходит через psql -d lumpics, где lumpics — название БД.
Шаг 4: Создание таблицы и работа со строками
Настало время создать свою первую таблицу в назначенной базе. Выполняется эта процедура тоже через консоль, однако разобраться с основными командами будет нетрудно, ведь от вас всего лишь требуется следующее:
- После перехода к базе введите такой код:
- CREATE TABLE test (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date - );
Сначала указывается имя таблицы test (вы можете выбрать любое другое название). Далее описывается каждый столбец. Мы выбрали названия type varchar и color varchar только для примера, вам же доступно указание любого другого, но только с применением латинских символов. Цифры в скобках отвечают за размер столбца, что напрямую связано с помещающимися туда данными.
- CREATE TABLE test (
- После ввода остается только вывести таблицу на экран с помощью d.
- Вы видите простой проект, не содержащий в себе пока никакой информации.
- Новые же данные добавляются через команду INSERT INTO test (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2018-02-24'); Сначала указывается название таблицы, в нашем случае это test, затем перечисляются все столбцы, а в скобках указываются значения, обязательно в кавычках.
- Далее можете добавить еще одну строку, например, INSERT INTO test (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2018-02-24');
- Запустите таблицу через SELECT * FROM test;, чтобы оценить результат. Как видите, все расположилось правильно и данные внесены верно.
- Если же вам потребуется удалить какое-либо значение, делайте это через команду DELETE FROM test WHERE type = 'slide';, указав в кавычках нужное поле.
Шаг 5: Установка phpPgAdmin
Не всегда управление БД легко выполняется через консоль, поэтому лучше всего модернизировать ее, установив специальный графический интерфейс phpPgAdmin.
- Первоочередно через «Терминал» загрузите последние обновления для библиотек через sudo apt-get update.
- Установите веб-сервер Apache sudo apt-get install apache2.
- После инсталляции протестируйте его работоспособность и корректность синтаксиса с помощью sudo apache2ctl configtest. Если что-то пошло не так, ищите ошибку по описанию на официальном сайте Apache.
- Запустите сервер, введя sudo systemctl start apache2.
- Теперь, когда обеспечено корректное функционирование сервера, можно добавить библиотеки phpPgAdmin, загрузив их с официального хранилища через sudo apt install phppgadmin.
- Далее следует немного изменить конфигурационный файл. Откройте его через стандартный блокнот, указав gedit /etc/apache2/conf-available/phppgadmin.conf. Если документ доступен только для чтения, потребуется в команде перед gedit указать еще и sudo.
- Перед строкой «Require local» поставьте #, чтобы переделать ее в комментарий, а снизу введите Allow From all. Теперь доступ к адресу будет открыт для всех устройств сети, а не только для локального ПК.
- Перезапустите веб-сервер sudo service apache2 restart и можете смело переходить к работе с PostgreSQL.
В этой статье мы рассмотрели не только PostgreSQL, но и установку веб-сервера Apache, использующегося в объединении программного обеспечения LAMP. Если вы заинтересованы в обеспечении полноценного функционирования своих сайтов и других проектов, советуем ознакомиться с процессом добавления остальных компонентов, прочитав другую нашу статью по следующей ссылке.
Установка набора программ LAMP в Ubuntu
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ
Источник: https://lumpics.ru/install-postgresql-in-ubuntu/
Установка и настройка базы данных PostgreSQL на Ubuntu
Эта инструкция применяется к
Ubuntu версии 12, 14 или 16,…
Вы можете посмотреть другие версии
Postgres здесь:
Для начала, проверьте какую версию
Ubuntu вы используете. Будьте внимательны к
UBUNTU_CODENAME, он важен для вас сейчас.
Version | Code name | Release date | End of Life date |
Ubuntu 18.04.1 LTS | bionic | July 26, 2018 | April 2023 |
Ubuntu 18.04 LTS | bionic | April 26, 2018 | April 2023 |
Ubuntu 16.04.4 LTS | xenial | March 1, 2018 | April 2021 |
Ubuntu 16.04.3 LTS | xenial | August 3, 2017 | April 2021 |
Ubuntu 16.04.2 LTS | xenial | February 16, 2017 | April 2021 |
Ubuntu 16.04.1 LTS | xenial | July 21, 2016 | April 2021 |
Ubuntu 16.04 LTS | xenial | April 21, 2016 | April 2021 |
Ubuntu 14.04.5 LTS | trusty | August 4, 2016 | April 2019 |
Ubuntu 14.04.4 LTS | trusty | February 18, 2016 | HWE August 2016 |
Ubuntu 14.04.3 LTS | trusty | August 6, 2015 | HWE August 2016 |
Ubuntu 14.04.2 LTS | trusty | February 20, 2015 | HWE August 2016 |
Ubuntu 14.04.1 LTS | trusty | July 24, 2014 | April 2019 |
Ubuntu 14.04 LTS | trusty | April 17, 2014 | April 2019 |
Выполните команды ниже на
Terminal, примечание: Замените
{UBUNTU_CODENAME} вашим
UBUNTU_CODENAME.
sudo add-apt-repository «deb https://apt.postgresql.org/pub/repos/apt/ {UBUNTU_CODENAME}-pgdg main»
wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add —
sudo apt-get update
sudo apt-get install postgresql-9.6
sudo add-apt-repository «deb https://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main»
wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add —
sudo apt-get update
sudo apt-get install postgresql-9.6
Если вы получаете ошибку при установке, посмотрите аппендикс в конце данной статьи:
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
E: Failed to fetch https://apt.postgresql.org/pub/repos/apt/dists/xenial-pgdg/InRelease
E: Some index files failed to download. They have been ignored, or old ones used instead.
Ниже является изображение установки
PostGres в
Ubuntu Server 16.4:
sudo service postgresql start
Во-первых, вам необходимо войти в
Postgres (С авторизацией
root в
Ubuntu)
Вы успешно вошли в
Postgres:
В
Postgres,
«Postgres» это коренной пользователь (root user), вы можете установить новый пароль для этого пользователя:
ALTER USER postgres PASSWORD 'newpassword';
После успешного изменения пароля, вы можете выйти из
Postgres используя команду
«q»
После того, как создан пароль пользователя»
Postgres«, вы можете войти в
Postgres через команду:
psql -U postgres -h localhost
Введите пароль, который вы установили выше
Удостоверьтесь, что вы вошли в Postgres как пользователь «postgres».
Выполните 3 следующие команды, чтобы создать пользователя, базу данных и дайте все права использования той базы данных для только что созданного пользователя
CREATE USER myuser with PASSWORD '123';
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
Войти в базу данных
«mydb» через пользователя
«myuser»
psql -U myuser -h localhost -d mydb
Теперь вы соединены с базой данных «mydb»
— Create table Account
Create table Account (User_Name varchar(30), Full_Name varchar(64) ) ;
— Insert 2 row to Account.
Insert into Account(user_name, full_name) values ('gates', 'Bill Gate');
Insert into Account(user_name, full_name) values ('edison', 'Thomas Edison');
— Query
Select * from Account;
pgAdmin это программное обеспечение, визуальный инструмент помогающий вам работать с базой данных
Postgres, вы можете установить его по инструкции ниже:
Если вы получаете сообщение об ошибке:
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
E: Failed to fetch https://apt.postgresql.org/pub/repos/apt/dists/xenial-pgdg/InRelease
E: Some index files failed to download. They have been ignored, or old ones used instead.
sudo apt-get install apt-transport-https
Источник: https://o7planning.org/ru/11325/installing-and-configuring-postgresql-database-on-ubuntu
Как установить PostgreSQL на Ubuntu 18.04
01.08.2018 13:36
#VDS
#Linux/Ubuntu
#PostgreSQL
Реляционные СУБД являются ключевыми элементами на многих сайтах и веб-приложениях. Они дают возможность структурированно хранить информацию и удобно работать с ней.
PostgreSQL — это реляционная СУБД, базирующаяся на языке SQL. Ее используют на проектах разного масштаба, так как, с одной стороны, она совместима со многими Unix-подобными ОС (а также MacOS и Microsoft Windows), а с другой стороны, PostgreSQL обладает расширенной функциональностью.
Из этой статьи вы узнаете, как установить PostgreSQL на свой сервер, а также получите общую информацию о работе с ролями, базами данных и таблицами.
Требования
Для выполнения инструкций из этой статьи у вас должен быть сервер с установленной ОС Ubuntu 18.04, пользователем, который может выполнять команды sudo, и базовым фаерволом.
Шаг 1: установка PostgreSQL
- Установка выполняется стандартно с использованием утилиты apt, так как PostgreSQL по умолчанию есть в репозиториях Ubuntu.
- Сначала обновите локальный индекс пакетов:
- А затем установите PostgreSQL вместе с пакетом –contrib, который содержит дополнительные полезные инструменты для работы с СУБД:
$ sudo apt install postgresql postgresql-contrib
Следующая задача после установки – проверить, правильно ли все работает, и увидеть, в чем PostgreSQL отличается от других похожих СУБД.
Шаг 2: использование ролей и баз данных
По умолчанию PostgreSQL использует концепцию ролей (role) для процедур аутентификации и авторизации. Роли в чем-то похожи на стандартные Unix-аккаунты, но отличие заключается в том, что PostgreSQL не выделяет отдельно пользователей и группы, а вместо них использует более гибкий термин «роль».
После установки СУБД настроена на использование идентичной (ident) аутентификации: роли PostgreSQL будут связаны с такими же аккаунтами в системах Unix/Linux. Если роль существует в PostgreSQL, то пользователь Unix/Linux с таким же именем сможет авторизоваться в СУБД под этой ролью.
Во время установки будет создан аккаунт postgres, который будет ассоциироваться с ролью PostgreSQL по умолчанию. Под ним нужно авторизоваться для того, чтобы начать работу с PostgreSQL.
- Есть несколько способов того, как можно получить доступ к PostgreSQL через этот аккаунт.
- Во-первых, вы можете переключиться на этот аккаунт:
- А дальше перейти в консоль PostgreSQL:
- Для того, чтобы выйти из нее, надо ввести:
- И тогда вы вернетесь обратно в консоль Linux.
- Во-вторых, можно выполнить нужную команду от аккаунта postgres без переключения аккаунтов, а с использованием sudo.
- Например, попасть в консоль PostgreSQL можно всего одной командой, которая приведена ниже:
- Теперь перейдем к работе с ролями, так как зачастую для работы с PostgreSQL требуется больше, чем одна роль.
Шаг 3: создание новой роли
Для создания ролей используется команда createrole. Если использовать ключ —interactive, то у вас будет запрошено имя новой роли, а также будет задан вопрос о том, будет ли эта роль обладать правами суперпользователя.
После авторизации под аккаунтом postgres создайте нового пользователя:
$ createuser —interactive
Если вам удобнее использовать вариант без переключения аккаунтов, тогда команда будет выглядеть следующим образом:
$ sudo -u postgres createuser —interactive
Затем вам нужно будет выбрать имя для роли и решить, будут у нее права суперпользователя или нет.
Enter name of role to add: testuser Shall the new role be a superuser? (y/n) y
Если вам нужно еще больше настроек для создаваемой роли, посмотрите все возможные ключи при помощи команды:
Итак, у вас появился новый пользователь, но пока нет ни одной добавленой базы данных — перейдем к тому, как это правильно сделать.
Шаг 4: создание новой базы данных
Еще одна предустановка PostgreSQL заключается в том, что для каждой роли, использующейся для авторизации, предполагается база данных с таким же названием, к которой данная роль имеет доступ.
Если ранее вы создали роль testuser, то по умолчанию роль будет пытаться получить доступ к базе данных testuser. Для создания базы данных используется команда createdb. Авторизуйтесь под аккаунтом postgres и введите команду ниже:
Команда без переключения аккаунта будет выглядеть следующим образом:
$ sudo -u postgres createdb testuser
Шаг 5: создание таблицы
Перейдем к работе с таблицами.
Базовый синтаксис для создания таблицы:
CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length) );
Сначала команда дает таблице имя, затем определяет названия столбцов, а также их тип и максимальную длину значений.
Существует много разных типов данных, например:
- date — календарная дата;
- int — стандартный целочисленный тип;
- varchar — символьная строка переменной длины, которая указывается в скобках: varchar (50);
- real — число одинарной точности с плавающей точкой;
- point — геометрическая точка в плоскости.
Пример команды с заполненными данными:
CREATE TABLE weather ( city varchar(80), temp_lo int, — минимальная температура дня temp_hi int, — максимальная температура дня prcp real, — уровень осадков date date );
Дефисы используются для того, чтобы задать комментарий для столбца.
Можно задать комментарий и для таблицы:
COMMENT ON TABLE название_таблицы IS 'Это моя таблица.';
Если вы хотите удалить комментарий, то нужно ввести:
COMMENT ON TABLE mytable IS NULL;
Для того, чтобы посмотреть созданную таблицу, введите:
Шаг 6: добавление и удаление данных
Для добавления новой информации используется команда INSERT INTO. Можно использовать два варианта: короткий и длинный.
Синтаксис короткого варианта команды:
INSERT INTO название_таблицы VALUES (1, 'Milk', 9.99);
В этом случае вам нужно помнить последовательность столбцов, чтобы ввести правильное значение для каждого столбца.
Второй вариант — использовать команду с указанием столбцов:
INSERT INTO название_таблицы (product_no, name, price) VALUES (1, 'Cheese', 9.99); INSERT INTO название_таблицы (name, price, product_no) VALUES ('Cheese', 9.99, 1);
В этом случае данные будут записаны в соответствующие указанные столбцы.
Для удаления данных используйте команду DELETE FROM. Если вы введете команду:
DELETE FROM название_таблицы WHERE название_столбца = значение;
То будут удалены все строки, в которых значение выбранного столбца равняется заданному значению.
Пример команды:
DELETE FROM products WHERE price = 10;
Тут важно помнить, что команда без указания уточняющих данных удалит все строки таблицы:
Шаг 7: добавление и удаление столбцов
Для добавления столбцов используется команда ALTER TABLE:
ALTER TABLE название_таблицы ADD название_нового_столбца;
После ввода этой команды в таблице появится новый столбец с выбранным названием.
Удалять столбцы тоже легко, просто замените ADD на DROP:
ALTER TABLE название_таблицы DROP название_существующего_столбца;
После этого указанный столбец и его данные будут удалены.
Вместо заключения
В этой статье дана только базовая информация, которая поможет вам разобраться в том, как установить PostgreSQL и работать с этой СУБД. Для более детального изучения я рекомендую обратиться к официальной документации на английском языке либо к ее русскому переводу.
Источник: https://timeweb.com/ru/community/articles/kak-ustanovit-postgresql-na-ubuntu-18-04-1
Как установить и начать использовать PostgreSQL в Ubuntu 16.04
Системы управления реляционными базами данных являются ключевым компонентом работы многих веб-сайтов и приложений. Они предоставляют средство структурированного хранения, организации и доступа к информации.
PostgreSQL или Postgres — это система управления реляционной базой данных, предоставляющая реализацию языка запросов SQL. Это популярный выбор для множества больших и малых проектов.
Postgres также имеет преимущество соответствия стандартам (в том числе SQL), и, кроме того, обладает множеством продвинутых возможностей, например, надёжные транзакции (reliable transactions) и параллелизм без блокировки чтения (concurrency without read locks).
В этой статье мы продемонстрируем, как установить Postgres на виртуальный сервер с Ubuntu 16.04, а также осветим несколько простых сценариев его использования.
Перед установкой
Стандартные репозитории Ubuntu содержат пакеты Postgres, поэтому для установки мы будем использовать пакетный менеджер apt.
Сначала обновим локальный список пакетов. Далее мы установим пакет Postgres и пакет -contrib, который добавляет дополнительную функциональность:
- sudo apt-get update
- sudo apt-get install postgresql postgresql-contrib
Теперь, когда наше программное обеспечение установлено, мы можем детальнее остановиться на том, как оно работает, и почему работа с Postgres может отличаться от использования других баз данных, с которыми вы могли работать ранее.
Использование ролей и баз данных PostgreSQL
По умолчанию Postgres использует концепцию ролей для осуществления аутентификации и авторизации. Они, в некотором роде, подобны Unix аккаунтам, но Postgres не делает различий между пользователями и группами, а вместо этого предпочитает более гибкий термин “роль”.
После установки Postgres настраивает так называемую идентичную аутентификацию (ident authentication). Это означает, что Postgres ассоциирует свои роли с подходящими Unix/Linux аккаунтами. Если роль существует в Postgres, пользователь с этим же именем в Unix/Linux сможет осуществлять вход под этой ролью.
Существует несколько способов использовать это для доступа к Postgres.
Переключение на аккаунт postgres
В процессе установки был создан аккаунт пользователя с именем postgres, который был ассоциирован с ролью Postgres по умолчанию. Для использования Postgres мы можем осуществить вход с этим аккаунтом.
Переключимся на использование postgres аккаунта на вашем сервере этой командой:
Теперь вы можете получить доступ к командной строке Postgres напечатав команду:
После этого вы сможете войти и начать взаимодействовать с системой управления базами данных.
Для выхода из PostgreSQL напечатайте:
После этого вы должны увидеть стандартное приглашение командной строки Linux (Linux command prompt).
Доступ к командной строке Postgres без переключения аккаунтов
Вы также можете выполнять команды postgres напрямую с помощью sudo.
Например, выше мы хотели получить доступ к интерфейсу командной строки Postgres. Мы можем сделать это одной строкой, используя команду psql от имени пользователя postgres с sudo:
Это позволит вам войти в интерфейс командной строки Postgres без использования оболочки bash.
Для выхода из интерактивной сессии Postgres напечатайте:
Создание новой роли
На данный момент у нас есть всего одна роль postgres. Мы можем создавать новые роли используя команду createrole из командной строки. Флаг —interactive позволит сделать это в интерактивном режиме, когда система будет запрашивать необходимые значения у вас.
Если вы осуществили вход с помощью аккаунта postgres, вы можете создать нового пользователя напечатав команду:
Если вы предпочитаете использовать sudo перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:
- sudo -u postgres createuser —interactive
Этот скрипт задаст вам несколько вопросов, и, в зависимости от ваших ответов, выполнит необходимые команды Postgres для создания желаемого аккаунта пользователя.
Вывод
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
Вы можете использовать дополнительные флаги при выполнении этой команды. Ознакомиться с полным списком флагов можно изучив страницу man:
Создание новой базы данных
Ещё одно допущение, которое делает Postgres, заключается в том, что для каждой роли, которая была использована для входа, необходимо создать базу данных с тем же именем, что и имя роли, к которой можно будет осуществлять доступ с помощью этой роли.
Поэтому для созданного нами ранее пользователя с именем sammy соответствующая роль будет по умолчанию пытаться соединиться с базой данных sammy. Вы можете создать эту базу данных с помощью команды createdb.
Если вы вошли с использованием аккаунта postgres, вам необходимо ввести нечто такое:
Если вы предпочитаете использовать sudo перед вашими командами и не переключаться между пользователями, вы можете сделать это следующим образом:
- sudo -u postgres createdb sammy
Запуск командной строки Postgres с новой ролью
Для использования идентичной аутентификации (ident authentication) вам необходимо иметь пользователя Linux с тем же именем, что и имя роли и базы данных Postgres.
Если у вас нет такого пользователя, вы можете создать его с помощью команды adduser. Для этого вам потребуется аккаунт с привилегиями sudo (вы не сможете использовать для этого пользователя postgres):
После создания пользователя вы можете сменить пользователя и зайти в Postgres командами:
Или вы можете сделать это следующим образом:
Вы автоматически войдёте в Postgres, если все компоненты были сконфигурированы правильным образом (как описано выше).
Если вы хотите войти в другую базу данных, вы можете указать имя базы данных в явном виде:
После осуществления входа вы можете проверить информацию о текущем подключении командой:
Вывод
You are connected to database «sammy» as user «sammy» via socket in «/var/run/postgresql» at port «5432».
Эта информация может быть полезна при подключении к базам данных и с использованием пользователей, отличных от созданных по умолчанию.
Создание и удаление таблиц
Теперь, когда вы знаете, как осуществлять доступ к СУБД Postgres, мы можем кратко рассмотреть вопрос выполнения некоторых распространённых задач в Postgres.
Для начала создадим таблицу для хранения данных. Давайте создадим таблицу, которая описывает параметры инвентаря детской площадки.
Базовый синтаксис для этой команды выглядит примерно так:
CREATE TABLE table_name ( column_name1 col_type (field_length) column_constraints, column_name2 col_type (field_length), column_name3 col_type (field_length)
);
Как видно из этого примера, вы задаём имя таблицы и затем определяем необходимые столбцы, их тип и максимальную длину хранимых значений. Мы также можем добавлять ограничения на значения в каждом из столбцов.
Вы можете более детально ознакомиться с процессом создания и управления таблицами Postgres в этой статье.
Для целей нашего примера мы создадим простую таблицу:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
install_date date
);
Мы создали таблицу для инвентаря детской площадки. Первый столбец содержит идентификатор инвентаря с типом serial. Это целочисленный тип данных с автоинкрементом. Мы задали этот столбец с параметром первичного ключа (primary key), что означает, что все значения должны быть ненулевыми и уникальными.
Для двух наших столбцов (equip_id и install_date) мы не задали максимальную длину значений. Некоторые типы столбцов не требует задания максимальной длины значения, потому что длина определяется типом данных в этом столбце.
Кроме того мы создали столбцы type и color, которые не могут быть пустыми. Мы также создали столбец location и настроили его таким образом, что его значение может принимать одно из восьми заданных значений. Последний столбец задаёт дату установки данной единицы инвентаря детской площадки.
Мы можем убедиться, что таблица создана, следующей командой:
Вывод
List of relations
Schema | Name | Type | Owner
———+————————-+———-+——-
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)
Наша таблица на месте, но помимо неё у нас теперь есть и нечто под названием playground_equip_id_seq с типом sequence. Это нечто представляет собой реализацию типа serial, который мы задали для столбца equip_id. Таким образом Postgres будет следить за следующим номером в последовательности идентификаторов, эта связь создаётся автоматически для столбцов данного типа.
Если вы хотите увидеть список только таблиц, без объектов-последовательностей, вы можете набрать следующую команду:
Вывод
List of relations
Schema | Name | Type | Owner
———+————+——-+——-
public | playground | table | sammy
(1 row)
Добавление, запрос и удаление данных из таблицы
Теперь, когда у нас есть таблица, мы можем добавить в неё данные.
Сначала добавим горку (slide) и качели (swing). Для того, чтобы это сделать, нам необходимо указать имя таблицы, названия столбцов, а также сами данные:
- 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');
При вводе данных необходимо иметь в виду некоторые наиболее распространённые ошибки. Прежде всего, названия столбцов должны быть указаны без кавычек, а данные для этих столбцов — с кавычками.
Также надо иметь в виду, что мы не указываем значения для столбца equip_id. Это значение будет задаваться автоматически при добавление новой записи в таблицу.
Мы можем просмотреть добавленные данные следующей командой:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date
———-+——-+———+————+—————
1 | slide | blue | south | 2014-04-28
2 | swing | yellow | northwest | 2010-08-16
(2 rows)
Как видно из этого консольного вывода, наше поле equip_id было успешно заполнено автоматически, а остальные поля также получили корректные значения.
Если горка на нашей детской площадке сломалась и нам необходимо её убрать, мы можем удалить эту запись из нашей базы следующей командой:
- DELETE FROM playground WHERE type = 'slide';
Теперь при просмотре содержимого таблицы мы увидим, что запись горки более в ней не представлена:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date
———-+——-+———+————+—————
2 | swing | yellow | northwest | 2010-08-16
(1 row)
Как добавлять и удалять столбцы из таблицы
При необходимости мы можем легко добавить дополнительные столбцы и после создания таблицы.
Для примера добавим в нашу таблицу столбец, содержащий информацию о дате последнего осмотра единицы инвентаря детской площадки:
- ALTER TABLE playground ADD last_maint date;
Теперь если мы выведем содержимое таблицы, мы увидим, что новый столбец был добавлен (но существующие записи не содержат никаких значений в этом столбце):
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date | last_maint
———-+——-+———+————+—————+————
2 | swing | yellow | northwest | 2010-08-16 |
(1 row)
Мы также легко можем и удалять столбцы. Например, если наш ремонтный отдел использует отдельный инструмент для отслеживания истории технического обслуживания инвентаря нашей площадки, мы можем удалить созданный ранее столбец следующим образом:
- ALTER TABLE playground DROP last_maint;
Как обновлять данные в таблице
Мы уже знаем, как добавлять записи в таблицу и как удалять их из таблицы. Теперь мы рассмотрим вопрос изменения существующих в таблице записей.
Вы можете обновлять значения существующих записей путём выборки необходимых записей и установки значений необходимых столбцов. Например, мы можем найти все записи для качелей (swing) и изменить их цвет на красный, потому что ранее мы покрасили все качели на нашей детской площадке в красный цвет:
- UPDATE playground SET color = 'red' WHERE type = 'swing';
Мы можем убедиться, что операция завершилась успешно, запросив содержимое таблицы:
- SELECT * FROM playground;
Вывод
equip_id | type | color | location | install_date
———-+——-+——-+————+—————
2 | swing | red | northwest | 2010-08-16
(1 row)
Как видите, теперь наши качели красного цвета.
Заключение
Теперь у вас есть установленный и настроенный PostgreSQL на вашем сервере с Ubuntu 16.04. Тем не менее, полученных нами знаний не достаточно для полноценной работы с Postgres. Мы рекомендуем ознакомиться с этими статьями о работе с данной СУБД:
Источник: https://www.digitalocean.com/community/tutorials/postgresql-ubuntu-16-04-ru