Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать
    1. Добавление данных

Для добавления данных в SQL применяется инструкция INSERT. Чаще всего её используют для вставки в таблицу отдельных записей. Инструкция выглядит следующим образом:

Insert into имя_таблицы

Values (значение 1, значение 2, …)

После ключевого слова VALUES указывается список значений, которые будут добавлены в таблицу. Значения вставляются в столбцы в порядке расположения столбцов в таблице. Вставка данных в столбец счетчика (с признаком IDENTITY) по умолчанию невозможна, в инструкции SQL это поле пропускается.

Например, для добавления новой группы в таблицу «Genres» (GenreID, GenreName, GenreHistory):

INSERT INTO Genres

Values ('Комиксы', 'Не знаю, какая у них история');

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

INSERT INTO Genres (GenreName, GenreHistory)

Values ('Комиксы', 'Не знаю, какая у них история');

INSERT INTO Genres (GenreName)

Values ('Комиксы');

В столбцы, для которых значение не указано, будет добавлено значение NULL.

Команду INSERT можно также использовать для перемещения данных из одной таблицы в другую. Для этого предложение VALUES нужно заменить запросом SELECT. Таблицы должны быть идентичными – иметь равное количество столбцов с одинаковыми типами данных. Например, можно записать все жанры из таблицы Genres в Genres1. Код жанра (поле IDENTITY) проставляется автоматически.

INSERT INTO Genres1

SELECT GenreName, GenreHistory

FROM Genres;

Добавить записи обо всех читателях г. Ступино из таблицы Readers в таблицу Readers1.

INSERT INTO Readers1 (ReaderName, ReaderSurname, Passport, CityID)

SELECT ReaderName, ReaderSurname, Passport, c.CityID

FROM Readers r INNER JOIN Cities c ON r.CityID = c.CityID

WHERE CityName = 'Ступино';

    1. Удаление данных

Для добавления данных в SQL применяется инструкция DELETE. Удаляются не отдельные поля, а строки целиком.

DELETE FROM Books; - удалить все записи о книгах.

Если требуется удалить определенные записи, это можно указать в разделе WHERE.

DELETE FROM Books

WHERE BookName = 'Мертвые души';

Если необходимо удалить записи по признаку, информация о котором хранится в другой таблице, строится подзапрос в разделе WHERE. Например, удалить записи о книгах детективного жанра.

DELETE FROM Books

WHERE GenreID IN

(SELECT GenreID

FROM Genres

WHERE GenreName = 'Детектив');

Здесь запрос SELECT возвращает какое-то количество значений GenreID (те, для которых имя жанра – «Детектив»). После этого значение каждого поля GenreID из таблицы Books сравнивается по очереди со всеми значениями, полученными с помощью SELECT. Если значения совпадают, соответствующая запись удаляется из таблицы Books.

IN обозначает вхождение – входит ли GenreID в множество значений, которое вернет SELECT.

Если заранее известно, что SELECT способен вернуть только одну запись, вместо оператора IN можно использовать знак «=». В нашем случае книг-детективов может быть несколько.

Удалить из библиотеки книги Агаты Кристи

DELETE FROM Books

WHERE BookID IN

(SELECT BookID

FROM Authors a INNER JOIN AuthorShip ash ON a.AuthorID = ash.AuthorID

WHERE AuthorName = 'Агата' AND AuthorSurname = 'Кристи');

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]