1

Тема: Sql запити (тест)

Допоможіть перевірити тест
Правильні відповіді на мою думку я відмітив +, якщо що не так то підкажіть як правильно і чому
Заздалегідь дякую

Виберіть правильну відповідь

1. Ви хочете показати назви книг, які відповідають наступним критеріям:

  • Придбано до 11 листопада 2002 року

  • Ціна менше 500 доларів США або більше 900 доларів США

Ви хочете відсортувати результат за датою покупки, починаючи з останньої купленої книги.
Яке з наступних тверджень ви повинні використовувати?
Відповіді:

  SELECT book_title FROM books WHERE price IN (500, 900) AND purchase_date< ‘2002-11-11’ ORDER BY purchase date ASC;
  SELECT book_title FROM books WHERE price < 500 OR>900 AND purchase_date DESC;
+ SELECT book_title FROM books WHERE (price < 500 OR price > 900) AND purchase_date < ‘2002-11-11’ ORDER BY purchase_date DESC;

2. Розглянемо таку структуру таблиці студентів:

rollno int
name varchar(20)
course varchar(20)

Яким буде запит, щоб відобразити курси, на які зараховано більше 5 студентів?
Відповіді:

  Select course from students where count(course) > 5;
+ Select course from students group by course having count(*) > 5;
  Select course from students where count(*) > 5 group by course;

3. Розглянемо запит:

SELECT name
FROM Students
WHERE name LIKE ‘_a%’;

Які імена будуть відображатися?
Відповіді:

  Імена починаються з "a"
+ Імена, що містять "а" як другу букву
  Імена, що містять "a" як будь-яку літеру, крім першої

4. Який запит буде повертати значення, які містять значення "Pizza", "Burger" або "Hotdog"?
Відповіді:

  SELECT * FROM fiberbox WHERE field1 LIKE ‘%Pizza%’ OR field1 LIKE ‘%Burger%’ OR field1 LIKE ‘%Hotdog%’;
+ SELECT * FROM fiberbox WHERE field1 = ‘%Pizza%’ OR field1 = ‘%Burger%’ OR field1 = ‘%Hotdog%’;
  SELECT * FROM fiberbox WHERE field1 = ‘?Pizza?’ OR field1 = ‘?Burger?’ OR field1 = ‘?Hotdog?’;

5. Розглянемо такі  запити:

create table foo (id int primary key, name int);
create table foo2 (id int primary key, foo_id int references foo(id) on delete cascade);

Яке з наведених тверджень істинно?
  Якщо рядок в таблиці foo2, з foo_id = 2 видаляється, то рядок з ідентифікатором id = 2 в таблиці foo буде автоматично видалено
  Ці запити недійсні
+ Якщо рядок з id = 2 в таблиці foo видаляється, всі рядки з foo_id = 2 в таблиці foo2 будуть видалені.

6. Який з наведених нижче операторів використовується для зміни структури таблиці після її створення?
Відповіді:

  CHANGE TABLE
  MODIFY TABLE
+ ALTER TABLE

7. Який з наведених нижче операторів надасть Пітеру дозвіл на модифікацію бази даних?
Відповіді:

  GRANT ALL ON testdb.* TO peter PASSWORD ‘Software’
  GRANT ALL ON testdb.* TO peter IDENTIFIED by ‘Software’
+ GRANT ALL OF testdb.* TO peter PASSWORD ‘Software’

8.

create table votes (
    id,
    user,
    email,
    address,
    primary key(id),
);

Який з наведених нижче операторів надасть унікальне обмеження цілісності на стовпці (user, email, address)?
Відповіді:

  CHANGE TABLE votes ADD UNIQUE INDEX(user, email, address);
+ UNIQUE KEY votes (user, email, address);
  ALTER TABLE votes ADD UNIQUE (user, email, address);

9. Які з наступних операторів можуть викликати тригер?
Відповіді:

  alter
+ insert
  drop

2

Re: Sql запити (тест)

1. Ви не вказали СУБД. Діалекти SQL можуть досить сильно відрізнятися.
2. Перечитайте документацію по GRANT і UNIQUE.

3

Re: Sql запити (тест)

Дякую, тут mysql

4

Re: Sql запити (тест)

4. Який запит буде повертати значення, які містять значення "Pizza", "Burger" або "Hotdog"?
Відповіді:
  SELECT * FROM fiberbox WHERE field1 LIKE ‘%Pizza%’ OR field1 LIKE ‘%Burger%’ OR field1 LIKE ‘%Hotdog%’;
+ SELECT * FROM fiberbox WHERE field1 = ‘%Pizza%’ OR field1 = ‘%Burger%’ OR field1 = ‘%Hotdog%’;
  SELECT * FROM fiberbox WHERE field1 = ‘?Pizza?’ OR field1 = ‘?Burger?’ OR field1 = ‘?Hotdog?’;

Подякували: koala1

5

Re: Sql запити (тест)

А все решта правильно?

6

Re: Sql запити (тест)

Зупинився на цьому

create table foo (id int primary key, name int);
create table foo2 (id int primary key, foo_id int references foo(id) on delete cascade);

Відчуваю, що щось не те у відповіді, однак тестувати толком ще не встиг, зайнятий. Далі ще не дивився.