Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИО_СУ_ЛР_2.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
560 Кб
Скачать
☆

Связывание таблиц с помощью конструкции foreign key

Для указания внешнего ключа таблицы нужно добавить конструкцию FOREIGN KEY в конструкцию CREATE TABLE:

FOREIGN KEY <имя внешнего ключа> REFERENCES <таблица первичного ключа>

ON UPDATE <операция обновления>

ON DELETE <операция удаления>

Имена столбцов внешних ключей указываются после ключевых слов FOREIGN KEY. В конструкции REFERENCES содержится имя таблицы того первичного ключа, на который производится ссылка. Если столбцы первичного ключа заданы в конструкции PRIMARY KEY своей таблицы, нет необходимости перечислять их имена. Если же имена столбцов не являются частью конструкции PRIMARY KEY, необходимо перечислить столбцы первичного ключа в конструкции REFERENCES.

Тогда создание таблицы PRODUCT с помощью запроса будет выглядеть следующим образом:

CREATE TABLE PRODUCT

(

SERIAL_NUMB INTEGER IDENTITY(1,1),

MODEL_NUMB INTEGER NOT NULL,

DATE_MANUFACTURED DATETIME NOT NULL,

STATUS_CODE INTEGER NOT NULL,

DATE_SHIPPED DATETIME NOT NULL,

ORDER_NUMB INTEGER NOT NULL,

PRIMARY KEY (SERIAL_NUMB),

FOREIGN KEY (MODEL_NUMB) REFERENCES MODEL

ON UPDATE CASCADE

ON DELETE CASCADE,

);

3.3 Работа с таблицами Заполнение таблиц

Теперь рассмотрим операцию заполнения таблиц начальными данными.

Для начала заполним таблицу PRODUCT. Для заполнения этой таблицы в обозревателе объектов щёлкните правой кнопкой мыши по таблице PRODUCT и в появившемся меню выберите пункт Изменить первые 200 строк. В рабочей области Microsoft SQL Server Management Studio проявится окно заполнения таблиц. Таблицы заполняются аналогично Microsoft Excel.

В SQL Server 2008 заполнение таблиц производится при помощи следующей команды:

INSERT <Имя таблицы> (<Список полей>)

VALUES (<Значения полей>)

  • <Имя таблицы> – таблица, куда вводим данные;

  • <Список полей> – список полей, куда вводим данные, если не указываем, то подразумевается заполнение всех полей, в списке полей поля указываются через запятую;

  • <Значения полей> – значение полей через запятую.

Пример:

INSERT INTO MODEL

(

MODEL_DESCRIPTION,

SUGGESTED_RETAIL_PRICE,

SHIPPING_WEIGHT,

TIME_TO_MANUFACTURE

)

VALUES

(

'Вседорожник',

124.95,

320.00,

65

)

В качестве значений можно указать к константу DEFAULT, то есть будет поставлено значение по умолчанию, либо можно подставить оператор SELECT.

Удаление отдельных столбцов и отдельных строк из таблицы

Из таблицы можно удалить все столбцы, либо отдельные записи. Это осуществляется командой

DELETE <Имя таблицы>

WHERE <Условие>

Если условие указано то удаляются записи поля которых соответствуют условию.

Пример: Удалить записи из таблицы MODEL, у которых значение поля SUGGESTED_RETAIL_PRICE > 200.

DELETE MODEL

WHERE SUGGESTED_RETAIL_PRICE > 200

Изменение данных в таблице

Для этого используется следующая команда:

UPDATE <Имя таблицы>

SET

<Имя поля1> = <Выражение1>,

[<Имя поля2> = <Выражение2>,]

…

[WHERE <Условие>]

  • <Имя поля1>, <Имя поля2> - имена изменяемых полей,

  • <Выражение1>, <Выражение2> - либо конкретные значения, либо NULL, либо операторы SELECT. Здесь SELECT применяется как функция.

  • <Условие> – условие, которым должны соответствовать записи, поля которых изменяем.

Пример: В таблице MODEL у модели с названием «Классический родстер» изменить цену с 189.99 на 209.99

UPDATE MODEL

SET SUGGESTED_RETAIL_PRICE = 209.99

WHERE MODEL_DESCRIPTION = 'Классический родстер'