Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
bazy_shpora.docx
Скачиваний:
9
Добавлен:
17.04.2019
Размер:
165.39 Кб
Скачать

44. Объединение

Для SQL это означает, что две таблицы можно объединять тогда и только тогда, когда:

  1. они имеют одинаковое число столбцов, например, m;

  2. для всех i (i = 1, 2, ..., m) i-й столбец первой таблицы и i-й столбец второй таблицы имеют в точности одинаковый тип данных.

Например, выдать названия продуктов, в которых нет жиров, либо входящих в состав блюда с кодом БЛ = 1:

SELECT Продукт

FROM Продукты

WHERE Жиры = 0

UNION

SELECT Продукт

FROM Состав

WHERE БЛ = 1

Из этого простого примера видно, что избыточные дубликаты всегда исключаются из результата UNION.

к оператору SELECT можно добавить условия WHERE , результат можно упорядочить ORDER BY Продукт

45. Предложение модификации данных DELETE.

Предложение DELETE имеет формат

DELETE

FROM SKLAD

[WHERE SKLAD_ID=4;];

и позволяет удалить содержимое всех строк указанной таблицы (при отсутствии WHERE фразы) или тех ее строк, которые выделяются WHERE фразой.

Удаление с вложенным подзапросом

DELETE

FROM Поставки

WHERE ПС IN

(SELECT ПС

FROM Поставщики

WHERE Город = 'Паневежис');

Удалить всю информацию из таблицы, но оставить её описание

DELETE FROM TOVАR,

TRUNCATE TABLE TOVAR;

46. INSERT

Предложение INSERT имеет один из следующих форматов:

INSERT

INTO имя_таблица [(столбец [,столбец] ...)]

VALUES ({константа | переменная} [,{константа | переменная}] ...);

или

INSERT

INTO имя_таблица [(столбец [,столбец] ...)]

подзапрос;

В первом формате в таблицу вставляется строка со значениями полей, указанными в перечне фразы VALUES (значения), причем i-е значение соответствует i-му столбцу в списке столбцов (столбцы, не указанные в списке, заполняются NULL-значениями). Если в списке VALUES фразы указаны все столбцы модифицируемой таблицы и порядок их перечисления соответствует порядку столбцов в описании таблицы, то список столбцов в фразе INTO можно опустить. Однако не советуем этого делать, так как при изменении описания таблицы (перестановка столбцов или изменение их числа) придется переписывать и INSERT предложение.

Во втором формате сначала выполняется подзапрос, т.е. по предложению SELECT в памяти формируется рабочая таблица, а потом строки рабочей таблицы загружаются в модифицируемую таблицу. При этом i-й столбец рабочей таблицы (i-й элемент списка SELECT) соответствует i-му столбцу в списке столбцов модифицируемой таблицы. Здесь также при выполнении указанных выше условий может быть опущен список столбцов фразы INTO.

вставка един. значения

при неизвестной пока трудоемкости приготовления этого блюда.

INSERT

INTO Блюда (БЛ, Блюдо, В, Основа, Выход)

VALUES (34, 'Шашлык', 'Г', 'Мясо', 150);

47. 46 Вопрос

несколько значений:

INSERT

INTO TOVAR

SELECT *

FROM TOVAR2

WHERE CODE NOT IN

(SELECT CODE

FROM TOVAR)

48. Проектирование БД с помощью CASE-средств.

ToadDateModeler

cм. вопросы 4, 9 ,13

49. UPDATE

Предложение UPDATE также имеет два формата. Первый из них:

UPDATE имя_таблицы

SET столбец = значение [, столбец = значение] ...

[WHERE фраза]

где значение – это столбец | выражение | константа | переменная

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

UPDATE имя_таблицы

SET столбец = значение [, столбец = значение] ...

FROM имя_таблицы [псевдоним],

имя_таблицы псевдоним]

[,имя_таблицы [псевдоним]] ...

[WHERE фраза]

UPDATE [Копия Фильм-Кинотеатр] SET [Копия Фильм-Кинотеатр].Цена = [Цена]*"1,5"

WHERE ((([Копия Фильм-Кинотеатр].idk)=5));

Обновление единственной записи

UPDATE Блюда

SET Блюдо = 'Форшмак', Выход = (Выход+30), Труд = NULL

WHERE БЛ = 5;

Обновление множества записей

UPDATE Поставки

SET Цена = Цена * 3

WHERE ПР <> 17;

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