База ответов ИНТУИТ

Основы SQL - ответы

Количество вопросов - 369

В базе данных в таблице Блюдо необходимо хранить сведения о входящих в меню блюдах с указанием названия, времени приготовления, калорийности, стоимости, веса и фамилии повара. Для описания данных используются следующие поля:

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Вес FLOAT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость MONEY NOT NULL)

Определить поваров, которые на приготовление каждого из своих блюд тратят в среднем менее 10 мин, а общий вес блюд превосходит 500 г.

Дан фрагмент Java-программы для выборки данных из таблицы Блюдо, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();ResultSet rs=mySt.executeQuery("SELECT Название_блюда,    Калорийность FROM Блюдо ");while (rs.next())  {       String var1=rs.getString(1);       String var2=rs.getString(2);       String var3=rs.getString(3);...}

Указать правильные ответы.

Уменьшить на 50% продолжительность телефонных разговоров тех абонентов, которые за последний месяц сделали более 1000 звонков позволяет код:

Пусть в таблице Книга представлены записи, значения поля Код_Книги в которых равны 1, 3, 4, 7, 9 и 10. Создан курсор для вывода списка книг издательства «Мир».

DECLARE @n     VARCHAR(50),        @iz    VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список клиентов'DECLARE cursor1 CURSOR GLOBAL SCROLL KEYSET FOR   SELECT Название, Издательство, Цена   FROM Книга   WHERE Издательство=’Мир’OPEN cursor1SET @cur1=cursor1FETCH ABSOLUTE 3  FROM cursor1 INTO  @n, @iz, @p    DELETE Книга     WHERE CURRENT OF @cur1 FETCH RELATIVE -2 FROM cursor1 INTO  @n, @iz, @p    UPDATE Книга SET Цена=Цена*1.5    WHERE CURRENT OF cursor1    SELECT @message='Книга '+@n+'  Цена  '+         CAST(@p AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какие действия выполнит система?

Для определения количества пассажиров, вылетевших в заданный город в течение конкретного месяца, разработана процедура, в которой указаны значения параметров по умолчанию:

CREATE PROC my_proc3@c VARCHAR(20)=’Самара’,@m INT=4,@k INT=0 OUTPUTASSELECT @k=Count(Билет.Фамилия_пассажира)FROM Билет INNER JOIN Рейс ON Билет.Номер_рейса = Рейс.Номер_рейсаGROUP BY Рейс.Конечный_пункт, Month(Рейс.Дата_вылета)HAVING Рейс.Конечный_пункт=@c AND Month(Рейс.Дата_вылета)=@m

Укажите правильный вызов процедуры

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT INSERT, SELECT ON tab TO UserAWITH GRANT OPTIONGRANT INSERT ON tab TO UserCREVOKE INSERT ON tabTO UserA CASCADE GRANT SELECT, INSERT ON tab TO UserC  
6INSERT INTO tab(1,'aa')INSERT INTO tab(2,'bb')SELECT * FROM tabINSERT INTO tab(4,'bb')
7????

Даны таблицы Автор и Книга.

CREATE TABLE  Автор( Код_Автора INT ,  Фамилия  VARCHAR(50)  NULL)
CREATE TABLE Книга( Код_Книги      INT,  Название      VARCHAR(50) NOT NULL,  Цена          MONEY,  Издательство  VARCHAR(50) NOT NULL,  Код_Автора     INT NOT NULL,  Количество    INT)

Книги каких авторов были проданы на сумму, превышающую 10000 руб.?

Задание: Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVELREPEATABLE READ                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL SERIALIZABLE                  BEGIN TRANSACTION TRB                      2.SELECT * FROM Товар                                                      4.DELETE FROM Товар WHEREКод_Товара=4ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Дано представление.

CREATE VIEW view1ASSELECT Название_блюда, Калорийность, СтоимостьFROM БлюдоWHERE Тип_блюда=’Десерт’WITH CHECK OPTION

Предпринимается попытка выполнить команду вставки данных в представление.

INSERT INTO view1(Название_блюда, Калорийность, Стоимость)VALUES ('Торт Киевский',458,78.50)

Результатом выполнения команды (при отсутствии каких-либо ограничений при создании таблицы) является следующее:

Дан фрагмент сценария VBScript для выборки данных из таблицы Блюдо, расположенной в базе данных basa_user1 на SQL Server с именем its.

Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open "pwd=user1;driver={SQL Server}; server=its; database = basa_user1"rst.open "SELECT Название_блюда, Время_приготовления, Калорийность FROM Блюдо"do until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"loop

Указать правильные ответы.

Пусть дана таблица Автор.

ФамилияVARCHAR(50)
ПолCHAR(3)
Дата_рожденияDATETIME
ТелефонCHAR(9)
Количество_трудовINT
ГородVARCHAR(15)

 Найти города, в которых живут авторы, родившиеся не ранее 1982 года и издавшие более 10 книг.

В базе данных basa1 имеется таблица Город. Из базы данных basa2 необходимо выполнить действие по увеличению тарифов для всех городов на 15%. В какой базе данных должна быть создана процедура и как можно ее выполнить?

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL REPEATABLE READ                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар WHERE Код_Товара=1                            3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                   ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED                  BEGIN TRANSACTION TRB                      2.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                                              4.SELECT * FROM Товар ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие заблокирует?

Пусть дана таблица Рейс.

Номер_рейсаINT
Конечный_пунктCHAR(10)
Дата_вылетаDATETIME
Продолжительность_маршрутаINT
Число_билетовINT
СтоимостьMONEY

Вывести номера рейсов с датой отправления в города, в названии которых встречаются буквы "ц" или "х".

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%; для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME='D:\user\b1.mdf',SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME='D:\user\b2.mdf', SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME='E:\user\l1.ldf', SIZE=50MB, MAXSIZE=100, FILEGROWTH=10)

Выберите правильный ответ.

Дана таблица Билет с полями:

номер_места CHAR(3)
номер_рейса CHAR(6)
дата_продажи DATETIME
стоимость MONEY
фамилия_пассажира VARCHAR(20) NOT NULL

Увеличить на 10% стоимость билетов на рейсы 23-45 и 56-78.

Даны таблицы Город и Разговор. Между ними необходимо установить связь "один-ко-многим" (один город - много разговоров)

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)

Пусть дана таблица Блюдо с полями

Название_блюдаVARCHAR(20)
Время_приготовленияDATETIME
КалорийностьINT
ПоварVARCHAR(20)
СтоимостьMONEY

Определить повара, стоимость блюд которого не превышает 100 руб., а калорийность – 400 ккал.

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
123456789CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember'role1','UserB'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserADENY INSERT ON tab TO role1GRANT INSERT ON tab TO UserC  
10INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
11????

Дан фрагмент сценария VBScript для изменения и выборки данных из таблицы Рейс, расположенной в базе данных basa_user1 на SQL Server с именем its.

Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open " uid=user1;pwd=user1;driver={SQL Server}; server=its; database = basa_user1"cn.execute "UPDATE Рейс SET Дата_вылета=3.09.2003 WHERE номер_рейса=123”rst.open "SELECT Конечный_пункт, Дата_вылета, Продолжительность_маршрута FROM Рейс", cndo until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"   rst.movenextloop

Указать правильные ответы.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp   INT,            --номер вершины,                         --из которой дуга выходит     inp  INT)              --номер вершины,                         --в которую дуга входит 

Создать триггер, обрабатывающий вставку одной записи и запрещающий ввод дуги, если из соответствующей вершины уже выходят 3 дуги.

CREATE TRIGGER  trigON graph FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Определить конечный пункт, в который вылетело наименьшее число пассажиров.

Дан некоторый фрагмент SQL-кода:

DECLARE @a CHAR(12)DECLARE @b DATETIMEDECLARE @c INTSET @a=’12.2.04’SET @c=6

Укажите правильный оператор для вычисления новой даты:

Даны таблицы Город и Разговор. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление информации о некотором городе из таблицы Город. При этом в таблице Разговор необходимо для всех телефонных разговоров с удаленным городом в качестве значения поля Код_Города поставить значение 0.

CREATE TRIGGER  trig_delON Город FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Какое из следующих описаний типов является неправильным?

Даны таблицы

CREATE TABLE Город(Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить количество и общую продолжительность разговоров для каждого региона, с жителями городов которого вели телефонные переговоры абоненты, чьи фамилии начинаются на И.

Дано представление.

CREATE VIEWASSELECT Город.Название, Разговор.Фамилия, Разговор.ПродолжительностьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_Города;

Предпринимается попытка удалить из представления запись.

DELETE FROM VIEWWHERE Название='Самара' 

Результатом выполнения команды является следующее:

Пусть в таблице Рейс представлены записи, где значения поля Номер_рейса равны 1, 3 ,5 ,7 ,9. Создан курсор для печати списка рейсов до Москвы.

DECLARE @n     INT,        @k     VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список рейсов'DECLARE cursor1   CURSOR GLOBAL SCROLL DYNAMIC READ_ONLY FOR    SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт="Москва"OPEN cursor1SET @cur1=cursor1FETCH RELATIVE 3  FROM cursor1 INTO  @n, @p, @k    UPDATE Рейс SET Стоимость=Стоимость*1.5    WHERE CURRENT OF cursor1FETCH RELATIVE -2 FROM cursor1 INTO  @n, @p, @k    DELETE Рейс     WHERE CURRENT OF cursor1    SELECT @message='Рейс '+CAST(@n AS VARCHAR(20))+        '  Стоимость  '+ CAST(@p AS VARCHAR(4))CLOSE cursor1DEALLOCATE cursor1

Какие действия выполнит система?

Разработан курсор для создания списка книг, вышедших в издательстве "Мир".

DECLARE @n     VARCHAR(50),        @iz    VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список книг'DECLARE cursor1 CURSOR FOR   SELECT Название, Издательство, Цена   FROM Книга   WHERE Издательство="Мир"OPEN cursor1SET @cur1=cursor1FETCH NEXT FROM cursor1 INTO  @n, @iz, @pWHILE @@FETCH_STATUS=0BEGIN    SELECT @message='Книга '+@n+'        Цена  '+ CAST(@p AS VARCHAR(4))    PRINT @message-- переход к следующему клиенту--    FETCH NEXT FROM cursor1 INTO @n, @iz,@pENDCLOSE cursor1DEALLOCATE cursor1

Укажите правильные ответы.

Каковы основные функции СУБД?

Определите типы команд языка SQL.

Определите роль сервера в двухуровневой архитектуре «клиент-сервер».

Пусть номер паспорта состоит из 6 цифр, например: 321285. Укажите правильный тип данных для его описания.

Какие из следующих чисел можно внести в поле, описанное как DECIMAL(4,1)?

Какие из следующих описаний типов являются неправильными?

Дан некоторый фрагмент SQL-кода:

DECLARE @a CHAR(12)DECLARE @b DATETIMEDECLARE @c INTSET @a=’12.11.03’SET @b=’3.04.04’

Укажите правильные операторы для вычисления количества дней между датами:

Какие из следующих строк можно внести в поле, описанное как CHAR(4)?

Какие из следующих описаний типов являются правильными?

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\b1.mdf’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\l1.ldf’, SIZE=50MB, MAXSIZE=100, FILEGROWTH=10)

Выберите правильный ответ.

В базе данных в таблице Рейс необходимо хранить сведения о рейсах самолетов с указанием конечного пункта, даты вылета, продолжительности маршрута, количества мест в самолете и стоимости билета. Для описания данных используются следующие поля:

В таблицу Автор необходимо добавить сведения об ИНН автора и заменить поле Возраст на поле Дата рождения.

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%; для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\b1.mdf’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME=’D:\user\b2.mdf’, SIZE=10MB, MAXSIZE=200, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\l1.ldf’, SIZE=50MB, MAXSIZE=10, FILEGROWTH=10)

Выберите правильный ответ.

Создана таблица Автор. Изменить тип поля Телефон на символьный и заменить поле Возраст полем Дата_рождения.

  CREATE TABLE Автор (Фамилия  VARCHAR(50) NOT NULL,   Пол      CHAR(3),  Возраст  INT NOT NULL,  Телефон  INT )

Пусть дана таблица Автор с полями

ФамилияVARCHAR(50)
ПолCHAR(3)
Дата_рожденияDATETIME
ТелефонCHAR(9)
Количество_трудовINT
ГородVARCHAR(15)

Найти авторов, количество трудов которых превышает 10, но не больше 20.

Пусть дана таблица Рейс.

Номер_рейсаINT
Конечный_пунктCHAR(10)
Дата_вылетаDATETIME
Продолжительность_маршрутаINT
Число_билетовINT
СтоимостьMONEY

Вывести номера рейсов до Москвы с датой вылета не позднее 8 марта, но не ранее 1 марта.

Пусть дана таблица Автор.

ФамилияVARCHAR(50)
ПолCHAR(3)
Дата_рожденияDATETIME
ТелефонCHAR(9)
Количество_трудовINT
ГородVARCHAR(15)

Определить авторов, фамилии которых начинаются с буквы "Б" или "Г" и содержат слог "ор".

Пусть дана таблица Город.

Код_ГородаCHAR(5)
НазваниеVARCHAR(20)
ТарифMONEY
РегионVARCHAR(30)

Вывести регионы и города, стоимость минуты разговора с которыми либо меньше 20 руб., либо больше 100, а название города оканчивается на "-ов" или "-ин".

Дана таблица Город с полями

Код_ГородаCHAR(5)
НазваниеVARCHAR(20)
ТарифMONEY
Регион VARCHAR(30)

Найти города Поволжья или Урала, стоимость минуты телефонного разговора с которыми не меньше 2 руб. и не больше 10 руб.

Дана таблица Автор. Вывести в алфавитном порядке фамилии авторов из Самары, в телефонном номере которых на первом или третьем месте стоит цифра от 5 до 8, а последними являются цифры 7 и 8.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Вывести номера мест и дату продажи билетов на рейсы до Москвы.

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY)
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Вывести список городов, с которыми не зарегистрировано ни одного телефонного разговора.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL)

Найти авторов, работающих как с издательством «Мир», так и с издательством «АСТ».

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY)
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Найти абонентов, которые звонят в Москву, но ни разу не вели переговоры с Самарой.

Даны таблицы Автор и Книга

CREATE TABLE  Автор(Код_Автора   INT , Фамилия     VARCHAR(50), Пол         VARCHAR(50) NOT NULL )
CREATE TABLE Книга( Код_Книги INT,  Название  VARCHAR(50) NOT NULL,  Тематика  VARCHAR(50) NOT NULL,  Издательство  VARCHAR(50) NOT NULL,    Код_Автора INT NOT NULL)

Вывести список авторов, работающих в жанре "детектив".

Вывести список авторов-женщин, работающих в жанре романа, но не в жанре фантастики.
CREATE TABLE  Автор(Код_Автора   INT , Фамилия     VARCHAR(50), Пол         VARCHAR(50) NOT NULL )
CREATE TABLE Книга( Код_Книги INT,  Название  VARCHAR(50) NOT NULL,  Тематика  VARCHAR(50) NOT NULL,  Издательство  VARCHAR(50) NOT NULL,    Код_Автора INT NOT NULL)

Дана таблица

CREATE TABLE Книга( Код_Книги INT,  Название VARCHAR(50) NOT NULL,  Цена MONEY,   Тематика VARCHAR(50) NOT NULL,    Издательство VARCHAR(50) NOT NULL,    Код_Автора INT NOT NULL,  Количество INT)

Рассчитать общую стоимость тиража книг и 5% налог с продаж.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Вес FLOAT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость MONEY NOT NULL)

Для каждого повара определить количество используемых компонентов и их общую стоимость

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить фамилии абонентов, общее время разговоров которых менее 10 мин, а общая стоимость оказалась больше 100 руб.

Даны таблицы

CREATE  TABLE   Рейс(Номер_рейса  INT, Конечный_пункт  VARCHAR(30), Дата_вылета  DATETIME, Число_билетов  INT, Стоимость        MONEY)
CREATE  TABLE   БИЛЕТ(Номер_места  CHAR(3), Номер_рейса  CHAR(6),  Дата_продажи  DATETIME,  Стоимость        MONEY)

Рассчитать общую стоимость билетов для каждого рейса, 5% налог с продаж и доход от рейсов до Москвы.

На какую сумму были проданы билеты на рейс до Москвы в день вылета?

Даны таблицы

CREATE TABLE  Блюдо(Название_блюда VARCHAR(20)  NOT NULL, Время_приготовления  INT NOT NULL, Общая_калорийность INT NOT NULL,  Номер_рецепта INT, Повар VARCHAR(20), Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),  Калорийность INT NOT NULL,    Вес FLOAT,  Белки INT,  Блюдо VARCHAR(20),  Углеводы INT,  Стоимость MONEY NOT NULL)

Определить блюдо, которое можно приготовить быстрее всех остальных блюд.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Тип_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Вес FLOAT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость MONEY NOT NULL)

Определить, кто из поваров не готовит десерт.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL,Количество INT)

Определить авторов, написавших наибольшее количество книг.

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить город Поволжья, переговоры с которым ведутся наиболее часто.

Даны таблицы Рейс и Билет.

CREATE  TABLE   Рейс(Номер_рейса	INT, Конечный_пункт	 VARCHAR(30), Продолжительность_маршрута INT)
CREATE  TABLE   БИЛЕТ(Номер_места  CHAR(3), Номер_рейса  CHAR(6), Фамилия_пассажира VARCHAR(20))

Определить самый продолжительный рейс.

Пусть дана таблица Блюдо с полями

Название_блюдаVARCHAR(20)
Тип_блюдаVARCHAR(20)
Время_приготовленияINT
КалорийностьINT NOT NULL
ПоварVARCHAR(20)
СтоимостьMONEY NOT NULL

Укажите правильный оператор добавления записи.

Пусть дана таблица Блюдо с полями

Название_блюда VARCHAR(20)
Тип_блюда VARCHAR(20)
Время_приготовления INT
Калорийность INT NOT NULL
Повар VARCHAR(20)
Стоимость MONEY

Удалить сведения о блюдах, для которых не указаны имя повара или их стоимость.

Пусть дана таблица Блюдо с полями

Название_блюда VARCHAR(20)
Тип_блюда VARCHAR(20)
Время_приготовления INT
Калорийность INT NOT NULL
Повар VARCHAR(20)
Стоимость MONEY NOT NULL

Установить калорийность, равную 100 ккал, для блюд без указанной калорийности.

Даны таблицы

CREATE TABLE Город(Код_Города INT,Название VARCHAR(20) NOT NULL,Тариф MONEY)
CREATE TABLE Разговор(Код_Разговора INT,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Удалить информацию о городах, с которыми не было ни одного телефонного разговора.

Даны таблицы Город и Разговор. Удалить данные об абонентах, суммарная продолжительность телефонных разговоров которых оказалась меньше 10 мин.

CREATE TABLE Город ( Код_Города INT ,   Название   VARCHAR(20) NOT NULL,   Тариф      MONEY)
CREATE TABLE Разговор (Код_Разговора     INT,  Код_Города         INT NOT NULL,  Фамилия           VARCHAR(20),  Дата              DATETIME,  Продолжительность INT)

Даны две таблицы. Определить в них первичные ключи.

CREATE TABLE Город (Код_Города CHAR(5), Название  VARCHAR(20) NOT NULL UNIQUE,   Тариф     MONEY)
CREATE TABLE Разговор(Дата              DATETIME NOT NULL, ВремяСуток        VARCHAR(5),  Продолжительность INT NOT NULL)

Даны таблицы Блюдо и Компонент.

CREATE TABLE  Блюдо(Название_блюда       VARCHAR(20), Время_приготовления  INT, Общая_калорийность   INT,  Повар                VARCHAR(20), Стоимость            MONEY, Тип_блюда            VARCHAR(20))
CREATE TABLE Компонент(Название_компонента  VARCHAR(20), Калорийность         INT,    Стоимость_компонента FLOAT )  

Между ними необходимо установить связь "один-ко-многим" (одно блюдо - много компонент) с учетом первичных ключей.

Даны таблицы Блюдо и Компонент.

CREATE TABLE Блюдо(Название_блюда VARCHAR(20),Время_приготовления INT,Общая_калорийность INT,Повар VARCHAR(20),Стоимость MONEY,Тип_блюда VARCHAR(20))
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT,Стоимость_компонента FLOAT ) 

В таблице Блюдо ограничить тип блюда заданным списком: десерт, выпечка, закуска.

Даны таблицы Город и Разговор.

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.

Даны таблицы Рейс и Билет. Между ними необходимо установить связь "один-ко-многим" (один рейс - много мест).

CREATE  TABLE Рейс (Номер_рейса	INT PRIMARY KEY,  Номер_борта      CHAR(5) UNIQUE,  Конечный_пункт	VARCHAR(20),  Дата_вылета	DATETIME)
CREATE  TABLE   Билет(Номер_места	INT, Номер_рейса      INT, Дата_продажи	DATETIME, СтоимостьMONEY, PRIMARY KEY(Номер_места, Номер_рейса))

В таблице Город значения поля Тариф ограничить диапазоном от 0.1 руб. до 7.8. Руб.

Дано представление с вычислениями.

CREATE VIEW view2ASSELECT Название, Издательство, Цена, Цена*Количество AS СтоимостьFROM КнигаWHERE Цена>50

Предпринимается попытка изменить в представлении запись.

UPDATE view2 SET Цена=Цена*1.5WHERE Издательство='Мир'

Результатом выполнения команды является следующее:

Дано представление с данными из разных таблиц.

CREATE VIEW view3ASSELECT Книга.Название, Книга.Издательство, Автор.ФамилияFROM Автор INNER JOIN Книга ON Автор.Код_Автора = Книга.Код_Автора

Предпринимается попытка добавить в представление запись.

INSERT INTO view3(Название, Издательство, Фамилия)VALUES('Анна Каренина','Мир','Л.Толстой')

Результатом выполнения команды является следующее:

Дано представление с группировкой.

CREATE VIEW view4ASSELECT Регион, Avg(Тариф) AS Средн_ТарифFROM ГородGROUP BY РегионHAVING Регион=’Поволжье’

Предпринимается попытка удалить записи:

DELETE FROM view4WHERE Регион=’Урал’

Дано представление.

CREATE VIEW view2ASSELECT Номер_рейса, Стоимость, Стоимость*0.05 AS НалогFROM РейсWHERE Конечный_пункт=’Москва’ 

Предпринимается попытка изменить в представлении запись.

UPDATE view2 SET Стоимость = Стоимость *1.5WHERE Стоимость>100

Результатом выполнения команды является следующее:

Дано представление.

CREATE VIEW view5ASSELECT Билет.Номер_места, Билет.Номер_рейса, Рейс.Конечный_пунктFROM Билет INNER JOIN Рейс ON Билет.Номер_рейса = Рейс.Номер_рейса

Предпринимается попытка удалить из представления запись.

DELETE FROM view5WHERE Конечный_пункт ='Москва'

Результатом выполнения команды является следующее:

Разработана функция, определяющая по фамилии автора общий тираж книг.

CREATE FUNCTION user1.my_func1(@n VARCHAR(20))RETURNS INTASBEGIN  DECLARE @k INT  SET @k=(SELECT Sum(Книга.Количество)      FROM Автор INNER JOIN Книга       ON Автор.Код_Автора = Книга.Код_Автора      GROUP BY Автор.Фамилия      HAVING Автор.Фамилия=@n)  RETURN (@k)END

Определите операторы правильного обращения к функции.

Необходимо разработать функцию для получения списка тарифов на телефонные разговоры с городами Поволжья. Определите команду для ее вызова. Укажите правильный ответ.

Необходимо разработать функцию для получения списка книг указанного издательства, изданных тиражом не менее определенного числа. Функция создается командой:

Определите команду для вызова функции, создаваемой следующей командой:
CREATE FUNCTION user1.my_func3(@c VARCHAR(20),@d DATETIME)RETURNS TABLEASRETURN (SELECT Номер_рейса        FROM Рейс        WHERE Конечный_пункт=@c AND Дата_вылета=@d)

Необходимо разработать функцию для получения списка абонентов, звонивших в указанный город в заданный месяц. Функция создается командой:

Необходимо разработать функцию для получения списка абонентов, звонивших в указанный город в заданный месяц. Определите команду для ее вызова.

Создана процедура для увеличения на заданный % цены книг заданного издательства.

CREATE PROC my_proc1@p FLOAT,@iz VARCHAR(20)AS UPDATE Книга SET Цена =Цена*(1+@p)WHERE Издательство=@iz

Определите правильную команду для выполнения процедуры.

Для определения общей стоимости книг, изданных заданным автором в заданном издательстве, разработана процедура:

CREATE PROC my_proc2@f VARCHAR(20),@iz VARCHAR(20),@s FLOAT OUTPUTASSELECT @s=Sum(Книга.Цена*Книга.Количество) FROM Книга INNER JOIN Автор ON Книга.Код_Автора = Автор.Код_АвтораGROUP BY Автор.Фамилия, Книга.ИздательствоHAVING Автор.Фамилия=@f AND Книга.Издательство=@iz

Укажите правильный вызов процедуры

Для определения общей стоимости книг, изданных заданным автором в заданном издательстве, разработана процедура, в которой указаны значения параметров по умолчанию:

CREATE PROC my_proc3@f VARCHAR(20)=’Петров’,@iz VARCHAR(20)=’АСТ’,@s FLOAT=0.1 OUTPUTASSELECT @s=Sum(Книга.Цена*Книга.Количество) FROM Книга INNER JOIN Автор ON Книга.Код_Автора = Автор.Код_АвтораGROUP BY Автор.Фамилия, Книга.ИздательствоHAVING Автор.Фамилия=@f AND Книга.Издательство=@iz

Укажите правильный вызов процедуры

В базе данных basa1 имеется таблица Рейс. Из базы данных basa2 необходимо выполнить действие по увеличению стоимости билетов на все рейсы на 25%. В какой базе данных должна быть создана процедура и как можно ее выполнить?

Для определения количества книг, изданных указанным автором в заданном издательстве, разработана процедура, в которой определены значения параметров по умолчанию:

CREATE PROC my_proc@f VARCHAR(20)='Петров',@iz VARCHAR(20)='АСТ',@k INT=1 OUTPUTASSELECT @k=Sum(Книга.Количество) FROM Книга INNER JOIN Автор ON Книга.Код_Автора = Автор.Код_АвтораGROUP BY Автор.Фамилия, Книга.ИздательствоHAVING Автор.Фамилия=@f AND Книга.Издательство=@iz

Укажите правильный вызов процедуры

В базе данных basa1 имеется таблица Книга. Содержащуюся в ней информацию необходимо прочитать из базы данных basa2. В какой базе данных должна быть создана процедура, и как можно ее выполнить?

Разработан курсор для вывода списка десертов.

DECLARE @b     VARCHAR(50),        @t     VARCHAR(50),                @k     INT,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Меню'DECLARE cursor1 CURSOR FOR   SELECT Название_блюда, Калорийность, Тип_блюда   FROM Блюдо   WHERE Тип_блюда="Десерт"OPEN cursor1SET @cur1=cursor1WHILE @@FETCH_STATUS=0BEGIN    SELECT @message='Блюдо '+@b+    '  Калорийность '+ CAST(@k AS VARCHAR(4))    PRINT @message    FETCH NEXT FROM cursor1 INTO @t, @b, @kENDCLOSE cursor1DEALLOCATE cursor1

Укажите правильные ответы.

Разработана процедура, возвращающая список названий десертов.

CREATE PROC my_proc@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Название_блюда, Калорийность, Тип_блюда   FROM Блюдо   WHERE Тип_блюда="Десерт"

Вызов процедуры и вывод на печать названий блюд из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n VARCHAR(20)EXEC my_proc @cur=@my_cur OUTPUTOPEN @curWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Разработан курсор для печати списка номеров рейсов.

DECLARE @n     INT,        @k     VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список клиентов'DECLARE cursor1 CURSOR GLOBAL SCROLL STATIC FOR   SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт="Москва"OPEN cursor1SET @cur1=cursor1FETCH FIRST  FROM cursor1 INTO  @n, @p, @kFETCH ABSOLUTE 3 FROM cursor1 INTO  @n, @p, @kFETCH NEXT  FROM cursor1 INTO  @n, @p, @k    SELECT @message='Рейс '+CAST(@n AS VARCHAR(20))+    '  Стоимость  '+ CAST(@p AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какая из имеющихся в курсоре записей будет распечатана?

Пусть в таблице Книга представлены записи, где значения поля Код_Книги равны 1, 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 и 10. Создан курсор для вывода списка книг издательства "Мир".

DECLARE @n     VARCHAR(50),        @iz    VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список книг'DECLARE cursor1 CURSOR GLOBAL SCROLL KEYSET FOR   SELECT Название, Издательство, Цена   FROM Книга   WHERE Издательство="Мир"OPEN cursor1SET @cur1=cursor1FETCH ABSOLUTE 9  FROM cursor1 INTO  @n, @iz, @p    DELETE Книга     WHERE CURRENT OF @cur1 FETCH RELATIVE -2 FROM cursor1 INTO  @n, @iz, @p    UPDATE Книга SET Цена=Цена*1.5    WHERE CURRENT OF cursor1    SELECT @message='Книга '+@n+'  Цена  '+       CAST(@p AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какие действия выполнит система?

Разработана процедура, возвращающая номера рейсов до заданного пункта.

CREATE PROC my_proc@p VARCHAR(20),@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт=@pOPEN @cur

Вызов процедуры и вывод на печать номеров рейсов из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n INTEXEC my_proc @p='Москва',@cur=@my_cur OUTPUTWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Даны таблицы Блюдо и Компонент. Создать триггер, обрабатывающий вставку одной записи в таблицу Компонент. При этом в таблице Блюдо должна увеличиться стоимость соответствующего блюда.

CREATE TRIGGER  trig_insON Компонент FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Даны таблицы Блюдо и Компонент. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление информации о некотором блюде из таблицы Блюдо. При этом в таблице Компонент необходимо для всех компонентов удаленного блюда в качестве значения поля Название_блюда поставить значение NULL.

CREATE TRIGGER  trig_delON Блюдо FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Даны таблицы Блюдо и Компонент. Создать триггер, обрабатывающий изменение стоимости одного компонента в таблице Компонент. При этом в таблице Блюдо должна измениться стоимость соответствующего блюда.

CREATE TRIGGER  trig_updON Компонент FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Компонент. Разработать триггер, выполняющийся вместо изменения калорийности одного компонента. Выполнить изменение калорийности только в том случае, если общая калорийность блюда, в состав которого входит изменяемый компонент, не превышает 400 ккал.

CREATE TRIGGER  trig_upd  ON Компонент INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

Даны таблицы Книга и Автор. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление информации о некотором авторе из таблицы Автор. При этом необходимо запретить удаление, если общий тираж упомянутого автора больше 1000 экземпляров.

CREATE TRIGGER  trig_delON Автор FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Разговор. Разработать триггер, который выполняется вместо изменения продолжительности одного разговора. Выполнить изменение продолжительности только для тех абонентов, которые говорили с Москвой.

CREATE TRIGGER  trig_upd  ON Разговор INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для вставки новой записи, причем необходимо отменить ввод, если номер начального события оказался меньше номера хотя бы одного конечного события, введенного ранее.

CREATE TRIGGER  trig_insON Граф FOR INSERT AS

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для удаления работы, причем необходимо отменить удаление, если работа оказалась единственной, выходящей из данного события.

CREATE TRIGGER  trig_delON Граф FOR DELETE AS

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Если изменяется только номер конечного события и это изменение приводит к появлению параллельной работы, отменить изменение.

CREATE TRIGGER  trig_updON Граф FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp  INT,             --номер вершины,                         --из которой дуга выходит  inp   INT)             --номер вершины,                        -- в которую дуга входит 

Создать триггер, обрабатывающий вставку одной записи и запрещающий ввод параллельных дуг.

CREATE TRIGGER  trigON graph FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp   INT,            --номер вершины,                         --из которой дуга выходит     inp  INT)              --номер вершины,                         --в которую дуга входит 

Создать триггер, обрабатывающий удаление одной дуги, причем следует запретить удаление, если эта дуга единственная, выходящая из некоторой вершины.

CREATE TRIGGER  trigON graph FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANSAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)UPDATE Товар SET Название ='g' WHERE Код_Товара=3  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=4    UPDATE Товар SET Название ='m' WHERE Код_Товара=5    SAVE TRANSACTION  p3    UPDATE Товар SET Название ='k' WHERE Код_Товара=1    SAVE TRANSACTION  p4      DELETE FROM Товар       WHERE Код_Товара>1 AND Код_Товара<4    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',70)    DELETE FROM Товар WHERE Код_Товара=3COMMIT

После завершения транзакции в таблице Товар останутся товары с названиями:

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRAN AINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'v',40)   BEGIN TRAN B    INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'n',50)   UPDATE Товар SET Название =’k’ WHERE Код_Товара=1      BEGIN TRAN C       INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'm',60)ROLLBACK TRAN С UPDATE Товар SET Название =’m’ WHERE Код_Товара=2COMMITINSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'b',70)ROLLBACK TRAN

После завершения транзакции в таблице Товар останутся товары с кодами:

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVELSERIALIZABLE                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=3                                  ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATION LEVELREAD COMMITTED                  BEGIN TRANSACTION TRB                      2. INSERTТовар(Код_Товара,Название,остаток) VALUES (3,'SS',999)                                                              4.SELECT * FROM ТоварROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Задание: Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)SAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=4    SAVE TRANSACTION  p3    UPDATE Товар SET Название ='g' WHERE Код_Товара=2    SAVE TRANSACTION  p4      DELETE FROM Товар       WHERE Код_Товара<>1 AND Код_Товара<>4    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',70)    ROLLBACK TRANSACTION p1    DELETE FROM Товар WHERE Код_Товара=3COMMIT

После завершения транзакции в таблице Товар останутся записи о товарах с названиями:

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL SERIALIZABLE                                      1.BEGIN TRANSACTION TRA  SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                 ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATION LEVEL REPEATABLE READ                  2. BEGIN TRANSACTION TRBUPDATE Товар SET      остаток=остаток+10 WHERE Код_Товара=4                                                          4.DELETE FROM Товар WHERE Код_Товара=4ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие заблокирует?

В базе данных basa_user зарегистрировано два пользователя: UserA и UserB. Какие действия предпримет система?
Basa_user
АдминистраторUserAUserB
GRANT ALL TO UserACREATE TABLE tab(id_t INT PRIMARY KEY,  nam_t VARCHAR(20))GRANT SELECT ON tab TO UserB 
INSERT INTO userA.tab values(1,'aa')INSERT INTO tab values (2,'bb')SELECT * FROMtab
???

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345GRANT ALL TO UserACREATE TABLE tab(id_t INT, nam_t CHAR(8));GRANT INSERT ON tab TO UserBWITH GRANT OPTION;REVOKE INSERT ON tab TO UserB CASCADEGRANT INSERT ON UserA.tab TO UserC 
6INSERT INTO UserA.tab values(1,'aa')INSERT INTO UserA.tab values (2,'bb')INSERT INTO UserA.tab values (3,'сс')SELECT * FROM UserA.tab
7????

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
123456789CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember'role1','UserA'sp_addrolemember'role1','UserB'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONREVOKE INSERT ON tab TO role1GRANT INSERT ON tab TO UserC  
10INSERT INTO tabvalues(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
11????

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
1234CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT INSERT ON tab TO UserAGRANT INSERT ON tab TO UserB  
5INSERT INTO tab values (1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
6????

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserBREVOKE INSERT ON tab TO UserA CASCADE GRANT INSERT ON tab TO UserC 
9INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
10????

Дан фрагмент сценария VBScript для выборки данных из таблицы Автор, расположенной в базе данных basa_user1 на SQL Server с именем its.

Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open "pwd=user1;driver={SQL Server};  server=its; database = basa_user1"rst.open "SELECT Фамилия, Телефон FROM Автор", cndo until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"   rst.movenextloop

Указать правильные ответы.

Дан фрагмент Java-программы для выборки данных из таблицы Автор, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();ResultSet rs=mySt.executeQuery("SELECT Фамилия, Телефон,   Дата_рождения FROM Автор ");while (rs.next())  {       String var1=rs.getString(1);       String var2=rs.getString(2);       String var3=rs.getString(3);...}

Указать правильные ответы.

Дан фрагмент сценария VBScript для изменения данных в таблице Рейс.

prm1=Server.CreateObject("ADODB.Parameter")prm2=Server.CreateObject("ADODB.Parameter")cmd.CommandText = "update Рейс set Стоимость=? where Конечный_пункт=?"cmd.CommandType = adCmdTextcmd.Prepared = TrueSet prm1 = сmd.CreateParameter("p1", adVarChar, adParamInput,20 ,'Москва')Set prm2 = сmd.CreateParameter("p2", adInteger, adParamInput, ,231290.50)cmd.Parameters.Append prm1cmd.Parameters.Append prm2cmd.Execute

Указать правильные ответы.

Дан фрагмент Java-программы для изменения данных в таблице Город.

PreparedStatement mySt=Con.prepareStatement("update Город set Тариф=? where Название=?");mySt.setFloat(1, 4.50);mySt.setString(2,'Самара');int res=mySt.executeUpdate();

Указать правильные ответы.

Дан фрагмент сценария VBScript для удаления и выборки данных из таблицы Город в базе данных basa_user1 на SQL Server с именем its.

Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open "pwd=user1;driver={SQL Server}; server=its; database = basa_user1"rst.execute "DELETE FROM Город WHERE Код_Города=2134"rst.open "SELECT Код_Города, Название, Тариф FROM Город", cndo until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"   rst.movenextloop

Указать правильные ответы.

Дан фрагмент Java-программы для выборки данных из таблицы Город, расположенной в источнике данных с именем DSN=mystud.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();int res=mySt.execute("UPDATE Город  SET Код_Города=812   WHERE Код_Города=734");ResultSet rs=mySt.executeQuery("SELECT Код_Города,    Название, Тариф FROM Город ");while (rs.next())  {       int var1=rs.getInt(1);       String var2=rs.getString(2);       int var3=rs.getInt(3);...}
Указать правильный ответ.

Даны таблицы Книга и Автор. Создать триггер, обрабатывающий изменение количества книг в одной записи таблицы Книга. При этом в таблице Автор необходимо пересчитать общий тираж книг соответствующего автора.

CREATE TRIGGER  trig_updON Книга FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Дан фрагмент Java-программы для удаления и выборки данных из таблицы Автор, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();int res=mySt.executeUpdate("DELETE FROM Автор  WHERE Фамилия=’Иванов’");ResultSet rs=mySt.executeQuery("SELECT Фамилия,    Телефон, Дата_рождения FROM Автор ");while (rs.next())  {       String var1=rs.getString(1);       String var2=rs.getString(2);       String var3=rs.getString(3);...}

Указать правильные ответы.

Разработана процедура, возвращающая список телефонных тарифов городов Поволжья.

CREATE PROC my_proc@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Название, Тариф, Регион   FROM Город   WHERE Регион="Поволжье"OPEN @cur

Вызов процедуры и вывод на печать названий городов из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n VARCHAR(20)EXEC my_proc @cur=@my_cur OUTPUT  FETCH NEXT FROM @my_cur INTO @n  SELECT @nWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL READCOMMITTED                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL SERIALIZABLE                                      BEGIN TRANSACTION TRB                        2. INSERT Товар(Код_Товара,Название, остаток) VALUES (2,'SS',999)                                                                  4.SELECT * FROM ТоварROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Даны таблицы

CREATE TABLE  Автор(Код_Автора INT ,  Фамилия  VARCHAR(50)  NULL,   Имя  VARCHAR(50) NULL,  Отчество VARCHAR(50) NULL,  Пол VARCHAR(50) NOT NULL ,  Дата_рождения DATETIME ,  Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,  Название VARCHAR(50) NOT NULL,  Цена MONEY, Тематика VARCHAR(50) NOT NULL,    Издательство VARCHAR(50) NOT NULL,    Код_Автора INT NOT NULL,  Количество INT)

Определить автора самой дорогой книги.

Дан фрагмент Java-программы для выборки данных из таблицы Город, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();ResultSet rs=mySt.executeQuery("SELECT Код_Города, Название,      Тариф FROM Город ");while (rs.next())  {       int var1=rs.getInt(0);       String var2=rs.getInt(1);       int var3=rs.getInt(2);...}

Указать правильные ответы.

Разработан курсор для печати списка книг.

DECLARE @n     VARCHAR(50),        @iz    VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список книг'DECLARE cursor1 CURSOR GLOBAL SCROLL KEYSET FOR   SELECT Название, Издательство, Цена   FROM Книга   WHERE Издательство="Мир"OPEN cursor1SET @cur1=cursor1FETCH LAST  FROM cursor1 INTO  @n, @iz, @pFETCH ABSOLUTE 2 FROM cursor1 INTO  @n, @iz, @pFETCH RELATIVE -2 FROM cursor1 INTO  @n, @iz, @p    SELECT @message='Книга '+@n+'  Цена  '+     CAST(@p AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какая из имеющихся в курсоре записей будет распечатана?

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
123456789CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONREVOKE INSERT ON tab TO role1GRANT INSERT ON tab TO UserB  
10INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
11????

Назовите отличительные черты реляционных баз данных.

Необходимо разработать функцию для получения списка книг заданной тематики, изданных тиражом менее указанного числа. Определите команду для ее вызова.

Какое из следующих чисел можно внести в поле, описанное как NUMERIC(5,3)?

Какие из следующих описаний типов являются правильными?

В таблице Граф представлен график сетевого планирования:
CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Запретить одновременное изменение номеров начального и конечного событий и длительности.

CREATE TRIGGER  trig_updON Граф FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Даны таблицы

CREATE TABLE  Блюдо(Название_блюда VARCHAR(20)  NOT NULL, Время_приготовления  INT NOT NULL, Общая_калорийность INT NOT NULL,  Номер_рецепта INT, Повар VARCHAR(20), Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),  Калорийность INT NOT NULL,    Вес FLOAT,  Белки INT,  Блюдо VARCHAR(20),  Углеводы INT,  Стоимость MONEY NOT NULL)

Рассчитать общую стоимость и калорийность компонентов блюда.

Даны таблицы

CREATE TABLE Город(Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Рассчитать стоимость каждого разговора.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Определить количество проданных на каждый рейс билетов.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Вывести список городов, куда было продано не менее 200 билетов на сумму, превышающую 10000 руб.

Определить количество и общую продолжительность разговоров для каждого региона, с городами которого осуществляли телефонную связь абоненты, чьи фамилии содержат слог «-ва-».

Даны таблицы

CREATE TABLE Город ( Код_Города INT ,  Название VARCHAR(20) NOT NULL,    Тариф MONEY,  Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT, Код_Города INT NOT NULL, Фамилия IVARCHAR(20), Дата DATETIME NOT NULL,  Продолжительность INT NOT NULL)

Вывести список городов, телефонные тарифы которых выше среднего.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY) 
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Вывести список пассажиров, не летающих в Самару.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Вес FLOAT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость MONEY NOT NULL)

Определить самое калорийное блюдо.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY) 
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Определить пассажиров, реже других летающих в Москву.

Определить издательства, выручившие от продажи книг наименьшую сумму.

Пусть дана таблица Автор с полями

Фамилия VARCHAR(50)
Пол CHAR(3)
Дата_рождения DATETIME NOT NULL
Телефон CHAR(9)
Количество_трудов INT
Город VARCHAR(15)

Укажите правильный оператор добавления записи.

Дана таблица Билет с полями:

номер_местаCHAR(3)
номер_рейсаCHAR(6)
дата_продажиDATETIME
стоимостьMONEY
фамилия_пассажираVARCHAR(20) NOT NULL

Удалить данные о билетах, проданных за прошлый месяц.

Даны таблицы

CREATE TABLE  Блюдо(Название_блюда VARCHAR(20)  NOT NULL, Время_приготовления  INT NOT NULL, Общая_калорийность INT NOT NULL,  Номер_рецепта INT, Повар VARCHAR(20), Стоимость_блюда MONEY)
CREATE TABLE Компонент(Название_компонента VARCHAR(20),  Калорийность INT NOT NULL,    Жиры INT,  Белки INT,  Блюдо VARCHAR(20),  Углеводы INT,  Стоимость_компонента MONEY NOT NULL)

Удалить сведения о блюдах, стоимость которых меньше средней стоимости компонентов.

Даны таблицы Автор и Книга. Удалить сведения об авторах, издавших только одну книгу.

CREATE TABLE  Автор( Код_Автора INT ,  Фамилия  VARCHAR(50))
CREATE TABLE Книга( Код_Книги  INT,  Название   VARCHAR(50),  Цена       MONEY,  Код_Автора INT)

Даны две таблицы. Определить в них первичные ключи.

CREATE TABLE  Блюдо(Название_блюда  VARCHAR(20), Время_приготовления  INT, Общая_калорийность  INT, Повар  VARCHAR(20), Стоимость  MONEY, Тип_блюда  VARCHAR(20))
CREATE TABLE Компонент(Название_компонента  VARCHAR(20), Калорийность  INT,    Стоимость_компонента FLOAT ) 

Даны таблицы Автор и Книга.

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)

Между ними необходимо установить связь "один-ко-многим" (один автор - много книг) с учетом первичных ключей.

Даны таблицы Рейс и Билет.

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(20),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY)
CREATE TABLE Билет(Номер_места INT,Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(30))

В таблице Рейс ограничить конечный пункт заданным списком: Москва, Самара, Киев.

Даны таблицы Автор и Книга.

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)

Для поля Пол таблицы Автор создать и применить правило для ввода только значений «Мужской» и «Женский».

Даны таблицы Автор и Книга. Между ними необходимо установить связь "один-ко-многим" (один автор - много книг).

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

В таблице Билет ограничить поле Номер_места диапазоном от 0 до 250.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга(Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL,Количество INT)

На какую сумму были проданы книги каждого автора?

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL,Количество INT)

Определить авторов, не печатающих свои книги в издательстве «АСТ».

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL,Количество INT)

Определить авторов, общая стоимость книг которых, выпущенных издательством «Мир», составила наименьшую сумму.

Даны таблицы Автор и Книга.

CREATE TABLE  Автор( Код_Автора INT ,  Фамилия   VARCHAR(50))
CREATE TABLE Книга( Код_Книги     INT,  Название      VARCHAR(50) NOT NULL,  Цена          MONEY,  Издательство  VARCHAR(50) NOT NULL,  Код_Автора     INT NOT NULL,  Количество    INT)

Определить авторов, чьи какие-либо книги проданы в наименьшем количестве.

Пусть дана таблица Город с полями

Код_ГородаCHAR(5) NOT NULL
НазваниеVARCHAR(20)
РегионVARCHAR(30)
ТарифMONEY

Удалить сведения о городах, для которых не указаны регион и телефонный тариф.

Даны две таблицы. Определить в них первичные ключи.

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)

Даны таблицы Автор и Книга.

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)

В таблице Книга ограничить тематику заданным списком: роман, фантастика, поэзия.

Даны таблицы Блюдо и Компонент.

CREATE TABLE Блюдо(Название_блюда VARCHAR(20),Время_приготовления INT,Общая_калорийность INT,Повар VARCHAR(20),Стоимость MONEY,Тип_блюда VARCHAR(20))
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT,Стоимость_компонента FLOAT ) 

Для полей Стоимость в таблице Блюдо и Стоимость_компонента в таблице Компонент создать и применить правило ввода значений больше 0 и меньше 100.

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANSAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=2    SAVE TRANSACTION  p3    DELETE FROM Товар WHERE Код_Товара=5    SAVE TRANSACTION  p4      DELETE FROM Товар        WHERE Код_Товара<2 OR Код_Товара>4    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',60)    SAVE TRANSACTION  p5    INSERT Товар (Код_Товара, Название, остаток) VALUES (7, 'g',70)    ROLLBACK TRANSACTION p5COMMIT

После завершения транзакции в таблице Товар останутся товары с кодами:

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRAN AINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',40)   BEGIN TRAN B    INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',50)   UPDATE Товар SET Название =’m’ WHERE Код_Товара=1      BEGIN TRAN C       INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',60)ROLLBACK TRAN C INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',70)UPDATE Товар SET Название =’k’ WHERE Код_Товара=1ROLLBACK TRAN

После завершения транзакции в таблице Товар останутся товары с названиями:

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVELSERIALIZABLE                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL REPEATABLE READ                  BEGIN TRANSACTION TRB                      2.SELECT * FROM Товар                                                      4.DELETE FROM Товар WHEREКод_Товара=4ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED                  BEGIN TRANSACTION TRA1.SELECT * FROM Товар                        3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                              ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATION LEVEL REPEATABLE READ                  BEGIN TRANSACTION TRB                      2.DELETE FROM Товар WHERE Код_Товара=4                            4.SELECT * FROM Товар ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие заблокирует?

В базе данных basa_user зарегистрировано два пользователя: UserA и UserB. Какие действия предпримет система?
Basa_user
АдминистраторUserAUserB
GRANT ALL TO UserA GRANT ALL TO UserBCREATE TABLE tab(id_t INT PRIMARY KEY, nam_t VARCHAR(20)) 
INSERT INTO userA.tab values (1,'aa')INSERT INTO tab values (2,'bb')SELECT * FROM userA.tab
???

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT INSERT, SELECT ON tab TO UserAWITH GRANT OPTIONGRANT INSERT ON tab TO UserCREVOKE INSERT ON tabTO UserA CASCADE GRANT SELECT, INSERT ON tab TO UserB  
6INSERT INTO tab(1,'aa')INSERT INTO tab(2,'bb')SELECT * FROM tabINSERT INTO tab(4,'bb')
7????

В базе данных basa_user зарегистрировано три пользователя UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember'role1','UserA'sp_addrolemember'role1','UserB'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONREVOKE INSERT ON tab TO UserA CASCADEGRANT INSERT ON tab TO UserC  
9INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
10????

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345GRANT ALL TO UserA CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT SELECT, INSERT ON tab TO UserBWITH GRANT OPTIONREVOKE INSERT ON tab TO UserB CASCADEGRANT SELECT ON UserA.tab TO UserC 
6INSERT INTO UserA.tab values(1,'aa')INSERT INTO UserA.tab values (2,'bb')INSERT INTO UserA.tab values (3,'сс')SELECT * FROM UserA.tab
7????

Дан фрагмент сценария VBScript для выборки данных из таблицы Рейс, расположенной в базе данных basa_user1 на SQL Server с именем its.
Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open uid=user1;pwd=user1;driver={SQL Server}; server=its; database = basa_user1rst.open "SELECT Конечный_пункт, Дата_вылета, Продолжительность_маршрута FROM Рейс"do until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"   rst.movenextloop
Указать правильные ответы.

Дан фрагмент сценария VBScript для изменения данных в таблице Блюдо.

prm1=Server.CreateObject("ADODB.Parameter")prm2=Server.CreateObject("ADODB.Parameter")cmd.CommandText = "update Блюдо set Калорийность=? where Тип_блюда=?"cmd.CommandType = adCmdTextcmd.Prepared = TrueSet prm1 = сmd.CreateParameter("p1", adVarChar, adParamInput,8 ,'200')Set prm2 = сmd.CreateParameter("p2", adVarChar, adParamInput,20 ,'Десерт')cmd.Parameters.Append prm1cmd.Parameters.Append prm2cmd.Execute

Указать правильные ответы.

Дан фрагмент Java-программы для изменения данных в таблице Рейс.

PreparedStatement mySt=Con.prepareStatement("update Рейс set Стоимость=?    where Конечный_пункт=?");mySt.setFloat (1, 1200.50);mySt.setString(2,'Москва');int res=mySt.executeUpdate();

Указать правильные ответы.

Дан фрагмент Java-программы для удаления и выборки данных из таблицы Рейс, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();int res=mySt.executeUpdate("DELETE FROM Рейс   WHERE Дата_вылета=1.3.2004");ResultSet rs=mySt.executeQuery("SELECT Конечный_пункт, Дата_вылета,  Продолжительность_маршрута FROM Рейс ");while   {       String var1=rs.getString(1);       String var2=rs.getString(2);       int var3=rs.getInt(3);       rs.next();...}

Указать правильные ответы.

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANSAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=4    SAVE TRANSACTION  p3    UPDATE Товар SET Название ='g' WHERE Код_Товара=2    SAVE TRANSACTION  p4      DELETE FROM Товар        WHERE Код_Товара<>1 AND Код_Товара<>4    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',70)    ROLLBACK TRANSACTION p2    DELETE FROM Товар WHERE Код_Товара=3COMMIT

После завершения транзакции в таблице Товар останутся товары с названиями:

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRAN AINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'v',40)   BEGIN TRAN B    INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'n',50)   UPDATE Товар SET Название ='m' WHERE Код_Товара=1      BEGIN TRAN C       INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'm',60)ROLLBACK TRAN C INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'k',70)COMMIT

После завершения транзакции в таблице Товар останутся товары с названиями:

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVELREAD COMMITTED                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=3                                  ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATION LEVELREAD UNCOMMITTED                  BEGIN TRANSACTION TRB                      2. INSERTТовар(Код_Товара,Название, остаток) VALUES (3,'SS',999)                                                              4.DELETE FROM Товар WHERE Код_Товара=3ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)SAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=2    SAVE TRANSACTION  p3    DELETE FROM Товар WHERE Код_Товара=5    SAVE TRANSACTION  p4      DELETE FROM Товар WHERE Код_Товара<>1    ROLLBACK TRANSACTION p1    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',70)COMMIT

После завершения транзакции в таблице Товар останутся записи о товарах с кодами:

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345GRANT ALL TO UserA, UserB, UserC CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT INSERT ON tab TO UserBWITH GRANT OPTIONREVOKE INSERT ON tab TO UserB CASCADEGRANT INSERT ON UserA.tab TO UserC 
6INSERT INTO UserA.tab values(1,'aa')INSERT INTO tab values (2,'bb')SELECT * FROM UserA.tabINSERT INTO UserA.tab values (3,'cc')
7????

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserB'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserCWITH GRANT OPTIONDENY INSERT ON tab role1 GRANT INSERT ON tab TO UserA  
9INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
10????

Дан фрагмент сценария VBScript для изменения данных в таблице Город.

prm1=Server.CreateObject("ADODB.Parameter")prm2=Server.CreateObject("ADODB.Parameter")cmd.CommandText = "update Город set Тариф=? where Название=?"cmd.CommandType = adCmdTextcmd.Prepared = TrueSet prm2 = сmd.CreateParameter("p1", adSingle, adParamInput,8 ,12.50)Set prm1 = сmd.CreateParameter("p2", adVarChar, adParamInput,20 ,'Самара')cmd.Parameters.Append prm2cmd.Parameters.Append prm1cmd.Execute

Указать правильные ответы.

Дан фрагмент сценария VBScript для изменения и выборки данных из таблицы Автор, расположенной в базе данных basa_user1 на SQL Server с именем its.

Set cn=Server.CreateObject("ADODB.Connection")Set rst=Server.CreateObject("ADODB.Recordset")cn.open "pwd=user1;driver={SQL Server}; server=its; database = basa_user1"cn.execute "UPDATE Автор SET Телефон='23-45-67' WHERE Фамилия='Иванов'"rst.open "SELECT Фамилия, Телефон FROM Автор", cndo until rst.eof   response.write rst.fields(0)    response.write rst.fields(1)    response.write rst.fields(2)&"<br>"   rst.movenextloop

Указать правильные ответы.

Даны таблицы

CREATE  TABLE   Рейс(Номер_рейса	INT,Конечный_пункт	VARCHAR(30),Дата_вылета	    DATETIME,Продолжительность_маршрута	INT,Число_билетов	INT,Стоимость	    MONEY)	
CREATE  TABLE   БИЛЕТ(Номер_места	CHAR(3),Номер_рейса	    INT,Дата_продажи	DATETIME,Стоимость	    MONEY,Фамилия_пассажира VARCHAR(20))

Определить список пассажиров, покупающих билеты на самые дальние рейсы.

В базе данных basa1 имеется таблица Город. Содержащуюся в ней информацию необходимо прочитать из базы данных basa2. В какой базе данных должна быть создана процедура, и как можно ее выполнить?

Даны таблицы

CREATE TABLE Город(Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Перечислить фамилии людей, которые не говорили с абонентами из Москвы.

Даны таблицы Рейс и Билет.

CREATE  TABLE Рейс (Номер_рейса  INT,Конечный_пункт VARCHAR(20),Дата_вылета        DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость                  MONEY)
CREATE  TABLE   Билет(Номер_места	INT,Номер_рейса             INT,Дата_продажи	DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(30))

Между ними необходимо установить связь "один-ко-многим" (один рейс - много мест) с учетом первичных ключей.

Дано представление с вычислениями.

CREATE VIEW view2ASSELECT Номер_рейса, Конечный_пункт, Стоимость, Стоимость*0.05 AS НалогFROM РейсWHERE Рейс.Стоимость>100

Предпринимается попытка изменить в представлении запись.

UPDATE view2 SET Стоимость = Стоимость *1.5WHERE Конечный_пункт=’Москва’ 

Результатом выполнения команды является следующее:

Для определения числа рейсов в указанный город за определенный месяц разработана процедура, в которой заданы значения параметров по умолчанию:

CREATE PROC my_proc@c VARCHAR(20)=’Самара’,@m INT=4,@k INT=0 OUTPUTASSELECT @k=Count(Рейс.Номер_рейса) FROM РейсGROUP BY Рейс.Конечный_пункт, Month(Рейс.Дата_вылета)HAVING Рейс.Конечный_пункт=@c AND Month(Рейс.Дата_вылета)=@m

Укажите правильный вызов процедуры

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Запретить одновременное изменение только номеров начального и конечного событий.

CREATE TRIGGER  trig_updON Граф FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Рейс. Вывести в убывающем порядке список рейсов, вылетающих не позднее 1 апреля в Москву, Петербург или Самару, стоимость билета не более 1500 р.; в Саратов – не позднее 7 апреля, стоимость билета - от 500 до 800 р.

Разработана функция, определяющая по фамилии абонента общую сумму оплаты разговоров.
CREATE FUNCTION user1.my_func1(@f VARCHAR(20))RETURNS FLOATASBEGIN  DECLARE @s FLOAT  SET @s=(SELECT Sum(Город.Тариф*Разговор.Продолжительность)      FROM Город INNER JOIN Разговор       ON Город.Код_Города = Разговор.Код_Города      GROUP BY Разговор.Фамилия      HAVING Разговор.Фамилия=@f)  RETURN (@s)END

Определите операторы правильного обращения к функции.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp   INT,            --номер вершины,                         --из которой дуга выходит     inp  INT)              --номер вершины,                         --в которую дуга входит 

Создать триггер, обрабатывающий удаление одной дуги, причем следует запретить удаление, если эта дуга единственная, входящая в некоторую вершину.

CREATE TRIGGER  trigON graph FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дано представление.

CREATE VIEW view1ASSELECT Название, Цена, Цена*Количество AS СтоимостьFROM КнигаWHERE Издательство='Мир'

Предпринимается попытка изменить в представлении запись.

UPDATE view1 SET Цена=Цена*1.5WHERE Цена>50

Результатом выполнения команды является следующее:

Даны таблицы Город и Разговор.
CREATE TABLE Город ( Код_Города INT ,   Название  VARCHAR(20) NOT NULL,   Тариф     MONEY)
CREATE TABLE Разговор(Код_Разговора     INT , Код_Города       INT NOT NULL, Фамилия          VARCHAR(20), Дата             DATETIME NOT NULL, Продолжительность INT NOT NULL)
Вывести список абонентов, которые говорили с Москвой в апреле.

В базе данных basa1 имеется таблица Книга. Из базы данных basa2 необходимо выполнить действие по увеличению цены всех книг на 10%. В какой базе данных должна быть создана процедура и как можно ее выполнить?

Назовите преимущества архитектуры «клиент-сервер»?

Пусть номер страхового пенсионного свидетельства состоит из 11 цифр, разделенных знаками "-", например: 063-840-013-82. Укажите правильный тип данных для его описания.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Стоимость MONEY,Число_билетов INT)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Определить, кто из пассажиров потратил наибольшую сумму на покупку авиабилетов.

Даны таблицы Город и Разговор. Разработать триггер, обрабатывающий вставку одной записи в таблицу Разговор. При этом в таблице Город должна увеличиться общая продолжительность телефонной связи (всех разговоров) для соответствующего города.

CREATE TRIGGER  trig_insON Разговор FOR INSERT AS

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для удаления работы, причем необходимо отменить удаление, если только эта работа и никакая другая приводит к данному конечному событию.

CREATE TRIGGER  trig_delON Граф FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дан некоторый фрагмент SQL-кода:

DECLARE @a CHAR(12)DECLARE @b DATETIMEDECLARE @c INTSET @a=’12.2.04’SET @b=’3.04.04’

Укажите правильные операторы для вычисления количества дней между датами:

Разработана функция, определяющая для указанного типа блюд среднюю стоимость.

CREATE FUNCTION user1.my_func1(@t VARCHAR(20))RETURNS FLOATASBEGIN  DECLARE @s FLOAT SET @s=(SELECT Avg(Компонент.Стоимость*Компонент.Вес)       FROM Блюдо INNER JOIN Компонент       ON Блюдо.Название_блюда = Компонент.Блюдо      GROUP BY Блюдо.Тип_блюда      HAVING Блюдо.Тип_блюда=@t)  RETURN (@s)END

Определите операторы правильного обращения к функции.

Дано представление с данными из разных таблиц.

CREATE VIEW view3ASSELECT Город.Название, Разговор.Фамилия, Разговор.ПродолжительностьFROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_Города;

Предпринимается попытка добавить в представление запись.

INSERT INTO view3(Название, Фамилия, Продолжительность)VALUES('Самара','Иванов',10)

Результатом выполнения команды является следующее:

Даны таблицы Рейс и Билет.

CREATE  TABLE   Рейс(Номер_рейса  INT, Конечный_пункт  VARCHAR(30), Дата_вылета  DATETIME)
CREATE  TABLE   БИЛЕТ(Номер_места      CHAR(3), Номер_рейса      INT, Дата_продажи      DATETIME, Фамилия_пассажира  VARCHAR(30))

Определить номера мест и дату продажи билетов на рейсы до Москвы с датой вылета 1 мая 2004 года

Дано представление.

CREATE VIEW view3ASSELECT Название, Тариф, Тариф*0.05 AS НалогFROM ГородWHERE Регион=’Поволжье’

Предпринимается попытка изменить в представлении запись.

UPDATE view3 SET Тариф=Тариф*1.5WHERE Тариф>10 

Результатом выполнения команды является следующее:

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость INT )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Жиры INT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость_100_грамм FLOAT NOT NULL)

Найти поваров, которые используют в своих блюдах компоненты без названия.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Рассчитать общую стоимость билетов для рейса, 5% налог с продаж и общий доход рейса.

Даны таблицы Книга и Автор. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление информации о некотором авторе из таблицы Автор. При этом необходимо запретить удаление, если упомянутый автор издавал свои книги в издательстве "Мир".

CREATE TRIGGER  trig_delON Автор FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Назовите отличительные черты реализации от стандарта языка.

Для определения номера телефона (например, +74952539312) подойдет описание:

Какое из следующих описаний типов является неправильным?

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\b1.mdf’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME=’D:\user\b2.mdf’, SIZE=10MB, MAXSIZE=500, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\l1.ldf’, SIZE=50MB, MAXSIZE=10, FILEGROWTH=10)

Выберите правильный ответ.

В таблицу Рейс необходимо добавить бортовой номер и увеличить длину поля Конечный_пункт.

Создана таблица Рейс. Изменить тип поля Стоимость_билета на денежный и добавить поле Число_мест.

CREATE TABLE Рейс(Номер_рейса	INT NOT NULL, Конечный_пункт	VARCHAR(30),  Стоимость_билета INT)

Пусть дана таблица Рейс с полями

Номер_рейсаINT
Конечный_пунктCHAR(10)
Дата_вылетаDATETIME
Продолжительность_маршрутаINT
Число_билетовINT
СтоимостьMONEY

Вывести список рейсов, продолжительность маршрутов которых не более 500 км и не менее 100 км, а стоимость билета - от 800 до 1500 руб.

Пусть дана таблица Город.

Код_ГородаCHAR(5)
НазваниеVARCHAR(20)
ТарифMONEY
РегионVARCHAR(30)

Вывести в алфавитном порядке список городов Поволжского региона, в коде которых встречается цифра 9.

Пусть дана таблица Автор.

ФамилияVARCHAR(50)
ПолCHAR(3)
Дата_рожденияDATETIME
ТелефонCHAR(9)
Количество_трудовINT
ГородVARCHAR(15)

Вывести в алфавитном порядке фамилии авторов из Самары, в телефонном номере которых на втором или третьем месте стоят цифры 5 или 8, а последними являются цифры 34.

Дана таблица Рейс с полями

Номер_рейса INT
Конечный_пункт CHAR(10)
Дата_вылетаDATETIME
Продолжительность_маршрутаINT
СтоимостьMONEY

Вывести информацию о рейсах до Москвы с датой вылета не позднее 8 марта, но не ранее 1 марта, со стоимостью билетов от 500 до 1000 руб.

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY)
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить фамилии людей, которые говорили с абонентами из Москвы.

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY)
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Найти фамилии абонентов, ведущих телефонные переговоры как с Москвой, так и с Самарой.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Составить список пассажиров, которые летают в Москву, но не летают в Киев.

Даны таблицы Город и Разговор.

CREATE TABLE Город ( Код_Города   INT,   Название    VARCHAR(20),   Тариф       MONEY,   Регион      VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора      INT , Код_Города          INT NOT NULL, Фамилия            VARCHAR(20), Дата               DATETIME, Продолжительность  INT NOT NULL)

Вывести список регионов, где средние тарифы на телефонные разговоры выше, чем в других регионах.

Определить город Поволжья, с которым дольше других ведутся телефонные разговоры.

Пусть дана таблица Город с полями
Код_ГородаCHAR(5) NOT NULL
НазваниеVARCHAR(20)
РегионVARCHAR(30)
ТарифMONEY NOT NULL
Укажите правильный оператор добавления записи.

Пусть дана таблица Книга с полями:

Код_Книги INT
Название VARCHAR(50) NOT NULL
Цена MONEY
Тематика VARCHAR(50) NOT NULL
Издательство VARCHAR(50) NOT NULL
Код_Автора INT NOT NULL

Увеличить на 50% цену книг, вышедших в издательстве «АСТ».

Увеличить на 10% стоимость билетов, проданных в день вылета рейса.

Дано представление с данными из разных таблиц.

CREATE VIEW view3ASSELECT Билет.Номер_места, Билет.Номер_рейса, Рейс.Конечный_пунктFROM Билет INNER JOIN Рейс ON Билет.Номер_рейса = Рейс.Номер_рейса

Предпринимается попытка добавить в представление запись.

INSERT INTO view3(Номер_места, Номер_рейса, Конечный_пункт)VALUES(12, 8978, 'Москва')

Результатом выполнения команды является следующее:

Дано представление с группировкой.

CREATE VIEW view4ASSELECT Конечный_пункт, Sum(Число_билетов) AS Общ_Число_билетовFROM РейсGROUP BY Конечный_пунктHAVING Конечный_пункт=’Москва’

Предпринимается попытка удалить записи:

DELETE FROM view4WHERE Конечный_пункт=’Самара’

Необходимо разработать функцию для получения списка книг издательства «Мир» и определить команду для ее вызова. Укажите правильный ответ.

Определите команду для вызова функции, создаваемой следующей командой:

CREATE FUNCTION user1.my_func3(@r VARCHAR(20),@t FLOAT)RETURNS TABLEASRETURN (SELECT Название, Тариф        FROM Город        WHERE Регион=@r AND Тариф<=@t        ORDER BY Название)

Необходимо разработать функцию для вывода списка пассажиров, купивших билеты в определенный день на некоторый рейс.Функция создается командой:

Создана процедура для увеличения на заданный % стоимости билетов до заданного пункта.

CREATE PROC my_proc1@p FLOAT,@c VARCHAR(20)AS UPDATE Рейс SET Стоимость = Стоимость*(1+@p)WHERE Конечный_пункт=@c

Определите правильную команду для выполнения процедуры.

Для определения общей калорийности блюд указанного типа, приготовленных заданным поваром, разработана процедура:

CREATE PROC my_proc2@t VARCHAR(20),@p VARCHAR(20),@k FLOAT OUTPUTASSELECT @k=Sum(Компонент.Калорийность*Компонент.Вес)FROM Блюдо INNER JOIN Компонент ON Блюдо.Название_блюда = Компонент.БлюдоGROUP BY Блюдо.Тип_блюда, Блюдо.ПоварHAVING Блюдо.Тип_блюда=@t AND Блюдо.Повар=@p

Укажите правильный вызов процедуры

Для определения общей стоимости телефонных разговоров в заданном регионе за конкретный месяц разработана процедура, в которой указаны значения параметров по умолчанию:

CREATE PROC my_proc3@r  VARCHAR(20)=’Нечерноземье’,@m  INT=2,@st FLOAT=5.0 OUTPUTASSELECT @st=Sum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Город.Регион, Month(Разговор.Дата)HAVING Город.Регион=@r AND Month(Разговор.Дата)=@m

Укажите правильный вызов процедуры

Разработан курсор для вывода списка десертов.

DECLARE @b     VARCHAR(50),        @t     VARCHAR(50),                @k     INT,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Меню'DECLARE cursor1 CURSOR GLOBAL  FORWARD_ONLY DYNAMIC FOR    SELECT Название_блюда, Калорийность, Тип_блюда   FROM Блюдо   WHERE Тип_блюда="Десерт"OPEN cursor1SET @cur1=cursor1FETCH LAST  FROM cursor1 INTO  @t, @b, @kFETCH ABSOLUTE 2 FROM cursor1 INTO  @t, @b, @kFETCH RELATIVE -2 FROM cursor1 INTO  @t, @b, @k    SELECT @message='Блюдо '+@b+    '  Калорийность '+ CAST(@k AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какая из имеющихся в курсоре записей будет распечатана?

Пусть в таблице Рейс представлены записи, значения поля Номер_рейса в которых равны 2, 4, 6, 8 ,9. Создан курсор для вывода списка рейсов до Москвы.

DECLARE @n     INT,        @k     VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список рейсов'DECLARE cursor1 CURSOR GLOBAL SCROLL DYNAMIC FOR    SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт=’Москва’OPEN cursor1SET @cur1=cursor1FETCH ABSOLUTE 3  FROM cursor1 INTO  @n, @p, @k    UPDATE Рейс SET Стоимость=Стоимость*1.5    WHERE CURRENT OF cursor1FETCH RELATIVE -2 FROM cursor1 INTO  @n, @p, @k    DELETE Рейс     WHERE CURRENT OF cursor1    SELECT @message='Рейс '+CAST(@n AS VARCHAR(20))+            '  Стоимость  '+ CAST(@p AS VARCHAR(4))CLOSE cursor1DEALLOCATE cursor1

Какие действия выполнит система?

Даны таблицы Книга и Автор. Создать триггер, обрабатывающий вставку одной записи в таблицу Книга. При этом в таблице Автор должен увеличиться общий тираж изданий соответствующего автора.

CREATE TRIGGER  trig_insON Книга FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Дана таблица Разговор. Разработать триггер, который выполняется вместо изменения продолжительности одного разговора. Выполнить изменение продолжительности только в том случае, если общая продолжительность телефонных соединений абонента, в разговоре которого меняется продолжительность, не превышает 300 мин.

CREATE TRIGGER  trig_upd  ON Разговор INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

Дана таблица Билет. Разработать триггер, который выполняется вместо изменения стоимости одного билета. Изменение стоимости билета выполнить только в том случае, если этот рейс отправляется в Москву.

CREATE TRIGGER  trig_upd  ON Билет INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для вставки новой записи, причем, когда начальное событие не равно "1", необходимо отменить ввод, если конечное событие еще не было введено как начальное.

CREATE TRIGGER  trig_insON Граф FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp  INT,             --номер вершины,                        --из которой дуга выходит     inp   INT)             --номер вершины,                        --в которую дуга входит 

Создать триггер, обрабатывающий вставку одной записи и запрещающий ввод дуги, если в соответствующую вершину уже входят 3 дуги.

CREATE TRIGGER  trigON graph FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Дана таблица со структурой, которая описывает некоторый граф:

CREATE TABLE graph(nomer INT PRIMARY KEY, --номер дуги outp   INT,            --номер вершины,                         --из которой дуга выходит     inp  INT)              --номер вершины,                         --в которую дуга входит 

Создать триггер, обрабатывающий удаление одной дуги, причем следует запретить удаление, если эта дуга единственная, связывающая некоторые вершины.

CREATE TRIGGER  trigON graph FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRAN AINSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'v',40)   BEGIN TRAN B    INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'n',50)      BEGIN TRAN C       INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'm',60)ROLLBACK TRAN B INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'k',70)COMMIT

После завершения транзакции в таблице Товар останутся товары с кодами:

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL READUNCOMMITTED                                      BEGIN TRANSACTION TRA1. INSERT Товар(Код_Товара,Название, остаток) VALUES (3,'SS',999)                            3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                  ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL READCOMMITTED                  BEGIN TRANSACTION TRB                      2.SELECT * FROM Товар                                                      4.DELETE FROM Товар WHEREКод_Товара=3ROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANSAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=2    SAVE TRANSACTION  p3    DELETE FROM Товар WHERE Код_Товара=5    SAVE TRANSACTION  p4      DELETE FROM Товар       WHERE Код_Товара<2 OR Код_Товара>4    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток) VALUES (6, 'f',60)    SAVE TRANSACTION  p5    INSERT Товар (Код_Товара, Название, остаток) VALUES (7, 'g',70)    ROLLBACK TRANSACTION p2COMMIT

После завершения транзакции в таблице Товар останутся записи о товарах с кодами:

В базе данных basa_user зарегистрировано два пользователя: UserA и UserB. Какие действия предпримет система?
Basa_user
АдминистраторUserAUserB
GRANT ALL TO UserB  CREATE TABLE tab(id_t INT PRIMARY KEY, nam_t VARCHAR(20))
INSERT INTO tab values (1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')
???

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
123456789CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember'role1','UserA'sp_addrolemember 'role1','UserB'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserBWITH GRANT OPTIONREVOKE INSERT ON tab TO role1 GRANT INSERT ON tab TO UserC 
10INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
11????

Для определения количества пассажиров, вылетевших в заданный город в течение конкретного месяца, разработана процедура:

CREATE PROC my_proc2@c VARCHAR(20),@m INT,@k INT OUTPUTASSELECT @k=Count(Билет.Фамилия_пассажира)FROM Билет INNER JOIN Рейс ON Билет.Номер_рейса = Рейс.Номер_рейсаGROUP BY Рейс.Конечный_пункт, Month(Рейс.Дата_вылета)HAVING Рейс.Конечный_пункт=@c AND Month(Рейс.Дата_вылета)=@m

Укажите правильный вызов процедуры

Что представляют собой базы данных?

Пусть дана таблица Рейс.

Номер_рейсаINT
Конечный_пунктCHAR(10)
Дата_вылетаDATETIME
Продолжительность_маршрутаINT
Число_билетовINT
СтоимостьMONEY

Определить в убывающем порядке стоимость билетов на рейсы, вылетающие в Москву, Петербург или Самару не позднее 1 апреля, а в Саратов – не позднее 7 апреля.

В базе данных basa1 имеется таблица Блюдо. Из базы данных basa2 необходимо выполнить действие по увеличению стоимости всех блюд на 50%. В какой базе данных должна быть создана процедура и как можно ее выполнить?

Дано представление с группировкой.

CREATE VIEW view4ASSELECT Издательство, Sum(Количество) AS Общ_КоличествоFROM КнигаGROUP BY ИздательствоHAVING Издательство="АСТ"

Предпринимается попытка удалить записи:

DELETE FROM view4WHERE Издательство='Мир'

Дана таблица Билет с полями:

номер_места CHAR(3)
номер_рейса CHAR(6)
дата_продажи DATETIME
стоимость MONEY
фамилия_пассажира VARCHAR(20) NOT NULL

Укажите правильный оператор добавления записи.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT, Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(3) NOT NULL, Дата_рождения DATETIME, Телефон CHAR(9))
CREATE TABLE Книга(Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL)

Вывести список авторов, чьи книги выпускало издательство "Мир".

Необходимо разработать функцию для вывода списка пассажиров, купивших билеты в определенный день на некоторый рейс. Определите команду для ее вызова.

Дано представление с вычислениями.

CREATE VIEW view2ASSELECT Название, Регион,  Тариф, Тариф*0.05 AS НалогFROM ГородWHERE Город.Тариф>10

Предпринимается попытка изменить в представлении запись.

UPDATE view2 SET Тариф=Тариф*1.5WHERE Регион=’Поволжье’

Результатом выполнения команды является следующее:

Дана таблица Автор с полями

ФамилияVARCHAR(50)
ПолCHAR(1)
Дата_рожденияDATETIME
Телефон CHAR(9)
Количество_трудовINT
Город VARCHAR(15)

Найти города, в которых живут авторы, родившиеся позже 1 января 1982 года - мужчины, издавшие более 10 книг и имеющие телефон.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для удаления работы, причем при попытке удаления единственной работы, приводящей к данному конечному событию, отменить удаление, заменив в удаляемой работе начальное событие на исток (т.е. на начальное событие под номером 1).

CREATE TRIGGER  trig_delON Граф INSTEAD OF DELETE AS

Выберите операторы для продолжения текста триггера.

Пусть в таблице Блюдо есть поле Номер_блюда, и его значения равны 2, 4, 6 ,8 ,10. Создан курсор для вывода списка десертов

DECLARE @b     VARCHAR(50),        @t     VARCHAR(50),                @k     INT,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Меню'DECLARE cursor1 CURSOR LOCAL SCROLL STATIC FOR   SELECT Название_блюда, Калорийность, Номер_блюда   FROM Блюдо   WHERE Тип_блюда="Десерт"OPEN cursor1SET @cur1=cursor1FETCH LAST FROM cursor1 INTO  @t, @b, @kFETCH RELATIVE -3  FROM cursor1 INTO  @t, @b, @k    DELETE Блюдо     WHERE CURRENT OF @cur1 FETCH RELATIVE 2 FROM cursor1 INTO  @t, @b, @k    UPDATE Блюдо SET Калорийность=Калорийность*1.5    WHERE CURRENT OF cursor1    SELECT @message='Блюдо '+@b+'  Калорийность '+       CAST(@k AS VARCHAR(4))    PRINT @messageCLOSE cursor1DEALLOCATE cursor1

Какие действия выполнит система?

Определите команду для вызова функции, создаваемой следующей командой:

			CREATE FUNCTION user1.my_func3(@b VARCHAR(20),@k INT)RETURNS TABLEASRETURN (SELECT Название_компонента,Калорийность        FROM Компонент        WHERE Калорийность<@k AND Блюдо=@b        ORDER BY Название_компонента)

Даны таблицы Город и Разговор. Создать триггер, обрабатывающий изменение продолжительности одного телефонного разговора. При этом в таблице Город должна измениться величина общей продолжительности связи (всех разговоров) с соответствующим городом.

CREATE TRIGGER  trig_updON Разговор FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
1234CREATE TABLE tab(id_t INT, nam_t CHAR(8))GRANT INSERT ON tab TO UserAWITH GRANT OPTIONGRANT INSERT ON tab TO UserB  
5INSERT INTO tab values (1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
6????

Определите роль языка SQL в создании информационных систем.

Какое из следующих чисел можно внести в поле, описанное как NUMERIC(5,1)?

Дан некоторый фрагмент SQL-кода:

DECLARE @a CHAR(12)DECLARE @b DATETIMEDECLARE @c INTSET @b=’3.04.04’SET @c=6

Укажите правильные операторы для вычисления новой даты:

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 %.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME=’D:\user\b2’, SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\11’, SIZE=50MB, MAXSIZE=100, FILEGROWTH=10%)

Выберите правильный ответ.

В базе данных в таблице Город необходимо хранить сведения о городах, с которыми поддерживается телефонная связь, о часовом поясе города, его коде и стоимости минуты разговора (тарифе). Для описания данных используются следующие поля:

В таблицу Город необходимо добавить сведения о регионе и изменить тип поля Код_Города на CHAR(5). Отметьте правильные ответы:

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%; для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME=’D:\user\’, SIZE=100MB, MAXSIZE=200, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\l1’, SIZE=50MB, MAXSIZE=100, FILEGROWTH=10)

Выберите правильный ответ.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость INT )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Жиры INT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость_100_грамм FLOAT NOT NULL)

Вывести список компонент, которые использует повар Иванов для приготовления своих блюд.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT)
CREATE TABLE БИЛЕТ(Номер_места INT,Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Вывести список рейсов, на которые не были проданы билеты.

Даны таблицы

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(30),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT)
CREATE TABLE БИЛЕТ(Номер_места CHAR(3),Номер_рейса CHAR(6),Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(20))

Составить список пассажиров, которые летают и в Москву, и в Киев.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга(Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL)

Вывести список авторов, которые пишут романы, но не работают в жанре фантастики.

Вывести список пассажиров, которые летали в апреле в Москву, но не летали в Киев в январе.
CREATE  TABLE   Рейс(Номер_рейса  INT, Конечный_пункт  VARCHAR(30), Дата_вылета  DATETIME)
CREATE  TABLE   БИЛЕТ(Номер_места      CHAR(3), Номер_рейса      CHAR(6), Дата_продажи      DATETIME, Фамилия_пассажира  VARCHAR(30))

Даны таблицы

CREATE TABLE Город( Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT ,Код_Города INT NOT NULL,Фамилия IVARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить тех абонентов, которые заплатили за телефонные разговоры больше, чем другие.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Тип_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость MONEY )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Вес FLOAT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость MONEY NOT NULL)

Определить поваров, которые готовят десерты чаще, чем другие.

В таблице Автор ограничить поле Пол заданным списком: м, ж, муж, жен.

Дано представление.

CREATE VIEW view1ASSELECT Номер_рейса, Стоимость, Дата_вылетаFROM РейсWHERE Конечный_пункт=’Москва’WITH CHECK OPTION

Предпринимается попытка выполнить команду вставки данных в представление.

INSERT INTO view1(Номер_рейса, Стоимость, Дата_вылета)VALUES (2367,1459.00,'12/09/03')

Результатом выполнения команды (при отсутствии каких-либо ограничений при создании таблицы) является следующее:

Дано представление с вычислениями.

CREATE VIEW view2ASSELECT Название_блюда, Тип_блюда, Стоимость, Стоимость*0.05 AS НалогFROM БлюдоWHERE Стоимость>100

Предпринимается попытка изменить в представлении запись.

UPDATE view2 SET Стоимость=Стоимость*1.5WHERE Тип_блюда='Десерт'

Результатом выполнения команды является следующее:

Необходимо разработать функцию для получения списка рейсов, вылетающих в Москву и упорядоченных по дате. Определите команду для ее вызова. Укажите правильный ответ.

Определите команду для вызова функции, создаваемой следующей командой:

CREATE FUNCTION user1.my_func3 (@iz VARCHAR(20),@k INT)RETURNS TABLEASRETURN (SELECT Название        FROM Книга        WHERE Издательство=@iz AND количество>=@k        ORDER BY Название)

Создана процедура для увеличения на заданный % стоимости блюд определенного типа.

CREATE PROC my_proc1@p FLOAT,@t VARCHAR(20)AS UPDATE Блюдо SET Стоимость = Стоимость*(1+@p)WHERE Тип_блюда=@t

Определите правильную команду для выполнения процедуры.

В базе данных basa1 имеется таблица Рейс. Содержащуюся в ней информацию необходимо прочитать из базы данных basa2. В какой базе данных должна быть создана процедура, и как можно ее выполнить?

Разработан курсор для печати списка телефонных тарифов городов Поволжья.

DECLARE @n     VARCHAR(50),        @r     VARCHAR(50),                @t     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Тарифы Поволжья'DECLARE cursor1 CURSOR FOR   SELECT Название, Тариф, Регион   FROM Город   WHERE Регион="Поволжье"OPEN cursor1SET @cur1=cursor1FETCH NEXT FROM cursor1 INTO  @n, @t, @rWHILE @@FETCH_STATUS=0BEGIN	FETCH NEXT FROM cursor1 INTO  @n, @t, @r    SELECT @message='Город '+@n+    '  Тариф  '+ CAST(@t AS VARCHAR(4))    PRINT @messageENDCLOSE cursor1DEALLOCATE cursor1

Укажите правильные ответы.

Разработана процедура, возвращающая список номеров рейсов до Москвы.

CREATE PROC my_proc@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт="Москва"OPEN @cur

Вызов процедуры и вывод на печать номеров рейсов из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n INTEXEC my_proc @cur=@my_cur OUTPUTWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильный ответ.

Разработана процедура, возвращающая список книг некоторого автора.

CREATE PROC my_proc@av VARCHAR(20),@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Книга.Название, Книга.Издательство,           Книга.Цена   FROM Автор INNER JOIN Книга ON    Автор.Код_Автора = Книга.Код_Автора   WHERE Автор.Фамилия=@avOPEN @cur

Вызов процедуры и вывод на печать названий книг из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n VARCHAR(20)EXEC my_proc 'Иванов',@cur=@my_cur OUTPUTFETCH NEXT FROM @my_cur INTO @nSELECT @nWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Дана таблица Книга. Разработать триггер, который выполняется вместо изменения цены одной книги в этой таблице. Изменение цены выполнить только в том случае, если количество экземпляров данной книги превышает 100.

CREATE TRIGGER  trig_upd  ON Книга INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

DECLARE @kod INT,   @k   INT,   @p   MONEY SELECT @kod=Код_Книги, @k=количество, @p=ценаFROM insertedIF @k>100   UPDATE Книга SET цена=@p   WHERE Код_Книги=@kod

Даны таблицы Город и Разговор. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление информации о некотором городе из таблицы Город. При этом в таблице Разговор необходимо также удалить записи обо всех телефонных разговорах с удаленным городом.

CREATE TRIGGER  trig_delON Город FOR DELETE AS

Выберите операторы для продолжения текста триггера.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Если изменяется только номер начального события и это изменение приводит к появлению параллельной работы, отменить изменение.

CREATE TRIGGER  trig_updON Граф FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVELREPEATABLE READ                                      BEGIN TRANSACTION TRA1.SELECT * FROM Товар                          3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4                                ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL READ UNCOMMITTED                  BEGIN TRANSACTION TRB                      2.SELECT * FROM Товар                                                      4.SELECT * FROM ТоварROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678910CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserB'sp_addrolemember 'role1','UserC'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONDENY INSERT ON tab TO UserAGRANT INSERT ON tab TO UserB WITH GRANT OPTIONGRANT INSERT ON tab TO UserC WITH GRANT OPTION 
11INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
12????

Даны таблицы Рейс и Билет. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление записи о некотором рейсе из таблицы Рейс. При этом в таблице Билет необходимо его номер заменить на номер запасного рейса 111 для билетов, проданных на удаленный рейс.

CREATE TRIGGER  trig_delON Рейс FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Пусть дана таблица Блюдо.

Название_блюдаVARCHAR(20)
Тип_блюдаVARCHAR(20)
Время_приготовленияDATETIME
КалорийностьINT
ПоварVARCHAR(20)
СтоимостьMONEY

Вывести в алфавитном порядке фамилии поваров, блюда которых относятся к десерту или выпечке, стоимость не превышает 50 руб., а калорийность не больше 300 ккал.

Разработан курсор для вывода списка рейсов до Москвы.

DECLARE @n     INT,        @k     VARCHAR(50),                @p     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Список рейсов'DECLARE cursor1 CURSOR FOR   SELECT Номер_рейса, Стоимость, Конечный_пункт   FROM Рейс   WHERE Конечный_пункт="Москва"OPEN cursor1SET @cur1=cursor1FETCH NEXT FROM cursor1 INTO  @p, @n, @kWHILE @@FETCH_STATUS=0BEGIN    SELECT @message='Рейс '+    CAST(@n AS VARCHAR(20))+    '  Стоимость  '+ CAST(@p AS VARCHAR(4))    PRINT @message    FETCH NEXT FROM cursor1 INTO @p, @n, @kENDDEALLOCATE cursor1CLOSE cursor1

Укажите правильные ответы.

Разработана процедура, возвращающая список книг издательства "Мир".

CREATE PROC my_proc@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Название, Издательство, Цена   FROM Книга   WHERE Издательство="Мир"OPEN @cur

Вызов процедуры и вывод на печать названий книг из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n VARCHAR(20)EXEC my_proc @cur=@my_cur OUTPUTFETCH NEXT FROM @my_cur INTO @nSELECT @nWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Какие связи между объектами моделируются в реляционных базах данных?

Пусть дана таблица Блюдо.

Название_блюдаVARCHAR(20)
Время_приготовленияDATETIME
КалорийностьINT
ПоварVARCHAR(20)
СтоимостьMONEY

Определить список блюд, приготовленных поваром Ивановым менее чем за 3 мин или более чем за 20 мин.

Для определения общей стоимости разговоров в заданном регионе за конкретный месяц разработана процедура:

CREATE PROC my_proc2@r  VARCHAR(20),@m  INT,@st FLOAT OUTPUTASSELECT @st=Sum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_ГородаGROUP BY Город.Регион, Month(Разговор.Дата)HAVING Город.Регион=@r AND Month(Разговор.Дата)=@m

Укажите правильный вызов процедуры

Даны таблицы Город и Разговор.

CREATE TABLE Город (Код_Города CHAR(5), Название  VARCHAR(20) NOT NULL UNIQUE,   Тариф     MONEY)
CREATE TABLE Разговор(Дата              DATETIME NOT NULL, ВремяСуток        VARCHAR(5),  Продолжительность INT NOT NULL)

Между ними необходимо установить связь "один-ко-многим" (один город - много разговоров) с учетом первичных ключей.

Разработана функция, определяющая по конечному пункту общее число пассажиров.

CREATE FUNCTION user1.my_func1(@s VARCHAR(20))RETURNS INTASBEGIN  DECLARE @k INT  SET @k=(SELECT Count(Билет.Фамилия_пассажира)       FROM Билет INNER JOIN Рейс       ON Билет.Номер_рейса = Рейс.Номер_рейса      GROUP BY Рейс.Конечный_пункт      HAVING Рейс.Конечный_пункт=@s)  RETURN (@k)END

Определите операторы правильного обращения к функции.

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
123456789CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserB'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONREVOKE INSERT ON tab TO UserBGRANT INSERT ON tab TO UserC  
10INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
11????

Пусть идентификационный номер налогоплательщика (ИНН) состоит из 12 цифр, например: 872573021145. Укажите правильные определения. 

Пусть дана таблица Город с полями

Код_ГородаCHAR(5)
НазваниеVARCHAR(20)
ТарифMONEY
РегионVARCHAR(30)

Найти регионы, стоимость минуты телефонного разговора с которыми не меньше 10 руб., но не больше 100 руб.

Дана таблица Книга. Разработать триггер, который выполняется вместо изменения цены одной книги в этой таблице. Изменение цены выполнить только в том случае, если книга издается в издательстве ‘Мир’.

CREATE TRIGGER  trig_upd  ON Книга INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

Дан фрагмент Java-программы для изменения данных в таблице Автор.

PreparedStatement mySt=Con.prepareStatement("update Автор set Телефон=? where Фамилия=?");mySt.setString(0, "12-23-34");mySt.setInt(1,"Иванов");int res=mySt.executeUpdate();

Указать правильные ответы.

Необходимо разработать функцию для получения списка компонент с калорийностью более 300 ккал. Определите команду для ее вызова. Укажите правильный ответ.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL)

Предположим, что не все зарегистрированные в базе данных авторы имеют изданные книги. Вывести список всех авторов с указанием тематики изданных книг.

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для вставки новой записи, причем необходимо отменить ввод параллельной работы.

CREATE TRIGGER  trig_insON Граф FOR INSERT AS

Выберите операторы для продолжения текста триггера.

На какое представление данных ориентирован язык SQL?

Определите роль клиента в двухуровневой архитектуре «клиент-сервер».

Какое из следующих чисел можно внести в поле, описанное как DECIMAL(6,3)?

Пусть дана таблица Город.

Код_ГородаCHAR(5)
НазваниеVARCHAR(20)
ТарифMONEY
РегионVARCHAR(30)

Найти города Поволжья или Урала, телефонные тарифы для которых выше 5 руб.

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость INT )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Жиры INT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость_100_грамм FLOAT NOT NULL)

Вывести список поваров, использующих для приготовления блюд и масло, и молоко.

Даны таблицы

CREATE TABLE Город(Код_Города INT ,Название VARCHAR(20) NOT NULL,Тариф MONEY,Регион VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора INT,Код_Города INT NOT NULL,Фамилия VARCHAR(20),Дата DATETIME NOT NULL,Продолжительность INT NOT NULL)

Определить среднюю стоимость разговоров в каждом регионе.

Даны две таблицы. Определить в них первичные ключи.

CREATE  TABLE Рейс (Номер_рейса  INT,Конечный_пункт  VARCHAR(20),Дата_вылета  DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость   MONEY)
CREATE  TABLE  Билет(Номер_места	INT,Номер_рейса   INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(30))

Дано представление.

CREATE VIEW view1ASSELECT Код_Города, Название, ТарифFROM ГородWHERE Регион=’Поволжье’WITH CHECK OPTION

Предпринимается попытка выполнить команду вставки данных в представление.

INSERT INTO view1(Код_Города, Название, Тариф)VALUES (842,'Симбирск',2.70)

Результатом выполнения команды (при отсутствии каких-либо ограничений при создании таблицы) является следующее:

Дано представление с группировкой.

CREATE VIEW view4ASSELECT Повар, Sum(Стоимость) AS Общ_СтоимостьFROM БлюдоGROUP BY ПоварHAVING Повар="Иванов"

Предпринимается попытка удалить записи:

DELETE FROM view4WHERE Повар=’Петров’

Необходимо разработать функцию для получения списка компонентов, входящих в указанное блюдо и имеющих калорийность ниже заданного значения. Функция создается командой:

Даны таблицы Рейс и Билет. Создать триггер, обрабатывающий вставку одной записи в таблицу Билет. При этом в таблице Рейс должно уменьшиться число свободных мест для соответствующего рейса.

CREATE TRIGGER  trig_insON Билет FOR INSERT AS

Выберите операторы для продолжения текста триггера.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга( Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL,Количество INT)

Определить авторов, у каждого из которых было продано более 1000 экземпляров книг.

Дано представление.

CREATE VIEW view4ASSELECT Книга.Название, Книга.Издательство, Автор.ФамилияFROM Автор INNER JOIN Книга ON Автор.Код_Автора = Книга.Код_Автора

Предпринимается попытка удалить из представления запись.

DELETE FROM  view4WHERE Фамилия='Л.Толстой'

Результатом выполнения команды является следующее:

В базе данных в таблице Автор необходимо хранить сведения об авторах книг - фамилию, имя, отчество автора, а также его пол, возраст, телефон, номер расчетного счета. Для описания данных используются следующие поля:

В таблицу Блюдо необходимо добавить сведения о содержании жиров в блюде (в %) и заменить тип поля Время_приготовления на вещественный.

В каком количестве и на какую сумму издавал свои книги автор Борисов в каждом издательстве?

Увеличить на 50% цену книг, издаваемых самым большим тиражом.

Даны таблицы Город и Разговор.

CREATE TABLE Город(Код_Города CHAR(5),Название VARCHAR(20) NOT NULL UNIQUE,Тариф MONEY)
CREATE TABLE Разговор(Дата DATETIME NOT NULL,ВремяСуток VARCHAR(5),Продолжительность INT NOT NULL)

В таблице Разговор значения поля ВремяСуток ограничить значениями из заданного списка: день, вечер, ночь, утро.

Дано представление.

CREATE VIEW view1ASSELECT Фамилия, Телефон, Дата_рожденияFROM АвторWHERE Город=’Москва’WITH CHECK OPTION

Предпринимается попытка выполнить команду вставки данных в представление.

INSERT INTO view1(Фамилия, Телефон, Дата_рождения)VALUES ('Сидоров','32-34-45','12/09/78')

Результатом выполнения команды (при отсутствии каких-либо ограничений при создании таблицы) является следующее:

Необходимо разработать функцию для получения списка рейсов, вылетающих в указанный город в определенный день. Функция создается командой:

Необходимо разработать функцию для получения списка книг заданной тематики, изданных тиражом менее указанного числа. Функция создается командой:

Создана процедура для увеличения на заданный % телефонных тарифов для городов определенного региона.

CREATE PROC my_proc1@p FLOAT,@r VARCHAR(20)AS UPDATE Город SET Тариф = Тариф*(1+@p)WHERE Регион=@r

Определите правильную команду для выполнения процедуры.

Даны таблицы Рейс и Билет. Пусть они не связаны внешним ключом. Для обеспечения целостности данных создать триггер, обрабатывающий удаление записи о некотором рейсе из таблицы Рейс. При этом из таблицы Билет необходимо удалить записи обо всех билетах, проданных на этот рейс.

CREATE TRIGGER  trig_delON Рейс FOR DELETE AS

Выберите операторы для продолжения текста триггера.

Дана таблица Билет. Разработать триггер, который выполняется вместо изменения стоимости одного билета. Изменение стоимости билета выполнить только в том случае, если на этот рейс продано не менее 20 билетов.

CREATE TRIGGER  trig_upd  ON Билет INSTEAD OF UPDATE AS  

Выберите операторы для продолжения текста триггера.

Дан фрагмент сценария VBScript для изменения данных в таблице Автор.

prm1=Server.CreateObject("ADODB.Parameter")prm2=Server.CreateObject("ADODB.Parameter")cmd.CommandText = "update Автор set Телефон=? where Фамилия=?"cmd.CommandType = adCmdTextcmd.Prepared = TrueSet prm1 = сmd.CreateParameter("p1", adVarChar, adParamInput,8 ,'12-34-56')Set prm2 = сmd.CreateParameter("p2", adVarChar, adParamInput,20 ,'Иванов')cmd.Parameters.Append prm1cmd.Parameters.Append prm2cmd.Execute

Указать правильные ответы.

Какие из следующих строк можно внести в поле, описанное как VARCHAR(10)?

Найти абонентов, которые звонят в Москву, но ни разу не звонили в Самару в мае.
CREATE TABLE Город ( Код_Города INT ,   Название  VARCHAR(20) NOT NULL,   Тариф     MONEY)
CREATE TABLE Разговор(Код_Разговора     INT , Код_Города       INT NOT NULL, Фамилия          VARCHAR(20), Дата             DATETIME NOT NULL, Продолжительность INT NOT NULL)

Даны таблицы Город и Разговор.

CREATE TABLE Город ( Код_Города INT ,   Название  VARCHAR(20) NOT NULL,   Тариф     MONEY,   Регион    VARCHAR(20))
CREATE TABLE Разговор(Код_Разговора     INT , Код_Города         INT NOT NULL, Фамилия           VARCHAR(20), Дата              DATETIME NOT NULL, Продолжительность INT NOT NULL)

Рассчитать стоимость каждого телефонного разговора с Москвой.

Пусть дана таблица Город с полями

Код_Города CHAR(5) NOT NULL
Название VARCHAR(20)
Регион VARCHAR(30)
Тариф MONEY NOT NULL

Увеличить телефонный тариф на 15% для городов Поволжья и Нечерноземья.

Разработана процедура, возвращающая тарифы городов указанного региона.

CREATE PROC my_proc@r VARCHAR(20),@cur CURSOR VARYING OUTPUTASSET @cur=CURSOR FORWARD_ONLY STATIC FOR   SELECT Название, Тариф, Регион   FROM Город   WHERE Регион=@rOPEN @cur

Вызов процедуры и вывод на печать названий городов из выходного курсора осуществляется следующим образом:

DECLARE @my_cur CURSORDECLARE @n VARCHAR(20)EXEC my_proc @cur=@my_cur OUTPUT, ‘Поволжье’  FETCH NEXT FROM @my_cur INTO @n  SELECT @nWHILE (@@FETCH_STATUS=0)BEGIN  FETCH NEXT FROM @my_cur INTO @n  SELECT @nENDCLOSE @my_curDEALLOCATE @my_cur  

Укажите правильные ответы.

Дан фрагмент Java-программы для изменения данных в таблице Блюдо.

PreparedStatement mySt=Con.prepareStatement("update Блюдо set Калорийность=?   where Тип_блюда=?");mySt.setString(1,’Десерт’);mySt.setString(2, ’200’);int res=mySt.executeUpdate();

Указать правильные ответы.

Даны таблицы

CREATE TABLE Автор(Код_Автора INT ,Фамилия VARCHAR(50) NULL,Имя VARCHAR(50) NULL,Отчество VARCHAR(50) NULL,Пол VARCHAR(50) NOT NULL ,Дата_рождения DATETIME ,Телефон CHAR(9))
CREATE TABLE Книга(Код_Книги INT,Название VARCHAR(50) NOT NULL,Цена MONEY,Тематика VARCHAR(50) NOT NULL,Издательство VARCHAR(50) NOT NULL,Код_Автора INT NOT NULL)

Удалить сведения об авторах, чьи произведения не издаются.

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1' sp_addrolemember 'role1','UserA'sp_addrolemember 'role1','UserB'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAREVOKE INSERT ON tab TO role1GRANT INSERT ON tab TO UserC  
9INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
10????

Дана таблица Товар. На начало транзакций в таблице записей нет.

BEGIN TRANSAVE TRANSACTION  p1 INSERT Товар (Код_Товара, Название, остаток) VALUES (1, 'a',10)INSERT Товар (Код_Товара, Название, остаток) VALUES (2, 'b',20)INSERT Товар (Код_Товара, Название, остаток) VALUES (3, 'c',30)INSERT Товар (Код_Товара, Название, остаток) VALUES (4, 'd',40)INSERT Товар (Код_Товара, Название, остаток) VALUES (5, 'e',50)  SAVE TRANSACTION  p2  DELETE FROM Товар WHERE Код_Товара=2    SAVE TRANSACTION  p3    DELETE FROM Товар WHERE Код_Товара=5    SAVE TRANSACTION  p4      DELETE FROM Товар WHERE Код_Товара<>1    ROLLBACK TRANSACTION p3    INSERT Товар (Код_Товара, Название, остаток)     VALUES (6, 'f',70)COMMIT

После завершения транзакции в таблице Товар останутся товары с кодами

Какие из следующих строк можно внести в поле, описанное как VARCHAR(6), чтобы данные хранились без потерь?

Создать базу данных basa1, причем для данных на диске D определить два файла с начальным размером по 100 Мб, но не более 500 Мб, с величиной прироста 10%, для журнала транзакций – на диске E один файл с начальным размером 50 Мб, но не более 100 Мб, с величиной прироста 10 Мб.

CREATE DATABASE basa1ON PRIMARY ( NAME=b1, FILENAME=’D:\user\b1.mdf’,SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%),(NAME=b2,  FILENAME=’D:\user\b2.mdf’, SIZE=100MB, MAXSIZE=500, FILEGROWTH=10%)LOG ON(NAME=l1, FILENAME=’E:\user\l1.ldf’, SIZE=50MB, MAXSIZE=100, FILEGROWTH=10)

Выберите правильный ответ.

Создана таблица Город. Добавить поле Регион и изменить тип данных поля Тариф на денежный.

  CREATE TABLE Город (Код_Города  CHAR(3),  Название   VARCHAR(20),    Тариф      INT,  ЧасПояс    INT)

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для вставки новой записи, причем необходимо отменить ввод, если номер конечного события оказался меньше номера начального события.

CREATE TRIGGER  trig_insON Граф FOR INSERT AS

Выберите операторы для продолжения текста триггера.

В базе данных basa_user зарегистрировано два пользователя: UserA и UserB. Какие действия предпримет система?
Basa_user
АдминистраторUserAUserB
GRANT ALL TO UserAGRANT SELECT ON UserA.tab TO UserBCREATE TABLE tab(id_t INT PRIMARY KEY, nam_t VARCHAR(20)) 
INSERT INTO tab values (1,'aa')INSERT INTO tab values (2,'bb')SELECT * FROM UserA.tab
???

Дана таблица Город. Вывести в алфавитном порядке список городов Поволжского региона, в коде которых встречается цифра 9, а в названии города на втором месте стоит буква «д» или «ж».

Даны таблицы Рейс и Билет. Создать триггер, обрабатывающий изменение в одной записи номера рейса в таблице Билет. При этом в таблице Рейс необходимо пересчитать количество свободных мест (увеличить для прежнего рейса и уменьшить для нового значения номера рейса).

CREATE TRIGGER  trig_updON Билет FOR UPDATE AS

Выберите операторы для продолжения текста триггера.

Разработан курсор для вывода списка телефонных тарифов городов Поволжья.

DECLARE @n     VARCHAR(50),        @r     VARCHAR(50),                @t     MONEY,        @message VARCHAR(80)DECLARE @cur1 CURSORPRINT '  Тарифы Поволжья'DECLARE cursor1 CURSOR LOCAL SCROLL FOR    SELECT Название, Тариф, Регион   FROM Город   WHERE Регион='Поволжье'OPEN cursor1SET @cur1=cursor1FETCH NEXT  FROM cursor1 INTO  @n, @t, @rFETCH RELATIVE 3 FROM cursor1 INTO  @n, @t, @rFETCH RELATIVE -2 FROM cursor1 INTO  @n, @t, @r    SELECT @message='Город '+@n+    '  Тариф  '+ CAST(@t AS VARCHAR(4))    PRINT @message    CLOSE cursor1DEALLOCATE cursor1

Какая из имеющихся в курсоре записей будет распечатана?

Какие функции перешли к среднему уровню обработки данных в трехуровневой архитектуре «клиент-сервер»?

Какие из следующих описаний типов являются неправильными?

Какие из следующих описаний типов являются правильными?

Даны таблицы

CREATE TABLE Блюдо(Название_блюда VARCHAR(20) NOT NULL,Время_приготовления INT NOT NULL,Общая_калорийность INT NOT NULL,Номер_рецепта INT,Повар VARCHAR(20),Стоимость INT )
CREATE TABLE Компонент(Название_компонента VARCHAR(20),Калорийность INT NOT NULL,Жиры INT,Белки INT,Блюдо VARCHAR(20),Углеводы INT,Стоимость_100_грамм FLOAT NOT NULL)

Сформировать список поваров, которые используют масло, но обходятся без молока.

Необходимо разработать функцию для получения списка городов указанного региона, телефонные тарифы которых не превосходят заданную цифру. Функция создается командой:

Дан фрагмент Java-программы для выборки данных из таблицы Рейс, расположенной в источнике данных с именем DSN=mystud.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection myCon= DriverManager.getConnection("jdbc:odbc:mystud","user1","user1");Statement mySt=myCon.createStatement();ResultSet rs=mySt.executeQuery("SELECT Конечный_пункт, Дата_вылета,   Продолжительность_маршрута FROM Рейс ");while   {       String var1=rs.getString(1);       String var2=rs.getString(2);       int var3=rs.getInt(3);       rs.next();...}

Указать правильные ответы.

Пусть дана таблица Автор с полями

Фамилия VARCHAR(50)
Пол CHAR(3)
Дата_рождения DATETIME NOT NULL
Телефон CHAR(9)
Количество_трудов INT
Город VARCHAR(15)

Удалить информацию об авторах, не имеющих телефона (в этом случае это поле Null).

Даны таблицы Рейс и Билет.

CREATE TABLE Рейс(Номер_рейса INT,Конечный_пункт VARCHAR(20),Дата_вылета DATETIME,Продолжительность_маршрута INT,Число_билетов INT,Стоимость MONEY)
CREATE TABLE Билет(Номер_места INT,Номер_рейса INT,Дата_продажи DATETIME,Стоимость MONEY,Фамилия_пассажира VARCHAR(30))

Для полей Дата_продажи таблицы Билет и Дата_вылета таблицы Рейс создать и применить умолчание для ввода текущей даты.

Дано представление с данными из разных таблиц.

CREATE VIEW view3ASSELECT Блюдо.Название_блюда, Компонент.Название_компонента, Компонент.ВесFROM Блюдо INNER JOIN Компонент ON Блюдо.Название_блюда = Компонент.Блюдо;

Предпринимается попытка добавить в представление запись.

INSERT INTO view3(Название_блюда, Название_компонента, Вес)VALUES('Щи','Капуста',0.350)

Результатом выполнения команды является следующее:

Для определения общей стоимости разговоров некоторого абонента за определенный месяц разработана процедура, в которой указаны значения параметров по умолчанию:

CREATE PROC my_proc@f  VARCHAR(20)=’Иванов’,@m  INT=2,@st FLOAT=5.0 OUTPUTASSELECT @st=Sum(Город.Тариф*Разговор.Продолжительность) FROM Город INNER JOIN Разговор ON Город.Код_Города = Разговор.Код_Города, Разговор.ФамилияGROUP BY Город.Регион, Month(Разговор.Дата)HAVING Разговор.Фамилия=@f AND Month(Разговор.Дата)=@m

Укажите правильный вызов процедуры

В таблице Граф представлен график сетевого планирования:

CREATE TABLE Граф(номер   INT PRIMARY KEY, --номер работы нач_соб INT,             --начальное событие кон_соб INT,             --конечное событие длит    INT)             --длительность работы

В таблице, моделирующей сетевой график, каждая запись соответствует некоторой работе, связывающей два события: начальное и конечное. Например:

НомерНач_собКон_собДлит
12345678910
1113432556
2434556677
51236285472

Реализуем в виде триггеров ряд правил для обеспечения целостности данных в подобной сетевой структуре. Начальное событие графика (исток) обозначено цифрой "1". Разработать триггер для удаления работы, причем при попытке удаления единственной работы, выходящей из данного начального события, отменить удаление, заменив в удаляемой работе конечное событие на сток (т.е. на конечное событие с максимальным номером).

CREATE TRIGGER  trig_delON Граф INSTEAD OF DELETEAS

Выберите операторы для продолжения текста триггера.

В базе данных basa_user зарегистрировано три пользователя: UserA, UserB и UserC. Какие действия предпримет система?
Basa_user
 АдминистраторUserAUserBUserC
12345678CREATE TABLE tab(id_t INT, nam_t CHAR(8))sp_addrole 'role1'sp_addrolemember'role1','UserA'sp_addrolemember 'role1','UserB'GRANT INSERT ON tab TO role1 GRANT INSERT ON tab TO UserAWITH GRANT OPTIONREVOKE INSERT ON tab TO role1GRANT INSERT ON tab TO UserC  
9INSERT INTO tab values(1,'aa')INSERT INTO tab values (2,'bb')INSERT INTO tab values (3,'cc')INSERT INTO tab values (4,'dd')
10????

Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA.

Пользователь UserA Пользователь UserB
USE basa_userSET TRANSACTION ISOLATION LEVEL READUNCOMMITTEDBEGIN TRANSACTION TRA1.SELECT * FROM Товар3.UPDATE Товар SETостаток=остаток+10 WHERE Код_Товара=4ROLLBACK TRANSACTION TRA
USE basa_userSET TRANSACTION ISOLATIONLEVEL REPEATABLE READBEGIN TRANSACTION TRB2.SELECT * FROM Товар4.SELECT * FROM ТоварROLLBACK TRANSACTION TRB

Какие шаги система выполнит, а какие будут заблокированы?

Для определения общей калорийности блюд установленного типа, приготовленных заданным поваром, разработана процедура:

CREATE PROC my_proc3@t varchar(50),@p varchar(50),@k FLOAT =10.0 OUTPUTASSELECT @k=Sum(Компонент.Калорийность*Компонент.Вес)FROM Блюдо INNER JOIN Компонент ON Блюдо.Название_блюда = Компонент.БлюдоGROUP BY Блюдо.Тип_блюда, Блюдо.ПоварHAVING Блюдо.Тип_блюда=@t AND Блюдо.Повар=@p

Укажите правильный вызов процедуры