Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
ИЗМЕНЕНИЕ ДАННЫХ В БАЗЕ ДАННЫХ
CREATE – создает таблицу ALTER SELECT – работает с готовыми таблицами, исполненными данными Итого три инструкции, которые позволяют изменять данные (работать с ними) в базе данных: INSERT работают с целыми комплектами DELETE UPDATE позволяют изменить значение
INSERT INSERT INTO <имя табл.> [(<имя атр.>, …)] VALUES (<знач.>, …) В таблицу добавляется картеж, записанный в строке VALUES. Если в строке INSERT указан список атрибутов, в который входят не все атрибуты, то список значений в строке VALUES должен быть согласован по количеству, порядку следования, при этом значение отсутствующих атрибутов формируется по умолчанию (NULL).
Пример: Нужно добавить картеж в таблицу. INSERT INTO S VALUES (‘S6’, ‘Стеклов‘, 20, ‘Орел’)
Пример: (Когда вводятся не все атрибуты). INSERT INTO P (Код дет., наим., город) VALUES (‘P7’, ‘кольцо‘ , ‘Тула‘) А атрибуты все и цвет формируются по умолчанию. Если при определении этой таблицы для этих атрибутов не сформировано значение по умолчанию, то устанавливается для них значение NULL. Если для цвет – NULL, то эта конструкция ошибочна. Картеж, описываемый в INSERT, уже существует в таблице, то вместо строки VALYES, используется запрос SELECT в существующей базе данных.
Пример: Нужно в таблицу поставок добавить всех поставщиков, которые проживают в городах, в которых производится деталь, без указания объема детали. INSERT INTO SP (код пост., код дет.) SELECT S. код пост., P. Код дет. FROM S, P WHERE S. город = P. Город Значение атрибута количество будет сформировано по умолчанию.
Пример: Если мы хотим создать таблицу с суммарным объемом поставок для каждого из поставщиков. INSERT INTO SM SELECT код пост., SUM (кол-во) FROM SP GROUP BY код пост.
Удаление таблицы: DELETE FROM <имя табл.> WHERE <предикат >
Пример: DELETE FROM SP
DROP SP - удаляется вся таблица SP, и с ней больше работать нельзя. ___________________ DELETE FROM SP WHERE кол. > 200
Следующая инструкция обновления UPDATE. Она обновляет только некоторые картежи.
Пример: Пусть требуется установить категории поставщиков в 30. UPDATE S SET катег. = 30
Пример: Надо повысить категорию поставщиков до 30, у которых она была равна 20. UPDATE S SEТ катег. = 30 WHERE катег. = 20
Пример: Нужно всех москвичей, у которых категория меньше 30 переселить в Томск и повысить до 30. UPDATE S SET катег. = 30, город =’Томск’ WHERE катег. < 30 AND город = ’Москва’
Пример: Нужно увеличить на 10 категорию всех поставщиков, проживающих не в Москве. UPDATE S SET катег. = катег. + 10 WHERE город < > ‘Москва’
В строке SET можно использовать и значение NULL, присваивая его какому-либо атрибуту.
Пример: Нужно всем (каким-либо) москвичам аннулировать категорию. UPDATE S SET катег.= NULL Это присваивание WHERE город < > ‘Москва’ Это отношение В этой инструкции может использоваться и подзапрос.
Пример: Пусть мы создаем таблицу, в которой хотим поместить всех поставщиков из Москвы. CREATE TABLE MS (Код пост. CHAR(2), - - - - - - - - - - - - - - - - -) ___________________ INSERT INTO MS SELECT * FROM S WHERE город = ‘Москва’
Пример: Пусть мы хотим копировать всех поставщиков, которые поставляют детали, которые создаются в Москве, но неважно, где они проживают.
INSERT INTO MS SELECT * FROM S WHERE код пост. IN (SELECT код пост. FROM SP WHERE код дет. IN (SELECT код дет. FROM P WHERE город = ‘Москва’))
Пример: Пусть нужно удалить все поставки деталей, которые производятся в Туле. ANY – любой. DELETE FROM SP WHERE код дет. = ANY (SELECT код дет. FROM P WHERE город = ‘Тула’)
Пример: Увеличить на 10 категорию всех поставщиков, имеющих более одной поставки. UPDATE S SET катег. = катег. + 10 WHERE 1< (SELECT COUNT (*) FROM SP WHERE S. код пост. = SP. Код пост.)
Ограничение: Нельзя ссылаться в строке FROM подзапроса на изменяемую таблицу команды обновления.
Пример: Нужно удалить всех поставщиков с категорией ниже среднего. DELETE FROM S WHERE Катег. < (SELECT AVG (Катег.) ТАК НЕЛЬЗЯ FROM S)
Дата добавления: 2014-08-04; просмотров: 354; Нарушение авторских прав Мы поможем в написании ваших работ! |