SQL Pro
5.28K subscribers
145 photos
10 files
124 links
SQL Pro - всё об SQL
Реклама: @anothertechrock

Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
加入频道
Ответ на #вопрос35

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

При этом типы данных в обеих таблицах должны соответствовать.

Пример использования:

INSERT INTO second_table
SELECT * FROM first_table
WHERE condition;

Использование WHERE при этом необязательно.

#вопросы #собеседование
👎10👍2
Что возвратит следующий MySQL запрос:
SELECT SUBSTR(‘HELLO WORLD’, -1, 1);?
Anonymous Quiz
19%
NULL
7%
0
10%
H
42%
D
22%
Посмотреть ответы
👍3
Трюк дня. Количество вхождений строки в поле в MySQL

Есть таблица items со следующими данными:

id desc
1 val test test val
2 val test
3 test test test
4 valvalvalvalval

Напишите MySQL запрос, который подсчитает количество вхождений значения ‘val‘ для каждого desc.

Ожидаемый результат:
2
1
0
5


Решение будет вечером.

#tips
1
Трюк дня. Количество вхождений строки в поле в MySQL. Решение

SELECT
ROUND (
(LENGTH (desc) - LENGTH (

REPLACE (desc, ‘val‘,‘‘)
)) / LENGTH(‘val‘)) AS c
FROM items;

#tips
👍15
#вопрос36

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

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос36

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

Во многих системах SQL план выполнения можно получить с помощью ключевого слова EXPLAIN. В Microsoft SQL Server Query Analyzer имеет в раскрывающемся меню параметр “Show Execution Plan”. Если его активировать, то при выполнении запроса план будет отображаться в отдельном окне.

#вопросы #собеседование
👍13🏆1
Трюк дня. Поиск симметричных записей в MySQL

Есть таблица items с колонками x и y, в которой есть симметричные записи. То есть такие, где x1 = y2 и x2 = y1.

Напишите запрос, который возвратит все симметричные записи в порядке возрастания x. Выберите только те записи, где x1<=y1.

К примеру в таблице есть такие данные:

x y
20 20
20 20
20 21
23 22
22 23
21 20
18 48
10 10

Ожидаемый результат:
20 20
20 21
22 23

Решение будет вечером.

#tips
🔥5👍2
Трюк дня. Поиск симметричных записей в MySQL. Решение

SELECT f1.x,f1.y
FROM

(SELECT x,y,ROW_NUMBER() OVER (ORDER BY x) AS id FROM items) f1
JOIN

(SELECT x,y,ROW_NUMBER() OVER (ORDER BY x) AS id FROM items) f2
ON f1.x=f2.y
AND f1.y=f2.x
AND (f1.id<f2.id)
ORDER BY f1.x;

#tips
👍22🍌2
#вопрос37

Как вы понимаете SELF JOIN?

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос37

SELF JOIN используется для соединения таблицы с ней самой.

При этом каждая строка таблицы соединяется с самой собой и с другими строками — в зависимости от заданных условий.

Синтаксис:
SELECT a.column_name, b.column_name
FROM table a, table b
WHERE condition;

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

Например, один и тот же участник музыкальной группы может быть и вокалистом, и, например, клавишником. Если из базы музыкальных групп понадобится извлечь те, где вокалист и клавишник — одно лицо, потребуется SELF JOIN.

#вопросы #собеседование
🔥16
#вопрос38

Как получить последний id без использования функции MAX?

Решение будет вечером.

#вопросы #собеседование
Ответ на #вопрос38

В MySQL:
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1

В SQL Server:
SELECT TOP 1 id
FROM table
ORDER BY id DESC


#вопросы #собеседование
👍9
#вопрос39

Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.

Решение будет вечером.

#вопросы #собеседование
👍2🔥1
Ответ на #вопрос39

Дублирование записей с одним полем:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1

Дублирование записей с несколькими полями:
SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1

#вопросы #собеседование
👍11💩5🔥2🐳1
Какого строкового типа данных нет в SQL:
Anonymous Quiz
5%
VARCHAR
56%
STRING
8%
CHAR
27%
TEXT
4%
Посмотреть ответ
🔥4
Трюк дня. Количество повторений значения в столбце в SQL.

В SQL есть таблица students:

student_id INTEGER PRIMARY KEY,
student_name VARCHAR,
group_id INTEGER

В программе Java нужно получить Map<Integer, Integer>, где key -> group_id, а value -> кол-во студентов с этим group_id, то есть, кол-во повторений каждого group_id. Как составить для этого SQL запрос?

Решение будет вечером.

#tips
🔥5