SQL и БД Learning – Telegram
SQL и БД Learning
10.2K subscribers
797 photos
9 videos
22 files
445 links
№ 5060218708

Изучаем SQL с нуля

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
Download Telegram
Делаем SQL-запросы чище

Периодически в коде запросов и "заточенных" под них индексов наблюдаю примерно подобные куски:

coalesce("Фамилия", '') || ' ' || coalesce("Имя", '') || ' ' || coalesce("Отчество", '')


Понятно, что тут хотели обезопасить себя от заполненности любого из полей NULL-значением, чтобы случайно вся строка не заNULL'илась.

Правда, тут возникают некоторые артефакты в виде "висящих пробелов" типа ' Иван Иванович' или 'Иванов Иван '.

Но ведь есть решение изящнее и проще - функция concat_ws:
concat_ws(' ', "Фамилия", "Имя", "Отчество")
👍6
Временные таблицы

Держите видео, в котором автор увлекательно рассказывает о временных таблицах.

Temporary Tables – это таблицы, которые хранятся в оперативной памяти сервера. Вы узнаете о создании локальных и глобальных временных таблиц.

📘Видео урок
👍41
🖥 Предположим, что нам необходимо получить данные о сотруднике, имеющем вторую по величине зарплату в компании. Мы можем использовать следующий запрос:

WITH employee_ranking AS (
SELECT
employee_id,
last_name,
first_name,
salary,
RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
)
SELECT
employee_id,
last_name,
first_name,
salary
FROM employee_ranking
WHERE ranking = 2

Условие WHERE ranking = 2 используется для фильтрации строк второй по величине зарплаты. Обратите внимание, что на позиции 2 может находиться более одного сотрудника, если у них одинаковая зарплата.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
📢SQL Translator - это инструмент для преобразования запросов на естественном языке в SQL-запросы с помощью искусственного интеллекта. Этот проект является 100% бесплатным и с открытым исходным кодом.

git clone https://github.com/whoiskatrin/sql-translator.git

Github
Проект
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1
Виды JOIN в SQL

В SQL-джойнах скрыто больше, чем можно подумать. Давайте разберем их.

Будем использовать две простые таблицы: компании companies и их вакансии jobs.

Есть три вымышленные компании — Hoogle, Emazon и Neta — которые предлагают на удивление мало вакансий:

Hoogle интересуется аналитиками данных. Emazon нанимает Go-разработчиков и ML-инженеров. У Neta нет вакансий. А какая-то ноунейм-компания с идентификатором 99 отчаянно разыскивает UI-дизайнера.

Смотреть статью
👍7
Оконные функции SQL простым языком с примерами

Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свой путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций и могут не использоваться сложные формулировки определений - все написано максимально простым языком для базового понимания.

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

Смотреть статью
👍3
Fake2db - это инструмент, который предназначен для создания и заполнения фиктивных данных в игрушечных базах данных.

Он предназначен для использования в тестировании и поддерживает работу с такими базами данных, как sqlite, mysql, postgresql, mongodb, redis и couchdb.

pip install fake2db

GitHub
👍3
Подстановочные знаки (wildcards) в SQL

Подстановочный знак (wildcard) в SQL используется с оператором LIKE для замены одного или набора символов в строке. Например:

SELECT *

FROM Customers

WHERE last_name LIKE 'R%';

Здесь % (означает ноль или более символов) является подстановочным знаком (wildcard). Мы выбираем клиентов, чья фамилия (last_name) начинается с буквы R, за которой следует ноль или более символов.

Смотреть статью
👍7
HAVING COUNT

В данном видео автор демонстрирует решение задачи с помощью оператора HAVING. Идет он в сочетании с агрегатной функцией COUNT. Наглядно демонстрируется, как работает оператор GROUP BY HAVING COUNT.

📘Видео урок
👍2
#Вопросы_с_собеседования
Что такое самостоятельное присоединение?

Самосоединение настроено как запрос, используемый для сравнения с самим собой. Это используется для сравнения значений в столбце с другими значениями в том же столбце в той же таблице. ALIAS ES можно использовать для сравнения одной и той же таблицы.
👍3
Задача SQL

Дана пустая таблица publisher

Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:

1) INSERT INTO publisher (name) VALUES ('OREILLY');
2) INSERT INTO publisher (name) VALUES ('О Reilly');
3) INSERT INTO publisher (name) VALUES ('O'Reilly');
4) INSERT INTO publisher (name) VALUES ('O-Reilly');


Ответ:

1, 2, 4
👍9
OPENJSON в Microsoft SQL Server

OPENJSON
- это встроенная функция в Microsoft SQL Server, которая позволяет разбирать JSON-строки на отдельные элементы. Это полезно в случае, когда необходимо проанализировать данные, хранящиеся в формате JSON.

Функция возвращает таблицу, которая содержит ключи и значения каждого элемента JSON-объекта. Можно использовать ее для выборки определенных значений, а также для фильтрации данных.

OPENJSON также может использоваться для обновления данных в таблице на основе JSON-строки.