игра брюс 2048
Главная / Базы данных / SQL и процедурно-ориентированные языки / Тест 5

SQL и процедурно-ориентированные языки - тест 5

Упражнение 1:
Номер 1
Какие из следующих подзапросов можно отнести к табличному подзапросу:

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 WHERE EXISTS (SELECT * FROM tbl2); 

 (2) SELECT f1,f2,f3 from tbl1 WHERE f3 = ANY (SELECT f3 FROM tbl2); 

 (3) SELECT f1, COUNT(*), SUM(f2) from tbl1 t1 GROUP BY f1 HAVING SUM(f2)> ( SELECT MIN(f2)*4 FROM tbl1 t1_in WHERE t1.f1=t1_in.f1); 

 (4) SELECT * from tbl1 WHERE f2=( SELECT f2 FROM tbl2 WHERE f1=1); 


Номер 2
Какие из следующих подзапросов можно отнести к скалярному подзапросу:

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 WHERE f3 = ANY (SELECT f3 FROM tbl2); 

 (2) SELECT * from tbl1 WHERE f2 IN (SELECT f2 FROM tbl2 WHERE f3>100); 

 (3) SELECT f1, COUNT(*), SUM(f2) from tbl1 t1 GROUP BY f1 HAVING SUM(f2) > ( SELECT MIN(f2)*4 FROM tbl1 t1_in WHERE t1.f1=t1_in.f1); 

 (4) SELECT * from tbl1 WHERE f2=( SELECT f2 FROM tbl2 WHERE f1=1); 


Номер 3
Какие из следующих подзапросов можно отнести к подзапросу строки, если в поле f1 таблицы tbl1 содержатся уникальные данные:

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 WHERE EXISTS (SELECT * FROM tbl1); 

 (2) INSERT INTO tbl2(f1,f2,f3) (SELECT f1,f2,f3 FROM tbl1 WHERE f1=1); 

 (3) SELECT f1,f2,f3 from tbl1 WHERE f3 = ANY (SELECT f3 FROM tbl2); 

 (4) SELECT * from tbl2 WHERE f2 IN (SELECT f2 FROM tbl1); 

 (5) SELECT * from tbl1 WHERE f2=(SELECT f2 FROM tbl2 WHERE f1=1); 


Упражнение 2:
Номер 1
Отметьте SQL-оператор, определяющий коррелированный подзапрос, имеющий правильный синтаксис:

Ответ:

 (1) SELECT f1, COUNT(*), SUM(f2) from tbl1 t1 GROUP BY f1 HAVING SUM(f2)> ( SELECT MIN(f2)*4 FROM tbl1 t1_in WHERE t1.f1=t1_in.f1); 

 (2) SELECT f1, COUNT(*), SUM(f2) from tbl1 t1 GROUP BY f1 HAVING f2> ( SELECT MIN(f2)*4 FROM tbl1 t1_in WHERE t1.f1=t1_in.f1); 


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

Ответ:

 (1) SELECT * from tbl1 t1 WHERE f2 IN ( SELECT f2 FROM tbl2 t2 WHERE t1.f3=t2.f3); 

 (2) SELECT * from tbl1 t1 WHERE f2 IN ( SELECT f2 FROM tbl2 WHERE t1.f3=f3); 


Номер 3
Отметьте SQL-операторы, определяющие коррелированный подзапрос и имеющие правильный синтаксис:

Ответ:

 (1) SELECT f1.f2.f3 FROM tbl1 WHERE f2> ( SELECT AVG(f2) FROM tbl1); 

 (2) SELECT * from tbl1 t1 WHERE f2 IN ( SELECT f2 FROM tbl2 t2 WHERE t1.f3=t2.f3); 


Упражнение 3:
Номер 1
Отметьте пары значений, которые будут вставлены в таблицу tbl1 оператором 
INSERT INTO tbl1(f1,f2) 
  VALUES (1+ COALESCE (
    SELECT MAX(f1) FROM tbl1, 0 ), 100);, если эта таблица не содержит ни одной строки:

Ответ:

 (1) 0 10 

 (2) 1 10 

 (3) 1 100 

 (4) NULL 100 


Упражнение 4:
Номер 1
Какие из следующих подзапросов можно отнести к табличному подзапросу:

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 WHERE f3 = ANY (SELECT f3 FROM tbl2); 

 (2) SELECT f1, COUNT(*), MIN(f2) from tbl1 t1 GROUP BY f1 HAVING MAX(f2)> ( SELECT AVG(f2)*8 FROM tbl1 t11 WHERE t1.f1=t11.f1); 

 (3) SELECT f1,f2 from tbl1 WHERE f2=( SELECT f2 FROM tbl2 WHERE f1=1); 


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

Ответ:

 (1) SELECT f1.f2.f3 FROM tbl1 WHERE f2> ( SELECT AVG(f2) FROM tbl1); 

 (2) SELECT * from tbl1 t1 WHERE f2 IN ( SELECT f2 FROM tbl2 t2 WHERE t1.f3=t2.f3); 

 (3) SELECT f1, COUNT(*), SUM(f2) from tbl1 t1 GROUP BY f1 HAVING f2> ( SELECT MIN(f2)*4 FROM tbl1 t1_in WHERE t1.f1=t1_in.f1); 


Номер 3
Отметьте пары значений, которые будут вставлены в таблицу tbl1 оператором 
INSERT INTO tbl1(f1,f2) 
  VALUES (10+ COALESCE (
    SELECT MAX(f1) FROM tbl1, 0 ), 50);, если эта таблица не содержит ни одной строки:

Ответ:

 (1) 0 50 

 (2) 1 50 

 (3) 10 50 

 (4) NULL 50 


Упражнение 5:
Номер 1
Какие из следующих подзапросов можно отнести к скалярному подзапросу:

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 WHERE f2 = IN (SELECT f2 FROM tbl2); 

 (2) SELECT * from tbl1 WHERE f2 ANY (SELECT f2 FROM tbl2 WHERE f3>50); 

 (3) SELECT f1,f2,f3 from tbl1 WHERE f2=(SELECT f2 FROM tbl2 WHERE f1=1010); 


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

Ответ:

 (1) SELECT f1,f2,f3 from tbl1 t1 WHERE f2 ANY (SELECT f2 FROM tbl2 t2 WHERE t1.f3=t2.f3); 

 (2) SELECT * from tbl1 t1 WHERE f2 IN ( SELECT f2 FROM tbl2 WHERE f3>100); 

 (3) SELECT f1, MIN(f2) from tbl1 t1 GROUP BY f1 HAVING MAX(f2)> ( SELECT AVG(f2)*8 FROM tbl1 t11 WHERE t1.f1=t11.f1);  


Номер 3
Отметьте все пары значений, которые будут занесены в результирующий набор оператором 
SELECT f1, CASE f2 WHEN 'aaa' THEN 'AAA' ELSE f2 END FROM tbl1;, если таблица tbl1 содержит следующие строки:
поле f1:поле f2:
1'aaa'
2'bbb'
3'ccc'
4'ddd'

Ответ:

 (1) 1 'aaa' 

 (2) 1 'AAA' 

 (3) 2 'bbb' 

 (4) 3 'ccc' 

 (5) 4 'ddd' 




Главная / Базы данных / SQL и процедурно-ориентированные языки / Тест 5