SQL Pro
5.07K subscribers
142 photos
2 videos
10 files
127 links
SQL Pro - всё об SQL
Реклама: @anothertechrock

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

1. DELETE:Используется для удаления строки в таблице
TRUNCATE:Используется для удаления всех строк из таблицы

2. DELETE:Вы можете восстановить данные после удаления
TRUNCATE:Вы не можете восстановить данные (прим. перевод.: операции логируются по разному, но в SQL Server есть возможность сделать откат) транзакции)

3. DELETE:DML-команда
TRUNCATE:DDL-команда

4. DELETE:Медленнее, чем оператор TRUNCATE
TRUNCATE:Быстрее

#вопросы #собеседование
👍5
Статья дня. Как не надо индексировать

#sql

Читать статью
Какое из следующих MySQL выражений вернёт строки, которые НЕ начинаются с букв a, b или с?
Anonymous Quiz
23%
WHERE value REGEXP ^[abc];
18%
WHERE value REGEXP ^[^abc];
20%
WHERE value REGEXP ^_[abc];
23%
WHERE value REGEXP ^[abc]*;
16%
Посмотреть ответы
👍2
Трюк дня. Выбрать значения, которые соответствуют одному из нескольких шаблонов

Из PostgreSQL таблицы customers выберите только тех пользователей, текстовое поле phone которых содержит либо +011, либо +044, либо +099.

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

#tips
👍2
Трюк дня. Выбрать значения, которые соответствуют одному из нескольких шаблонов. Решение

SELECT *
FROM customers
WHERE phone LIKE ANY('{%+011%,%+044%,%+099%}');

#tips
👍3
#вопрос28

Как получить общие записи из двух PostgreSQL таблиц?

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

SELECT colname 
FROM table1
INTERSECT
SELECT colname
FROM table2;

#вопросы #собеседование
Задача на мышление и логику.

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

#логика
👍2
Трюк дня. Выборка записей из таблицы при различных условиях

Из MySQL таблицы customers выберите только тех, которые:

имеют тип = ‘Sal’ или ‘Adv’ И разница между датами mod и trans >=365 дней;
имеют тип = ‘Cus’ И разница между датами mod и trans >=14 дней.

Исходная таблица:
type mod trans
Cus 2022-01-01 2022-12-01
Sal 2022-08-01 2021-05-01
Adv 2022-05-01 2022-04-01
Cus 2022-05-01 2022-04-01

Ожидаемые результат:
type mod trans
Sal 2022-08-01 2021-05-01
Cus 2022-05-01 2022-04-01

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

#tips
👍1
Трюк дня. Выборка записей из таблицы при различных условиях. Решение

SELECT
DAT.*
FROM customer DAT
WHERE DATEDIFF(mod,trans)>=
CASE WHEN type IN('Sal', 'Adv') THEN 365
WHEN type IN('Cus') THEN 14
ELSE NULL END;

#tips
🔥1
#вопрос29

Из каких подмножеств состоит SQL?

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

DDL (Data Definition Language, язык описания данных) — позволяет выполнять различные операции с базой данных, такие как CREATE (создание), ALTER (изменение) и DROP (удаление объектов).

DML (Data Manipulation Language, язык управления данными) — позволяет получать доступ к данным и манипулировать ими, например, вставлять, обновлять, удалять и извлекать данные из базы данных.

DCL (Data Control Language, язык контролирования данных) — позволяет контролировать доступ к базе данных. Пример — GRANT (предоставить права), REVOKE (отозвать права).

#вопросы #собеседование
👍91👎1
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL

В PostgreSQL таблице customers колонка age имеет тип CHARACTER(20).

Напишите запрос, который приведёт данную колонку к типу NUMERIC (10,0).

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

#tips
👍4
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL. Решение

ALTER TABLE customers
ALTER COLUMN age
TYPE NUMERIC (10,0)
USING age::NUMERIC;


ИЛИ

ALTER TABLE customers
ALTER COLUMN age
TYPE NUMERIC (10,0)
USING CAST(age AS NUMERIC);


#tips
👍14
С помощью какого PostgreSQL запроса можно выбрать значение ‘Beer‘ из JSON поля info:
{“customer”:”John”,”items”:{“product”:”Beer”,”qty”:6}}?
Anonymous Quiz
10%
SELECT info -> ‘product’;
20%
SELECT info -> ‘customer’ -> ‘items’ ->> ‘product’;
33%
SELECT info -> ‘items’ ->> ‘product’;
17%
Ничего из перечисленного
19%
Посмотреть ответы
👍3
#вопрос30

В таблице tbl в поле nmbr содержатся записи со следующими значениями:
1, 0, 0, 1, 1, 1, 1, 0, 0.

Напишите запрос, который добавит 2, если значение nmbr = 0 и добавит 3, если значение nmbr = 1.

#вопросы #собеседование
👍8🏆3
Ответ на #вопрос30

UPDATE tbl
SET nmbr =
CASE WHEN nmbr = 0
THEN nmbr + 2
ELSE nmbr + 3
END;


#вопросы #собеседование
👍23👎5
👍15🤔2
Трюк дня. Возвратить 0 для функции SUM если не найдено ни одного значения в MySQL

Перепишите запрос так, чтобы он возвратил 0, если для функции SUM не найдено ни одного значения, кроме NULLs.

И возвратил сумму, если значения найдены.

SELECT SUM (column_1)
FROM table
WHERE column_2 = ‘Test‘;


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

#tips
👍8