игра брюс 2048
Главная / Базы данных / Основы SQL / Тест 11

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

Упражнение 1:
Номер 1

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

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

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


Ответ:

 (1) DECLARE @kol INT SET @kol=user1.my_func1('Иванов') SELECT @kol  

 (2) SELECT user1.my_func1(@n='Иванов')  

 (3) SELECT my_func1 @n='Иванов'  

 (4) SELECT * FROM my_func1 WHERE @n='Иванов'  


Номер 2

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

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

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


Ответ:

 (1) DECLARE @kol INT SET @kol=user1.my_func1(‘Москва’) SELECT @kol  

 (2) SELECT my_func1 @n=‘Москва’  

 (3) SELECT * FROM my_func1 WHERE @n='Москва'  


Номер 3

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

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

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


Ответ:

 (1) DECLARE @st FLOAT SET @st=user1.my_func1(‘Десерт’) SELECT @st  

 (2) SELECT my_func1 @n=‘ Десерт’  

 (3) SELECT * FROM my_func1 WHERE @t='Десерт'  


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

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

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


Ответ:

 (1) DECLARE @st FLOAT SET @st=user1.my_func1(‘Иванов’) SELECT @st  

 (2) SELECT user1.my_func1(‘Иванов’)  

 (3) SELECT my_func1 @n=‘Иванов’  

 (4) SELECT * FROM my_func1 WHERE @t='Иванов '  


Упражнение 2:
Номер 1
				

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


Ответ:

 (1)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS RETURN (SELECT Название       FROM Книга       WHERE Издательство="Мир"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название FROM user1.my_func2()  

 (2)

Функция создается командой:

CREATE FUNCTION my_func2() RETURNS AS RETURN (SELECT Название       FROM Книга       WHERE Издательство="Мир"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название FROM my_func2()  

 (3)

Функция создается командой:

CREATE FUNCTION user1.my_func2 RETURNS TABLE AS RETURN (SELECT Название       FROM Книга       WHERE Издательство="Мир"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название FROM user1.my_func2  

 (4)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS       SELECT Название       FROM Книга       WHERE Издательство="Мир"       ORDER BY Название

Для вызова функции используется команда:

SELECT * FROM user1.my_func2()  


Номер 2
				

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


Ответ:

 (1)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS RETURN (SELECT Номер_рейса, Дата_вылета       FROM Рейс       WHERE Конечный_пункт="Москва"       ORDER BY Дата_вылета)

Для вызова функции используется команда:

SELECT Номер_рейса, Дата_вылета FROM user1.my_func2()  

 (2)

Функция создается командой:

CREATE FUNCTION my_func2() RETURNS AS RETURN (SELECT Номер_рейса, Дата_вылета       FROM Рейс       WHERE Конечный_пункт="Москва"       ORDER BY Дата_вылета)

Для вызова функции используется команда:

SELECT Номер_рейса, Дата_вылета FROM my_func2()  

 (3)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS       SELECT Номер_рейса, Дата_вылета       FROM Рейс       WHERE Конечный_пункт="Москва"       ORDER BY Дата_вылета

Для вызова функции используется команда:

SELECT * FROM user1.my_func2()  


Номер 3
				

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


Ответ:

 (1)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS RETURN (SELECT Название_компонента,Калорийность       FROM Компонент       WHERE Калорийность>300)

Для вызова функции используется команда:

SELECT Название_компонента,Калорийность FROM user1.my_func2()  

 (2)

Функция создается командой:

CREATE FUNCTION my_func2() RETURNS AS RETURN (SELECT Название_компонента,Калорийность       FROM Компонент       WHERE Калорийность>300)

Для вызова функции используется команда:

SELECT Название_компонента,Калорийность FROM my_func2()  

 (3)

Функция создается командой:

CREATE FUNCTION user1.my_func2 RETURNS TABLE AS RETURN (SELECT Название_компонента,Калорийность       FROM Компонент       WHERE Калорийность>300)

Для вызова функции используется команда:

SELECT Название_компонента,Калорийность FROM user1.my_func2  

 (4)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS       SELECT Название_компонента,Калорийность       FROM Компонент       WHERE Калорийность>300

Для вызова функции используется команда:

SELECT * FROM user1.my_func2()  


Номер 4
				

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


Ответ:

 (1)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS RETURN (SELECT Название, Тариф       FROM Город       WHERE Регион="Поволжье"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название FROM user1.my_func2()  

 (2)

Функция создается командой:

CREATE FUNCTION my_func2() RETURNS AS RETURN (SELECT Название, Тариф       FROM Город       WHERE Регион="Поволжье"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название, Тариф FROM my_func2()  

 (3)

Функция создается командой:

CREATE FUNCTION user1.my_func2 RETURNS TABLE AS RETURN (SELECT Название, Тариф       FROM Город       WHERE Регион="Поволжье"       ORDER BY Название)

Для вызова функции используется команда:

SELECT Название, Тариф FROM user1.my_func2  

 (4)

Функция создается командой:

CREATE FUNCTION user1.my_func2() RETURNS TABLE AS       SELECT Название, Тариф       FROM Город       WHERE Регион="Поволжье"       ORDER BY Название

Для вызова функции используется команда:

SELECT * FROM user1.my_func2()  


Упражнение 3:
Номер 1
				

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


Ответ:

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

 (2) CREATE FUNCTION my_func3(VARCHAR(20),INT) RETURNS AS RETURN (SELECT Название       FROM Книга       WHERE Издательство=? AND количество>=?       ORDER BY Название)  

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

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


Номер 2
				

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


Ответ:

 (1) CREATE FUNCTION user1.my_func3( @c VARCHAR(20),@d DATETIME) RETURNS TABLE AS RETURN (SELECT Номер_рейса       FROM Рейс       WHERE Конечный_пункт=@c AND Дата_вылета=@d)  

 (2) CREATE FUNCTION my_func3(VARCHAR(20),DATETIME) RETURNS AS RETURN (SELECT Номер_рейса       FROM Рейс       WHERE Конечный_пункт=? AND Дата_вылета=?)  

 (3) CREATE FUNCTION user1.my_func3 DECLARE (@c VARCHAR(20),@d DATETIME RETURNS TABLE AS RETURN (SELECT Номер_рейса       FROM Рейс       WHERE Конечный_пункт=@c AND Дата_вылета=@d)  

 (4) CREATE FUNCTION user1.my_func3( DECLARE (@c VARCHAR(20),@d DATETIME) RETURNS TABLE AS       SELECT Номер_рейса       FROM Рейс       WHERE Конечный_пункт=@c AND Дата_вылета=@d  


Номер 3
				

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


Ответ:

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

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

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

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


Номер 4
				

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


Ответ:

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

 (2) CREATE FUNCTION my_func3( VARCHAR(20),FLOAT) RETURNS AS RETURN (SELECT Название, Тариф       FROM Город       WHERE Регион=? AND Тариф<=?       ORDER BY Название)  

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

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


Упражнение 4:
Номер 1
				

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

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

Ответ:

 (1) SELECT Название FROM user1.my_func3(‘Мир’,100)  

 (2) SELECT Название FROM my_func3(@iz=’Мир’,@k=100)  

 (3) SELECT Название FROM user1.my_func3 WHERE @iz=’Мир’ AND @k=100  

 (4) SELECT * FROM user1.my_func3(100,’Мир’)  


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

CREATE FUNCTION user1.my_func3(
@c VARCHAR(20),@d DATETIME)
RETURNS TABLE
AS
RETURN (SELECT Номер_рейса
        FROM Рейс
        WHERE Конечный_пункт=@c AND Дата_вылета=@d)


Ответ:

 (1) SELECT Номер_рейса, Дата_вылета FROM user1.my_func3(’Москва’,’1.03.04’) 

 (2) SELECT Номер_рейса, Дата_вылета FROM my_func3(@c=’Москва’,@d=’1.03.04’) 

 (3) SELECT Номер_рейса, Дата_вылета FROM user1.my_func3 WHERE @c=’Москва’ AND @d=’1.03.04’ 

 (4) SELECT * FROM user1.my_func3(’1.03.04’, ’Москва’)  


Номер 3
				

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

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

Ответ:

 (1) SELECT Название_компонента,Калорийность FROM user1.my_func3(’Пирожное’,200)  

 (2) SELECT Название_компонента,Калорийность FROM my_func3(@b=’Пирожное’,@k=200)  

 (3) SELECT Название_компонента,Калорийность FROM user1.my_func3 WHERE @b=’Пирожное’ AND @k=200  

 (4) SELECT * FROM user1.my_func3(200,’Пирожное’)  


Номер 4
				

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

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

Ответ:

 (1) SELECT Название FROM user1.my_func3(’Поволжье’,3.50)  

 (2) SELECT Название, Тариф FROM my_func3(@r=’Поволжье’,@t=3.50)  

 (3) SELECT Название, Тариф FROM user1.my_func3 WHERE @r=’Поволжье’AND @t=3.50  

 (4) SELECT * FROM user1.my_func3(3.50,’Поволжье’)  


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

Ответ:

 (1) CREATE FUNCTION user1.my_func ( @t VARCHAR(20),@k INT) RETURNS TABLE AS RETURN (SELECT Название       FROM Книга       WHERE Тематика=@t AND количество<@k)  

 (2) CREATE FUNCTION my_func(VARCHAR(20),INT) RETURNS AS RETURN (SELECT Название       FROM Книга       WHERE Тематика=? AND количество<? )  

 (3) CREATE FUNCTION user1.my_func DECLARE @t VARCHAR(20),@k INT RETURNS TABLE AS RETURN (SELECT Название       FROM Книга       WHERE Тематика=@t AND количество<@k)  

 (4) CREATE FUNCTION user1.my_func( DECLARE @t VARCHAR(20),@k INT) RETURNS TABLE AS       SELECT Название       FROM Книга       WHERE Тематика=@t AND количество<@k  


Номер 2
				

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


Ответ:

 (1) CREATE FUNCTION user1.my_func( @r INT,@d DATETIME) RETURNS TABLE AS RETURN (SELECT Билет.Фамилия_пассажира       FROM Билет       WHERE Билет.Дата_продажи=@d AND Билет.Номер_рейса=@r)  

 (2) CREATE FUNCTION.my_func(@r INT,@d DATETIME) RETURNS TABLE AS RETURN (SELECT Билет.Фамилия_пассажира       FROM Билет       WHERE Билет.Дата_продажи=? AND Билет.Номер_рейса=?)  

 (3) CREATE FUNCTION user1.my_func (DECLARE @r INT,@d DATETIME) RETURNS TABLE AS RETURN (SELECT Билет.Фамилия_пассажира       FROM Билет       WHERE Билет.Дата_продажи=@d AND Билет.Номер_рейса=@r)  

 (4) CREATE FUNCTION user1.my_func(@r INT,@d DATETIME) RETURNS TABLE AS DECLARE @r INT,@d DATETIME RETURN (SELECT Билет.Фамилия_пассажира       FROM Билет       WHERE Билет.Дата_продажи=@d AND Билет.Номер_рейса=@r)  


Номер 3

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


Ответ:

 (1) CREATE FUNCTION user1.my_func( @n VARCHAR(20),@d INT) RETURNS TABLE AS RETURN (SELECT Разговор.Фамилия       FROM Разговор INNER JOIN Город       ON Разговор.Код_Города = Город.Код_Города       WHERE Month(Разговор.Дата)=@d AND        Город.Название=@n)  

 (2) CREATE FUNCTION my_func(@n VARCHAR(20),@d INT) RETURNS TABLE AS RETURN (SELECT Разговор.Фамилия       FROM Разговор INNER JOIN Город       ON Разговор.Код_Города = Город.Код_Города       WHERE Month(Разговор.Дата)=? AND        Город.Название=?)  

 (3) CREATE FUNCTION user1.my_func DECLARE @n VARCHAR(20),@d INT RETURNS TABLE AS RETURN (SELECT Разговор.Фамилия       FROM Разговор INNER JOIN Город       ON Разговор.Код_Города = Город.Код_Города       WHERE Month(Разговор.Дата)=@d AND        Город.Название=@n)  

 (4) CREATE FUNCTION user1.my_func(@n,@d) RETURNS TABLE AS DECLARE @n VARCHAR(20),@d INT RETURN (SELECT Разговор.Фамилия       FROM Разговор INNER JOIN Город       ON Разговор.Код_Города = Город.Код_Города       WHERE Month(Разговор.Дата)=@d AND        Город.Название=@n)  


Упражнение 6:
Номер 1

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


Ответ:

 (1) SELECT Название FROM user1.my_func('детектив',100)  

 (2) SELECT Название FROM my_func(t='детектив',k=100)  

 (3) SELECT Название FROM user1.my_func WHERE @t='детектив' AND @k=100  


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

Ответ:

 (1) SELECT Фамилия_пассажира FROM user1.my_func(234,’1.03.04’) 

 (2) SELECT Фамилия_пассажира WHERE my_func(@r=234,@d=’1.03.04’) 

 (3) SELECT Фамилия_пассажира FROM user1.my_func3 WHERE @r=234 AND @d=’1.03.04’ 


Номер 3

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


Ответ:

 (1) SELECT Фамилия FROM user1.my_func (’Москва’,3)  

 (2) SELECT Фамилия FROM my_func(@n=’Москва’,@m=3)  

 (3) SELECT Фамилия FROM user1.my_func WHERE @n=’Москва’AND @m=3  




Главная / Базы данных / Основы SQL / Тест 11