SQL
January 12

Изменение данных - INSERT, UPDATE, DELETE

INSERT - Вставка данных

Для начала создадим новую таблицу:

CREATE TABLE band_my (
band_id INTEGER,
name VARCHAR,
year SMALLINT,
comment VARCHAR);

А затем добавим туда записи:

INSERT INTO band_my (band_id, name, year, comment)
VALUES (303, 'The Beatles', 1957, '')

Так же можно добавлять несколько записей за раз:

INSERT INTO band_my (band_id, name, year, comment)
VALUES 
(93, 'Metallica', 1981, ''),
(192, 'Queen', 1970, 'UK Rock')

Есть 3 типа добавления строк:

  1. Вставка одной или нескольких строк: INSERT INTO band_my (band_id, name, year, comment) VALUES (.....)
  2. Вставка с помощью SELECT и запроса из другой таблицы:
    INSERT INTO band_my(band_id, name, year, commnet) SELECT ........ FROM another_table
  3. Загрузка данных из внешних файлов:
    COPY band FROM '/tmp/band'
  4. Сделать вставку при создании таблицы:
    CREATE TABLE band AS SELECT ........... FROM another_table

UPDATE - Обновление данных

UPDATE band_my SET comment = 'Rock band' WHERE name = 'Metallica';

В предыдущем варианте UPDATE мы явно указывали новые значения колонок с помощью констант. Другой вариант указывать значения не в виде констант, а брать их из другой таблицы.

Допустим, есть таблица band_old, в которой те же самые музыкальные группы и мы хотим перенести значения колонок name и таблицы band_old в таблицу band_my.

UPDATE band_my as t
SET name = t2.name
FROM band_old as t2
WHERE t.band_id = t2.band_id

Было

Стало

DELETE - Удаление данных

DELETE - удаляет строки из таблицы

DELETE FROM band_my WHERE name = 'Metallica';