Трюк дня. Получить список аккаунтов в MySQL с помощью запроса
Используйте код:
Результат будет следующего вида :
+------+
| User |
+------+
| root |
+------+
| user2 |
+------+
#tips
А как можно получить список аккаунтов в других СУБД?
Используйте код:
SELECT User FROM mysql.user;
Результат будет следующего вида :
+------+
| User |
+------+
| root |
+------+
| user2 |
+------+
#tips
А как можно получить список аккаунтов в других СУБД?
Трюк дня. Простые числа
Напишите PostgreSQL-запрос, который возвратит простые числа от 2 до 1000.
Решение будет вечером.
#tips
Напишите PostgreSQL-запрос, который возвратит простые числа от 2 до 1000.
Решение будет вечером.
#tips
Трюк дня. Простые числа. Решение.
Простое число - натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя — единицу и самого себя.
Для начала создадим набор чисел от 2 до 1000 с помощью функции
Простое число - натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя — единицу и самого себя.
Для начала создадим набор чисел от 2 до 1000 с помощью функции
generate_series.
Затем с помощью NOT EXISTS
(которое можно, модифицировав, заменить на JOIN
) мы соединяем таблицу саму на себя и затем выбираем только те значения, для которых ни одно деление на меньшее число не дает остаток 0. WITH x AS (
SELECT * FROM generate_series( 2, 1000 ) x
)
SELECT x.x
FROM x
WHERE NOT EXISTS (
SELECT 1 FROM x y
WHERE x.x > y.x AND x.x % y.x = 0
);
#tips👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Функции SQL для даты и времени
В этом видеоуроке автор подробно разбирает функции SQL, необходимые для работы с датой и временем.
00:00 Вступление
00:27 Получение системной даты и времени (SYSDATE)
01:05 Преобразовать строку в дату (TO_DATE)
01:59 Получить последний день месяца (LAST_DAY)
02:28 Добавить N-ое количество месяцев (ADD_MONTHS)
02:57 Извлечь год, квартал, месяц (EXTRACT)
03:14 Получить первый день года, квартала, месяца или недели (TRUNC)
Смотреть это видео на youtube: youtu.be/_6XWUJ2zf8Y
В этом видеоуроке автор подробно разбирает функции SQL, необходимые для работы с датой и временем.
00:00 Вступление
00:27 Получение системной даты и времени (SYSDATE)
01:05 Преобразовать строку в дату (TO_DATE)
01:59 Получить последний день месяца (LAST_DAY)
02:28 Добавить N-ое количество месяцев (ADD_MONTHS)
02:57 Извлечь год, квартал, месяц (EXTRACT)
03:14 Получить первый день года, квартала, месяца или недели (TRUNC)
Смотреть это видео на youtube: youtu.be/_6XWUJ2zf8Y
Трюк дня. Выбрать значения, которые соответствуют одному из нескольких шаблонов
Из PostgreSQL таблицы
Решение будет завтра.
#tips
Из PostgreSQL таблицы
customers
выберите только тех пользователей, текстовое поле phone
которых содержит либо +011
, либо +044
, либо +099
.Решение будет завтра.
#tips
👍1
Трюк дня. Выбрать значения, которые соответствуют одному из нескольких шаблонов. Решение
SELECT *#tips
FROM customers
WHERE phone LIKE ANY('{%+011%,%+044%,%+099%}');
Что покажет следующий запрос: select id from Orders where year (date) > 2018?
Anonymous Quiz
80%
Номера заказов, сделанных после 2018 года
2%
Уникальные номера заказов
4%
Номера заказов, сделанных до 2018 года
11%
Все варианты неверные
4%
Узнать ответ
👍1
Трюк дня. Выборка записей из таблицы при различных условиях
Из MySQL таблицы
Исходная таблица:
#tips
Из 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С помощью какого ключевого слова можно соединить строки из нескольких таблиц, основываясь на их связи?
Anonymous Quiz
3%
IMPLODE
85%
JOIN
4%
WHERE
3%
Все варианты неверные
4%
Узнать ответ
Трюк дня. Найти медиану
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
В Oracle используйте функцию MEDIAN:
Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
#tips
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) FROM table;В MS SQL также используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) OVER (PARTITION BY 1) FROM table;В PARTITION BY можно внести столбец, по которому группируются данные. В данном случае мы использовали 1, чтобы посчитать медиану по всем данным столбца.
В Oracle используйте функцию MEDIAN:
SELECT MEDIAN (sales) OVER (PARTITION BY 1) FROM table;
Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
/*задаем переменную row_index = -1, чтобы отсчет индекса начался с 0 */Ответ: медиана = 4.
SET @row_index := -1;
/*находим среднее двух значений в центре отсортированного набора. Охватывает те случаи, когда общее число записей четное*/
SELECT AVG (subq.sales) as median_value
FROM (
SELECT @row_index:=@row_index + 1 AS row_index, sales
FROM table
ORDER BY sales
) AS subq
WHERE subq.row_index
/*выбираем только значения в центре: одно если число записей нечетное и два если четное*/
IN (FLOOR(@row_index / 2) , CEIL(@row_index / 2));
#tips
❤2
Media is too big
VIEW IN TELEGRAM
Функции SQL для символьных данных
В этом видеоуроке автор подробно разбирает процесс работы с символьными (строчными) функциями в SQL.
00:00 Вступление
00:18 Преобразование строки в нижний регистр (LOWER)
00:32 Преобразование строки в верхний регистр (UPPER)
00:55 Получение длины указанной строки (LENGTH)
01:06 Вернуть символ, заданный числовым кодом (CHR)
01:28 Соединить вместе две и более строки (CONCAT)
01:57 Удалить символ с начала или конца строки (TRIM)
02:22 Посимвольная замена значений (TRANSLATE)
03:25 Замена слова в строке другим словом (REPLACE)
04:03 Извлечь часть данных из строки (SUBSTR)
Смотреть это видео на youtube: youtu.be/myYvKpjquGw
В этом видеоуроке автор подробно разбирает процесс работы с символьными (строчными) функциями в SQL.
00:00 Вступление
00:18 Преобразование строки в нижний регистр (LOWER)
00:32 Преобразование строки в верхний регистр (UPPER)
00:55 Получение длины указанной строки (LENGTH)
01:06 Вернуть символ, заданный числовым кодом (CHR)
01:28 Соединить вместе две и более строки (CONCAT)
01:57 Удалить символ с начала или конца строки (TRIM)
02:22 Посимвольная замена значений (TRANSLATE)
03:25 Замена слова в строке другим словом (REPLACE)
04:03 Извлечь часть данных из строки (SUBSTR)
Смотреть это видео на youtube: youtu.be/myYvKpjquGw
Трюк дня. Изменить тип поля с CHARACTER на NUMERIC в PostgreSQL
В PostgreSQL таблице
Напишите запрос, который приведёт данную колонку к типу
Решение будет позже вечером.
#tips
В PostgreSQL таблице
customers
колонка age
имеет тип CHARACTER(20)
. Напишите запрос, который приведёт данную колонку к типу
NUMERIC (10,0)
.Решение будет позже вечером.
#tips
Трюк дня. Изменить тип поля с 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Даны 2 таблицы А и В, которые содержат поле row. А содержит 10 записей, В - 5 записей. Сколько записей вернет следующий запрос:
select A.row, B.row from A,B
select A.row, B.row from A,B
Anonymous Quiz
11%
5
19%
10
58%
50
12%
Посмотреть ответы
JOIN (соединение таблиц) невозможно осуществить в запросе без:
Anonymous Quiz
38%
ключевого слова JOIN
3%
слова INNER перед JOIN
55%
перечисления соединяемых таблиц
4%
псевдонимов соединяемых таблиц
Какие данные нельзя вставить в таблицу при помощи оператора INSERT?
Anonymous Quiz
8%
повторяющиеся
8%
несколько строк сразу
60%
несколько значений одного столбца в одной строке
25%
неопределенные значения
Выберите корректно составленный запрос с функцией GROUP BY:
Anonymous Quiz
3%
select count(*) from Orders GROUP seller_id;
3%
select seller_id, count(*) from Orders GROUP seller_id;
92%
select seller_id, count(*) from Orders GROUP BY seller_id;
1%
select count(*) from Orders GROUP ON seller_id;
2%
Посмотреть ответ
Что возвращает ROUND(789.8389, 2)?
Anonymous Quiz
67%
789.84
24%
789.83
0%
78
6%
789.00
3%
Узнать ответ
Какие SQL-операции относятся к командам DDL?
Anonymous Quiz
62%
DROP, ALTER
13%
SELECT, CREATE
4%
ALTER, SELECT
11%
UPDATE, MERGE
10%
Посмотреть ответ
🆒3❤1