Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




ИЗМЕНЕНИЕ ДАННЫХ В БАЗЕ ДАННЫХ

Читайте также:
  1. I. Создание баз данных
  2. VI. Изменение зарплаты и занятости
  3. Автоматическая проверка типа данных
  4. Агрегирование данных при выборке
  5. Аморфные вещества и жидкие кристаллы. Изменение агрегатных состояний вещества
  6. Анализ данных.
  7. База метаданных информационного хранилища (репозиторий ИХ)
  8. Базы данных
  9. БАЗЫ ДАННЫХ МОДЕЛИРОВАНИЯ
  10. Базы данных. Общие сведения. Основные понятия баз данных

 

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)

 

 


<== предыдущая страница | следующая страница ==>
ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ SELECT ПАРАМЕТРА EXISTS | Представления VIEW

Дата добавления: 2014-08-04; просмотров: 354; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.