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

DELETE

FROM Поставки

WHERE ПС IN

(SELECT ПС

FROM Поставщики

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

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

DELETE FROM TOVАR,

TRUNCATE TABLE TOVAR;

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);

Вопрос

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

INSERT

INTO TOVAR

SELECT *

FROM TOVAR2

WHERE CODE NOT IN

(SELECT CODE

FROM TOVAR)

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

ToadDateModeler

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

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;

Вопрос 49

Обновление с подзапросом

UPDATE ПоставкиSET Цена = 0, К_во = 0WHERE ПС IN (SELECT ПС FROM Поставщики WHERE Город IN ('Паневежис', 'Резекне'));

Обновление нескольких таблиц

UPDATE Поставки UPDATE НаличиеSET ПР = 20 SET ПР = 20WHERE ПР = 13; WHERE ПР = 13;

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

Создание и уничтожение таблиц

CREATE TABLE базовая_таблица (столбец тип_данных [NOT NULL]

[,столбец тип_данных [NOT NULL]] ...);

[, первичный ключ]

[ , внешний ключ и его характеристики];

CREATE TABLE STUDENT (SNUM SMALLINT NOT NULL UNIQUE,

NAME CHAR(20) NOT NULL,

FNAME CHAR(20),

DOB DATE,

SGROUP CHAR, …

PRIMARY KEY(SNUM),

FOREIGN KEY (SGROUP)

REFERENCE GROUP); - желательно по столбцу группы

Если первичный ключ составной - PRIMARY KEY(SNUM, LNAME),

DROP TABLE имя_таблицы - удаляет описание таблицы и её данные

Модификация данных в таблице

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

2 режима: add, modify

modify – изменение свойств таблицы

ALTER TABLE STUDENT MODIFY (FNAME CHAR(50));

ADD – добавление нового атрибута

ALTER TABLE STUDENT ADD (PASP CHAR(50));

Удаление столбцов