практика Flashcards

1
Q

А теперь получите список сотрудников с зарплатой выше средней

A

SELECT * FROM workersWHERE salary > (SELECT AVG (salary) FROM workers);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Даны таблицы workers и departments. Найдите все департаменты без единого сотрудника

A

SELECT department_nameFROM workers wRIGHT JOIN departments d ON (w.department_id = d.department_id)WHERE first_name IS NULL;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как выбрать записи с нечётными Id?

A

SQL запрос для выбора записей с нечётными id должен выглядеть следующим образом:

SELECT * FROM sample WHERE id % 2 != 0;

Если остаток от деления id на 2 равен нулю, перед нами чётное значение, и наоборот.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Найдите в таблице среднюю зарплату работников

A

SELECT AVG(salary) FROM workers;

Функция AVG() применяется только к числовым типам данных и возвращает среднее значение по столбцу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Выберите только уникальные имена

A

SELECT DISTINCT name FROM users;

SELECT DISTINCT возвращает разные значения, даже если в выбранном столбце есть дубли.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

При выборке из таблицы прибавьте к дате 1 день

A

SELECT DATE_ADD(date, 1 DAY) as new_date FROM table;

Функция DATE_ADD() прибавляет к дате заданный промежуток времени. Синтаксис выглядит следующим образом:

SELECT DATE_ADD(дата, INTERVAL что_прибавить) FROM имя_таблицы WHERE условие;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как найти дубли в поле email?

A

SELECT email, COUNT(email)FROM customersGROUP BY emailHAVING COUNT(email) > 1;

Функция COUNT() возвращает количество строк из поля email. Оператор HAVING работает почти так же, как и WHERE, вот только применяется не для всех столбцов, а для набора, созданного оператором GROUP BY.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Замените в таблице зарплату работника на 1000, если она равна 900, и на 1500 в остальных случаях

A

Замена значений — одна из наиболее часто встречаемых задач по SQL на собеседованиях. Решить её несложно:

UPDATE table SET salary =CASEWHEN salary = 900 THEN 1000ELSE 1500END;

Оператор UPDATE используется для изменения существующих записей. Но ответы на подобные вопросы с собеседований по SQL должны быть более развёрнутыми. Уточните,что после UPDATE следует указать, какие записи должны быть обновлены. В противном случае обновятся все записи в таблице.В нашем примере условие задаётся через оператор CASE: если текущая зарплата равна 900, изменяем её на 1000, в остальных случаях — на 1500.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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

A

SELECT CONCAT(name, salary) AS new_field FROM users;

Функция CONCAT() используется для конкатенации (объединения) строк, неявно преобразуя при этом любые типы данных в строки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Переименуйте таблицу

A

ALTER TABLE first_table RENAME second_table;

С помощью оператора ALTER TABLE можно добавлять, удалять, изменять столбцы, а также изменять название таблицы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly