Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7_БД.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
428.03 Кб
Скачать

Команда update

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

Общий вид команды:

Update имя_таблицы set столбец1=значение [, столбец2=значение …]

[where условие_отбора_строк]

Например:

Прибавим всем студентам по одному баллу к каждой оценке

Update marks set mark= mark+1

При выполнении команды Update автоматически проверяются все ограничения столбца. В приведенном примере столбец mark имеет ограничение CHECK, которое задает диапазон оценок от 2 до 5. Следовательно, если в таблице имеется хотя бы одно значение оценки, равное 5, при увеличении на единицу оно выйдет за пределы диапазона, а все действия, выполненные командой, будут отменены.

Чтобы гарантированно увеличить все оценки, кроме пятерок, изменим команду:

Update marks set mark= mark+1

Where mark<5

Команда delete

Общий вид команды:

DELETE FROM имя_таблицы

[WHERE условие_отбора_строк_для_удаления]

Например:

Удалить всех студентов с фамилией Иванов

DELETE FROM students

WHERE name_st=’Иванов’

Более подробно фраза WHERE будет рассмотрена в следуюшем разделе при изучении команды выборки.

Полностью очистить таблицу students

DELETE FROM students

Нельзя удалить строку родительской таблицы, если есть связанные строки в подчиненной таблице и действует правило обеспечения ссылочной целостности ON DELETE RESTRICT. В приведенных выше примерах при определении внешнего ключа cod_st в таблице marks (оценки) было определено правило ON DELETE CASCADE, поэтому вместе со студентами будут каскадом удалены и все их оценки. Последняя команда, таким образом, очистит сразу две таблицы – students и marks.

Зато команда

DELETE FROM subjects

не удалит ничего, если в таблице marks имеется хотя бы одна строка, поскольку при возникновении ошибки будут автоматически отклонены все изменения, сделанные этой командой. Если на момент выполнения этой команды таблица оценок была пуста, таблица предметов будет благополучно очищена.

Надо заметить, что для полной очистки таблицы существует более эффективная команда

TRUNCATE TABLE имя_таблицы

Например:

TRUNCATE TABLE marks

Команда выборки данных (select)

Команда выборки SELECT является одной из самых мощных команд языка SQL, которая реализует все операции реляционной алгебры и некоторые предложения реляционного исчисления. Результатом команды выборки всегда является новая таблица (возможно, пустая или содержащая одно значение, которое трактуется как таблица из одной строки и одного столбца).

Новая таблица является виртуальной, т.е. она существует (обычно в оперативной памяти) до тех пор, пока в ней есть необходимость, она может участвовать в другой команде SQL (CREATE для различных объектов БД, INSERT), в другой команде SELECT (а также DELETE или UPDATE) как результат вложенного запроса или передается клиенту для последующей обработки.

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

Синтаксис команды, с учетом всех ее нюансов, является громоздким, поэтому приведем лишь общий порядок следования основных предложений (фраз):

SELECT [DISTINCT] список_выражений(* - все столбцы таблицы)

FROM список_таблиц, представлений, запросов

(возможно, с операцией соединения JOIN)

[WHERE условия_отбора_строк]

[GROUP BY список_выражений_для_группировки]

[HAVING условия_отбора_групп_с_агрегатными_функциями]

[ORDER BY список_выражений_для_сортировки]

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