1 - Инфологическая и даталогическая модели, их реализация в PostgreSQL
2 - Запросы к базе данных "Учебный процесс"
3 - Функциональные зависимости и NF
- Скачиваем и устанавливаем DataGrip
- Создаем или открываем проект
- Слева нажимаем
+
, затемData Source - PostgreSQL
- Нажимаем
Download
внизу, если требуется, и вводим данные:
- User:
sXXXXXX
- Password: пароль из файла .pgpass (чтобы его получить подключитесь к гелиосу и пропишите cat .pgpass, там будет "*:*:*:sXXXXXX:пароль")
- Database:
studs
(илиucheb
, смотря какая вам нужна для лабы)
- Идем в раздел SSH/SSL, ставим галочку, где
Use SSH tunnel
и нажимаем на три точки справа
- Здесь нажимаем
+
, далее повторяем настройки:
- Host:
se.ifmo.ru
- Port:
2222
- Username
sXXXXXX
(XXXXXX - ИСУ) - Password: пароль с se.ifmo
- Нажмите
Test Connection
, если все верно, то вам выведется сообщение об успехе, нажимаемApply
иOK
- Возвращаемся на вкладку
General
, снизу тоже нажимаемTest Connection
, должно появиться сообщение об успехе, если так, то нажимаемApply
Теперь мы можем выполнять запросы
- Откройте консоль, нажав ПКМ по
studs
(илиucheb
), далееNew - Query Console
Сюда мы можем писать свои запросы, чтобы они выполнялись
- Тестируем на простых запросах
studs
CREATE TABLE test (
id BIGSERIAL PRIMARY KEY,
description TEXT NOT NULL UNIQUE
);
INSERT INTO test (description) VALUES
('test1'),
('test2');
SELECT * FROM test;
Чтобы выполнить запрос, переведите курсор на текст запроса (нажмите на него, должна появиться зеленая рамочка вокруг), а затем сверху нажмите на значок Execute (зеленый треугольник, Play), появится меню, где вы можете выбрать: выполнить только запрос в зеленой рамочке или все запросы в консоли
После выполнения запросов снизу появится результат:
* Чтобы удалить таблицу, можно прописать в консоли:
DROP TABLE test;
Или выбрать слева соответствующий пункт:
- Тестируем на простом запросе
ucheb
(можно просто поменять название БД в 4 пункте, также необходимо открыть новую консоль)
SELECT * FROM "Н_ЛЮДИ";
Успех!
Если вам по каким-то причинами удобнее работать на гелиосе, а не по методу описанному выше, то давайте разберемся
- Для начала создайте новый файл, у меня
test.sql
и наполните его каким-нибудь содержимым (или создайте новый файл прямо на гелиосе, переходите сразу к пункту 3). Например:
CREATE TABLE test (
id BIGSERIAL PRIMARY KEY,
description TEXT NOT NULL UNIQUE
);
INSERT INTO test (description) VALUES
('test1'),
('test2');
SELECT * FROM test;
Закиньте файл с запросом на Helios, находясь в директории, где он лежит
scp -P 2222 test.sql sXXXXXX@helios.cs.ifmo.ru:~/
- Поключитель к Helios
ssh sXXXXXX@helios.cs.ifmo.ru -p 2222
- Создайте файл с запросом (если вы решили не выполнять 1-2 пункты, иначе пропустите этот пункт)
- Создайте новый файл:
touch test.sql
- Откройте редактор:
vi test.sql
- Впишите сюда содержимое запроса, например, из 1 пункта (чтобы начать писать в виме, нажмите клавишу
i
) - Чтобы сохранить файл и выйти из редактора, надо нажать
Esc
и набрать:wq
(иногда требуется поставить ! в конце),Enter
. Если вы хотите выйти без сохранения наберите:q!
- Пропишите
psql -h pg -d studs
или
psql -h pg -d ucheb
Смотря какая лаба
- Основные команды:
\i test.sql
- выполнить запросы из файла\d
- посмотреть все существующие таблицы и тд.\h
- посмотреть справку по SQL операторам\?
- посмотреть справку по другим командам\q
- выйти из psql