Главная / Базы данных /
Основы SQL / Тест 9
Основы SQL - тест 9
Упражнение 1:
Номер 1
Даны две таблицы. Определить в них первичные ключи.
CREATE TABLE Автор
( Паспорт INT,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол CHAR(7),
Возраст INT ,
Телефон INT ) |
CREATE TABLE Книга
( Название VARCHAR(50),
Цена MONEY,
Тематика VARCHAR(50),
Издательство VARCHAR(50),
Количество INT) |
Ответ:
 (1)
ALTER TABLE Автор ALTER COLUMN Паспорт CHAR(12) NOT NULL
ALTER TABLE Автор ADD CONSTRAINT pk1 PRIMARY KEY (Паспорт)
ALTER TABLE Книга ADD УДК CHAR(10) NOT NULL
ALTER TABLE Книга ADD CONSTRAINT pk2 PRIMARY KEY (УДК)
 
 (2)
ALTER TABLE Автор ADD CONSTRAINT pk1 PRIMARY KEY (паспорт)
ALTER TABLE Книга ADD УДК CHAR(10) NOT NULL
ALTER TABLE Книга ADD CONSTRAINT pk2 PRIMARY KEY (УДК)
 
 (3)
ALTER TABLE Автор ADD CONSTRAINT pk1 PRIMARY KEY (Фамилия, Имя)
ALTER TABLE Книга ADD УДК CHAR(10) NOT NULL PRIMARY KEY
 
 (4)
ALTER TABLE Автор ALTER COLUMN паспорт INT NOT NULL PRIMARY KEY
ALTER TABLE Книга ADD УДК CHAR(10) PRIMARY KEY
 
Номер 2
Даны две таблицы. Определить в них первичные ключи.
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(20),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE Билет
(Номер_места INT,
Номер_рейса INT,
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(30)) |
Ответ:
 (1)
ALTER TABLE Рейс
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Рейс
ADD CONSTRAINT pk1 PRIMARY KEY (Номер_рейса)
ALTER TABLE Билет
ALTER COLUMN Номер_места INT NOT NULL
ALTER TABLE Билет
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Билет
ADD CONSTRAINT pk2 PRIMARY KEY (Номер_рейса, Номер_места) 
 (2)
ALTER TABLE Рейс
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Рейс
ADD CONSTRAINT pk1 PRIMARY KEY (Номер_рейса)
ALTER TABLE Билет
ALTER COLUMN Номер_места INT NOT NULL
ALTER TABLE Билет
ADD CONSTRAINT pk2 PRIMARY KEY (номер_места) 
 (3)
ALTER TABLE Рейс
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Рейс
ADD CONSTRAINT pk1 PRIMARY KEY (Номер_рейса)
ALTER TABLE Билет
ALTER COLUMN Номер_места INT NOT NULL
ALTER TABLE Билет
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Билет
ADD CONSTRAINT pk2 PRIMARY KEY (Номер_рейса)
ALTER TABLE Билет
ADD CONSTRAINT pk2 PRIMARY KEY (Номер_места) 
 (4)
ALTER TABLE Рейс
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Рейс
ADD PRIMARY KEY (Номер_рейса)
ALTER TABLE Билет
ALTER COLUMN Номер_места INT NOT NULL
ALTER TABLE Билет
ALTER COLUMN Номер_рейса INT NOT NULL
ALTER TABLE Билет
ADD PRIMARY KEY (Номер_рейса, Номер_места) 
Номер 3
Даны две таблицы. Определить в них первичные ключи.
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20),
Время_приготовления INT,
Общая_калорийность INT,
Повар VARCHAR(20),
Стоимость MONEY,
Тип_блюда VARCHAR(20)) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT,
Стоимость_компонента FLOAT ) |
Ответ:
 (1)
ALTER TABLE Блюдо
ALTER
COLUMN Название_блюда VARCHAR(20) NOT NULL
ALTER TABLE Блюдо
ADD CONSTRAINT pk1 PRIMARY KEY (
Название_блюда)
ALTER TABLE Компонент
ALTER
COLUMN Название_компонента VARCHAR(20) NOT NULL
ALTER TABLE Компонент
ADD CONSTRAINT pk2 PRIMARY KEY (
Название_компонента)  
 (2)
ALTER TABLE Блюдо
ALTER
COLUMN Название_блюда VARCHAR(20) NOT NULL
ALTER TABLE Блюдо
ADD PRIMARY KEY (Название_блюда)
ALTER TABLE Компонент
ALTER
COLUMN Название_компонента VARCHAR(20) NOT NULL
ALTER TABLE Компонент
ADD PRIMARY KEY (Название_компонента)  
 (3)
ALTER TABLE Блюдо
ADD PRIMARY KEY (Название_блюда)
ALTER TABLE Компонент
ALTER
COLUMN Название_компонента VARCHAR(20) NOT NULL
ALTER TABLE Компонент
ADD COLUMN Блюдо VARCHAR(20) NOT NULL
ALTER TABLE Компонент
ADD PRIMARY KEY (Название_компонента, Блюдо) 
Номер 4
Даны две таблицы. Определить в них первичные ключи.
CREATE TABLE Город
(Код_Города CHAR(5),
Название VARCHAR(20) NOT NULL UNIQUE,
Тариф MONEY) |
CREATE TABLE Разговор
(Дата DATETIME NOT NULL,
ВремяСуток VARCHAR(5),
Продолжительность INT NOT NULL) |
Ответ:
 (1)
ALTER TABLE Город
ALTER COLUMN Код_Города CHAR(5) NOT NULL
ALTER TABLE Город
ADD CONSTRAINT pk1 PRIMARY KEY (Код_Города)
ALTER TABLE Разговор
ADD Код_Разговора INT
ALTER TABLE Разговор
ALTER COLUMN Код_Разговора INT NOT NULL
ALTER TABLE Разговор
ADD CONSTRAINT pk2 PRIMARY KEY (Код_Разговора) 
 (2)
ALTER TABLE Город
ADD CONSTRAINT pk1 PRIMARY KEY (Код_Города)
ALTER TABLE Разговор
ADD Код_Разговора INT NOT NULL
ALTER TABLE Разговор
ADD CONSTRAINT pk2 PRIMARY KEY (Код_Разговора) 
 (3)
ALTER TABLE Город
ADD CONSTRAINT pk1 PRIMARY KEY (Код_Города)
ALTER TABLE Разговор
ADD Код_Разговора INT NOT NULL PRIMARY KEY 
 (4)
ALTER TABLE Город
ALTER COLUMN Код_Города NOT NULL PRIMARY KEY
ALTER TABLE Разговор
ADD Код_Разговора INT(4) PRIMARY KEY 
Упражнение 2:
Номер 1
Даны таблицы Автор
и Книга
.
CREATE TABLE Автор
( Паспорт INT,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол CHAR(7),
Возраст INT ,
Телефон INT ) |
CREATE TABLE Книга
( Название VARCHAR(50),
Цена MONEY,
Тематика VARCHAR(50),
Издательство VARCHAR(50),
Количество INT) |
Между ними необходимо установить связь "один-ко-многим" (один автор - много книг) с учетом первичных ключей.
Ответ:
 (1)
ALTER TABLE Книга
ADD Автор CHAR(12)
ALTER TABLE Книга
ALTER COLUMN Автор CHAR(12) NOT NULL
ALTER TABLE Книга
ADD CONSTRAINT fk_Книга FOREIGN KEY(Автор)
REFERENCES Автор(паспорт) 
 (2)
ALTER TABLE Книга
ADD Паспорт CHAR(12)
ALTER TABLE Книга
ADD FOREIGN KEY(Паспорт) REFERENCES Автор 
 (3)
ALTER TABLE Книга ADD Паспорт CHAR(12)
ALTER TABLE Автор
ADD FOREIGN KEY(Паспорт) REFERENCES Книга 
 (4)
ALTER TABLE Книга
ADD Автор CHAR(12) FOREIGN KEY REFERENCES Автор 
Номер 2
Даны таблицы Рейс
и Билет
.
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(20),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE Билет
(Номер_места INT,
Номер_рейса INT,
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(30)) |
Между ними необходимо установить связь "один-ко-многим" (один рейс - много мест) с учетом первичных ключей.
Ответ:
 (1)
ALTER TABLE Билет
ADD CONSTRAINT fk_Билет
FOREIGN KEY(номер_рейса) REFERENCES Рейс 
 (2)
ALTER TABLE Билет
ADD FOREIGN KEY(Номер_рейса) REFERENCES Рейс 
 (3)
ALTER TABLE Рейс
ADD FOREIGN KEY(Номер_рейса) REFERENCES Билет 
 (4)
ALTER TABLE Рейс
ADD Номер_места INT NOT NULL
FOREIGN KEY(Номер_места)
REFERENCES Билет 
Номер 3
Даны таблицы Блюдо
и Компонент
.
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20),
Время_приготовления INT,
Общая_калорийность INT,
Повар VARCHAR(20),
Стоимость MONEY,
Тип_блюда VARCHAR(20)) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT,
Стоимость_компонента FLOAT ) |
Между ними необходимо установить связь "один-ко-многим" (одно блюдо - много компонент) с учетом первичных ключей.
Ответ:
 (1)
ALTER TABLE Компонент
ADD Блюдо VARCHAR(20)
ALTER TABLE Компонент
ALTER COLUMN Блюдо VARCHAR(20) NOT NULL
ALTER TABLE Компонент
ADD CONSTRAINT fk_Компонент
FOREIGN KEY(Блюдо)
REFERENCES Блюдо(Название_блюда) 
 (2)
ALTER TABLE Компонент
ADD Название_блюда VARCHAR(20)
ALTER TABLE Компонент
ADD FOREIGN KEY(Название_блюда)
REFERENCES Блюдо 
 (3)
ALTER TABLE Компонент
ADD COLUMN Название_блюда VARCHAR(20) NOT NULL
ALTER TABLE Блюдо
ADD FOREIGN KEY(Название_компонента)
REFERENCES Компонент 
 (4)
ALTER TABLE Компонент
ADD COLUMN Название_блюда VARCHAR(20) FOREIGN KEY
REFERENCES Блюдо 
Номер 4
Даны таблицы Город
и Разговор
.
CREATE TABLE Город
(Код_Города CHAR(5),
Название VARCHAR(20) NOT NULL UNIQUE,
Тариф MONEY) |
CREATE TABLE Разговор
(Дата DATETIME NOT NULL,
ВремяСуток VARCHAR(5),
Продолжительность INT NOT NULL) |
Между ними необходимо установить связь "один-ко-многим" (один город - много разговоров) с учетом первичных ключей.
Ответ:
 (1)
ALTER TABLE Разговор ADD Код_Города CHAR(5)
ALTER TABLE Разговор
ALTER COLUMN Код_Города CHAR(5) NOT NULL
ALTER TABLE Разговор ADD CONSTRAINT fk_Разговор
FOREIGN KEY(Код_Города) REFERENCES Город 
 (2)
ALTER TABLE Разговор ADD Код_Города CHAR(5)
ALTER TABLE Разговор
ADD FOREIGN KEY(Код_Города)
REFERENCES Город(Код_Города) 
 (3)
ALTER TABLE Разговор ADD Название VARCHAR(20)
ALTER TABLE Город
ADD FOREIGN KEY(Название)
REFERENCES Разговор 
 (4)
ALTER TABLE Город
ADD номер_разговора INT NOT NULL FOREIGN KEY
REFERENCES Разговор 
Упражнение 3:
Номер 1
Даны таблицы Автор
и Книга
.
CREATE TABLE Автор
( Паспорт INT,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол CHAR(7),
Возраст INT ,
Телефон INT ) |
CREATE TABLE Книга
( Название VARCHAR(50),
Цена MONEY,
Тематика VARCHAR(50),
Издательство VARCHAR(50),
Количество INT) |
В таблице Книга
ограничить тематику заданным списком: роман, фантастика, поэзия.
Ответ:
 (1)
ALTER TABLE Книга
ADD CONSTRAINT ch1 CHECK(тематика IN (
'фантастика','роман','поэзия')) 
 (2)
ALTER TABLE Книга
ADD CHECK(тематика IN (
'фантастика','роман','поэзия')) 
 (3)
ALTER TABLE Книга
ALTER тематика VARCHAR(20) CHECK(тематика IN (
'фантастика','роман','поэзия')) 
Номер 2
Даны таблицы Рейс
и Билет
.
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(20),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE Билет
(Номер_места INT,
Номер_рейса INT,
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(30)) |
В таблице Рейс
ограничить конечный пункт заданным списком: Москва, Самара, Киев.
Ответ:
 (1)
ALTER TABLE Рейс
ADD CONSTRAINT ch1 CHECK(конечный_пункт IN (
'Москва','Самара','Киев')) 
 (2)
ALTER TABLE Рейс
ADD CHECK(конечный_пункт IN (
'Москва','Самара','Киев')) 
 (3)
ALTER TABLE Рейс
ALTER конечный_пункт VARCHAR(20) CHECK(
конечный_пункт IN ('Москва','Самара','Киев')) 
 (4)
ALTER TABLE Рейс
ADD CHECK((конечный_пункт ='Москва') OR
(конечный_пункт = 'Самара') OR (конечный_пункт = 'Киев')) 
Номер 3
Даны таблицы Блюдо
и Компонент
.
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20),
Время_приготовления INT,
Общая_калорийность INT,
Повар VARCHAR(20),
Стоимость MONEY,
Тип_блюда VARCHAR(20)) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT,
Стоимость_компонента FLOAT ) |
В таблице Блюдо
ограничить тип блюда заданным списком: десерт, выпечка, закуска.
Ответ:
 (1)
ALTER TABLE Блюдо
ADD CONSTRAINT ch1 CHECK(тип_блюда IN (
'десерт', 'выпечка', 'закуска')) 
 (2)
ALTER TABLE Блюдо
ADD CHECK(тип_блюда IN (
'десерт', 'выпечка', 'закуска')) 
 (3)
ALTER TABLE Блюдо
ALTER тип_блюда VARCHAR(20) CHECK(
тип_блюда IN ('десерт', 'выпечка', 'закуска')) 
 (4)
ALTER TABLE Блюдо
ADD CHECK((тип_блюда ='десерт') OR
(тип_блюда = 'закуска') OR (тип_блюда = 'выпечка')) 
Номер 4
Даны таблицы Город
и Разговор
.
CREATE TABLE Город
(Код_Города CHAR(5),
Название VARCHAR(20) NOT NULL UNIQUE,
Тариф MONEY) |
CREATE TABLE Разговор
(Дата DATETIME NOT NULL,
ВремяСуток VARCHAR(5),
Продолжительность INT NOT NULL) |
В таблице Разговор
значения поля ВремяСуток ограничить значениями из заданного списка: день, вечер, ночь, утро.
Ответ:
 (1)
ALTER TABLE Разговор
ADD CONSTRAINT ch1 CHECK(ВремяСуток IN (
'утро', 'день', 'вечер', 'ночь')) 
 (2)
ALTER TABLE Разговор
ADD CHECK(ВремяСуток IN (
'утро', 'день', 'вечер', 'ночь'))  
 (3)
ALTER TABLE Разговор
ALTER ВремяСуток VARCHAR(20) CHECK(
время_суток IN ('утро', 'день', 'вечер', 'ночь'))  
 (4)
ALTER TABLE Разговор
ADD CHECK(ВремяСуток ='утро' OR
'день' OR 'вечер' OR ‘ночь’)  
Упражнение 4:
Номер 1
Даны таблицы Автор
и Книга
.
CREATE TABLE Автор
( Паспорт INT,
Фамилия VARCHAR(50) NULL,
Имя VARCHAR(50) NULL,
Отчество VARCHAR(50) NULL,
Пол CHAR(7),
Возраст INT ,
Телефон INT ) |
CREATE TABLE Книга
( Название VARCHAR(50),
Цена MONEY,
Тематика VARCHAR(50),
Издательство VARCHAR(50),
Количество INT) |
Для поля Пол
таблицы Автор
создать и применить правило для ввода только значений «Мужской» и «Женский».
Ответ:
 (1)
CREATE RULE sex AS @p IN ('Мужской','Женский')
sp_bindrule 'sex', 'Автор.Пол' 
 (2)
CREATE RULE sex AS @p='Мужской' OR @p='Женский'
sp_bindrule 'sex', 'Автор.Пол' 
 (3)
CREATE RULE sex AS @p='Мужской' OR @p='Женский'
sp_bindrule 'sex', 'Пол' 
 (4)
CREATE RULE sex (Автор.Пол IN (
'Мужской','Женский'))
sp_bindrule 'sex', 'Автор.Пол' 
Номер 2
Даны таблицы Рейс
и Билет
.
CREATE TABLE Рейс
(Номер_рейса INT,
Конечный_пункт VARCHAR(20),
Дата_вылета DATETIME,
Продолжительность_маршрута INT,
Число_билетов INT,
Стоимость MONEY) |
CREATE TABLE Билет
(Номер_места INT,
Номер_рейса INT,
Дата_продажи DATETIME,
Стоимость MONEY,
Фамилия_пассажира VARCHAR(30)) |
Для полей Дата_продажи
таблицы Билет
и Дата_вылета
таблицы Рейс
создать и применить умолчание для ввода текущей даты.
Ответ:
 (1)
CREATE DEFAULT df1 AS GETDATE()
sp_bindefault 'df1', 'Билет.Дата_продажи'
sp_bindefault 'df1', 'Рейс.Дата_вылета' 
 (2)
CREATE DEFAULT df1 AS GETDATE()
sp_bindefault 'df1', 'Билет.Дата_продажи',
'Рейс.Дата_вылета' 
 (3)
CREATE Билет.Дата_продажи DEFAULT GETDATE()
CREATE Рейс.Дата_вылета DEFAULT GETDATE() 
 (4)
CREATE DEFAULT df1 AS GETDATE()
sp_bindefault 'df1',’Билет’, 'Дата_продажи'
sp_bindefault 'df1',’Рейс’, 'Дата_вылета' 
Номер 3
Даны таблицы Блюдо
и Компонент
.
CREATE TABLE Блюдо
(Название_блюда VARCHAR(20),
Время_приготовления INT,
Общая_калорийность INT,
Повар VARCHAR(20),
Стоимость MONEY,
Тип_блюда VARCHAR(20)) |
CREATE TABLE Компонент
(Название_компонента VARCHAR(20),
Калорийность INT,
Стоимость_компонента FLOAT ) |
Для полей Стоимость
в таблице Блюдо
и Стоимость_компонента
в таблице Компонент
создать и применить правило ввода значений больше 0
и меньше 100
.
Ответ:
 (1)
CREATE RULE r1 AS @p >0 AND @p<100
sp_bindrule 'r1', 'Блюдо.Стоимость'
sp_bindrule 'r1',
'Компонент.Стоимость_компонента' 
 (2)
CREATE RULE r1 AS @p BETWEEN 1 AND 99
sp_bindrule 'r1', 'Блюдо.Стоимость'
sp_bindrule 'r1',
'Компонент.Стоимость_компонента' 
 (3)
CREATE RULE r1 AS @p >0 AND @p<100
sp_bindrule 'r1', 'Блюдо’,’Стоимость'
sp_bindrule 'r1', 'Компонент’,
’Стоимость_компонента' 
 (4)
CREATE RULE r1 AS
Блюдо.Стоимость BETWEEN 1 AND 99
CREATE RULE r1 AS
Компонент.Стоимость_компонента BETWEEN 1 AND 99 
Номер 4
Даны таблицы Город
и Разговор
.
CREATE TABLE Город
(Код_Города CHAR(5),
Название VARCHAR(20) NOT NULL UNIQUE,
Тариф MONEY) |
CREATE TABLE Разговор
(Дата DATETIME NOT NULL,
ВремяСуток VARCHAR(5),
Продолжительность INT NOT NULL) |
Для поля Дата
таблицы Разговор
создать и применить умолчание для ввода текущей даты, ограничить дату разговора пределом от 01.01.2003 до 31.12.2006.
Ответ:
 (1)
CREATE DEFAULT df1 AS GETDATE()
sp_bindefault 'df1', 'Разговор.Дата'
CREATE RULE r1 AS @d >='1.01.2003' AND
@p<='31.12.2006'
sp_bindrule 'r1', 'Разговор.Дата' 
 (2)
ALTER TABLE Разговор ADD CHECK(
Дата>='1.01.2003' AND
<='31.12.2006' DEFAULT GETDATE()) 
 (3)
ALTER TABLE Разговор
ADD CHECK(Дата>='1.01.2003' AND <='31.12.2006')
ALTER TABLE Разговор
ADD DEFAULT Дата=GETDATE() 
 (4)
CREATE RULE r1 AS @d >='1.01.2003' AND
@p<='31.12.2006' DEFAULT AS GETDATE()
sp_bindrule 'r1', 'Разговор.Дата' 
Упражнение 5:
Номер 1
Даны таблицы Автор
и Книга
. Между ними необходимо установить связь "один-ко-многим" (один автор - много книг).
CREATE TABLE Автор
( Паспорт CHAR(20) PRIMARY KEY,
Фамилия VARCHAR(50),
Пол CHAR(3),
Телефон CHAR(12))
|
CREATE TABLE Книга
( УДК CHAR(20) PRIMARY KEY,
Название VARCHAR(50),
Цена MONEY,
Тематика VARCHAR(50),
Издательство VARCHAR(50),
Автор CHAR(20))
|
Ответ:
 (1)
ALTER TABLE Книга
ADD CONSTRAINT fk_Книга
FOREIGN KEY(Автор)
REFERENCES Автор(паспорт) 
 (2)
ALTER TABLE Книга
ADD FOREIGN KEY(Паспорт) REFERENCES Автор 
 (3)
ALTER TABLE Автор
ADD FOREIGN KEY(Паспорт) REFERENCES Книга 
 (4)
ALTER TABLE Книга
ADD FOREIGN KEY(Автор) REFERENCES Автор(Телефон) 
Номер 2
Даны таблицы Рейс
и Билет
. Между ними необходимо установить связь "один-ко-многим" (один рейс - много мест).
CREATE TABLE Рейс
(Номер_рейса INT PRIMARY KEY,
Номер_борта CHAR(5) UNIQUE,
Конечный_пункт VARCHAR(20),
Дата_вылета DATETIME)
|
CREATE TABLE Билет
(Номер_места INT,
Номер_рейса INT,
Дата_продажи DATETIME,
СтоимостьMONEY,
PRIMARY KEY(Номер_места, Номер_рейса))
|
Ответ:
 (1)
ALTER TABLE Билет
ADD CONSTRAINT fk_Билет
FOREIGN KEY(Номер_рейса) REFERENCES Рейс 
 (2)
ALTER TABLE Билет
ADD FOREIGN KEY(Номер_рейса)
REFERENCES Рейс(Номер_борта) 
 (3)
ALTER TABLE Рейс
ADD FOREIGN KEY(Номер_рейса) REFERENCES Билет 
 (4)
ALTER TABLE Рейс
FOREIGN KEY(Номер_места) REFERENCES Билет 
Номер 3
Даны таблицы Город
и Разговор
. Между ними необходимо установить связь "один-ко-многим" (один город - много разговоров)
CREATE TABLE Город
( Код_Города CHAR(5)PRIMARY KEY,
Название VARCHAR(20) NOT NULL UNIQUE,
Тариф MONEY)
|
CREATE TABLE Разговор
(НомерРазговора INT PRIMARY KEY,
Город CHAR(5),
Дата DATETIME,
Время_Суток VARCHAR(5),
Продолжительность INT NOT NULL)
|
Ответ:
 (1)
ALTER TABLE Разговор
ADD CONSTRAINT fk_Разговор
FOREIGN KEY(Город)
REFERENCES Город (Код_Города) 
 (2)
ALTER TABLE Разговор
ADD FOREIGN KEY(Город)
REFERENCES Город(Код_Города) 
 (3)
ALTER TABLE Разговор
ADD FOREIGN KEY(Город)
REFERENCES Город(Название) 
 (4)
ALTER TABLE Город
ADD FOREIGN KEY(Код_Города)
REFERENCES Разговор(Город) 
Упражнение 6:
Номер 1
В таблице Автор
ограничить поле Пол
заданным списком: м, ж, муж, жен.
Ответ:
 (1)
ALTER TABLE Автор
ADD CONSTRAINT ch1 CHECK(
пол IN ('м', 'ж', 'муж', 'жен')) 
 (2)
ALTER TABLE Автор
ADD CHECK(пол IN ('м', 'ж', 'муж', 'жен')) 
 (3)
ALTER TABLE Автор
ALTER пол VARCHAR(3) CHECK(
пол IN ('м','ж','муж','жен')) 
Номер 2
В таблице Билет
ограничить поле Номер_места
диапазоном от 0 до 250.
Ответ:
 (1)
ALTER TABLE Билет
ADD CONSTRAINT ch1 CHECK(
Номер_места Between 0 and 250) 
 (2)
ALTER TABLE Билет
ADD CHECK(Номер_места Between 0 and 250) 
 (3)
ALTER TABLE Билет
ALTER Номер_места INT CHECK(
Номер_места Between 0 and 250) 
Номер 3
В таблице Город
значения поля Тариф
ограничить диапазоном от 0.1 руб. до 7.8. Руб.
Ответ:
 (1)
ALTER TABLE Город
ADD CONSTRAINT ch1 CHECK(
Тариф Between 0.1 and 7.8) 
 (2)
ALTER TABLE Город
ADD CHECK(Тариф>=0.1 AND Тариф<=7.8) 
 (3)
ALTER TABLE Город
ALTER Тариф MONEY CHECK(Тариф >=0.1 AND
Тариф<=7.8) 
 (4)
ALTER TABLE Город
ADD CHECK(Тариф <=0.1 AND >=7.8)