DEV Community

Erlan Akbaraliev
Erlan Akbaraliev

Posted on • Edited on

База данныз 4

  1. INSERT, добавление данных
  2. Constraints, ограничении
  3. DELETE, удаление данных
  4. UPDATE, обновление данных
  5. Импорт excel таблицу в базу данных

1. INSERT, добавление данных

INSERT - добавить

INSERT INTO карты (id, владелец) 
VALUES (1, 'Эрлан');

INSERT INTO станции (id, название, линия) VALUES
(1, 'Ала-Тоо', 'M1');

INSERT INTO оплаты (id, карта_id, станция_id, тип, сумма) VALUES
(1, 1, 1, 'вход', 0.10),
(2, 1, 4, 'выход', 0.10);
Enter fullscreen mode Exit fullscreen mode
INSERT INTO станции (id, название, линия) VALUES
(2, 'Дордой', 'M1'),
(3, 'Байтик', 'M2'),
(4, 'Московская', 'M2'),
(5, 'Асанбай', 'M1'),
(6, 'Фрунзе', 'M2');

Enter fullscreen mode Exit fullscreen mode

2. Constraints, ограничении

Когда мы создавали таблицу карты, мы указывали что id должны быть уникальными и не должны повторятся. Давайте постараемя добавить еще id=1, мы знаем что у нас в таблице есть карта с id 1.

INSERT INTO карты (id, владелец) 
VALUES (1, 'Эрлан');
Enter fullscreen mode Exit fullscreen mode

ОШИБКА: duplicate key value violates unique constraint "карты_pkey"
Key (id)=(1) already exists.

Ошибка: нарушено ограничение уникальности первичного ключа "карты_pkey"
Детали: ключ (id) = (1) уже существует в таблице.

Этот запрос тоже не сработает, так как мы указывали CHECK(тип IN ('вход', 'выход')) что данные столбца "тип" должны быть либо "вход" или "выход".

INSERT INTO оплаты (id, карта_id, станция_id, тип, сумма) VALUES
(1, 1, 1, 'входэээээ', 0.10),
(2, 1, 4, 'выходжжжжжж', 0.10)
Enter fullscreen mode Exit fullscreen mode

ОШИБКА: new row for relation "оплаты" violates check constraint "оплаты_тип_check"
Failing row contains (1, 1, 1, входэээээ, 2025-11-26 16:55:53.500332, 0.10).

Ошибка: новая строка для таблицы "оплаты" нарушает ограничение CHECK "оплаты_тип_check"
Подробности: проблемная строка содержит (1, 1, 1, входэээээ, 2025-11-26 16:55:53.500332, 0.10).

DELETE, удаление данных

Удалить все данные из таблицы оплаты.

DELETE FROM оплаты;
Enter fullscreen mode Exit fullscreen mode
DELETE FROM оплаты
WHERE тип='вход';
Enter fullscreen mode Exit fullscreen mode
INSERT INTO оплаты (id, карта_id, станция_id, тип, дата_время, сумма) VALUES
(3, 1, 1, 'вход', '2025-08-01 08:00:00', 0.10),
(4, 1, 4, 'выход', '2025-08-01 08:30:00', 0.10)

SELECT * FROM оплаты
WHERE дата_время>='2025-11-26'

DELETE FROM оплаты
WHERE дата_время='2025-08-01'
Enter fullscreen mode Exit fullscreen mode
DELETE FROM оплаты
WHERE карта_id=(
    SELECT id FROM карты
    WHERE владелец='Эрлан'
);
Enter fullscreen mode Exit fullscreen mode

4. UPDATE, обновление данных

UPDATE - обновить
SET - установить / присвоить

UPDATE карты
SET владелец='Эрдан'
WHERE владелец='Эрлан';
Enter fullscreen mode Exit fullscreen mode

Обновить таблицу карты так, чтобы для всех записей, где владелец равен 'Эрлан', установить значение владелец равным 'Эрдан'.


5. Импорт excel таблицу в базу данных

1. Подготовка файла Excel (Конвертация в CSV)
Pgadmin4 не умеет напрямую работать с excel файлами. Поэтому нужно сперва сохранить ваш excel файл как csv.
Файл->Сохранить как
Выберите тип файла csv.
excel таблица клиенты

2. Импорт данных через pgAdmin 4
2.1 Перед импортом csv файла, нужно сперва создать таблицу с нужными столбцами с нужными типами данных.

CREATE TABLE клиенты (
    id INTEGER,
    имя TEXT NOT NULL,
    год_рождения DATE,
    PRIMARY KEY (id)
);
Enter fullscreen mode Exit fullscreen mode

2.2

  • Кликните правой кнопкой мыши на таблицу клиенты
  • Выберите опцию Import/Export Data... (Импорт/Экспорт данных...) 2.3
  • В открывшемся окне настройте параметры:
  • Формат: csv
  • Кодировка: UTF8
  • Параметры: включить Заголовок

Top comments (0)