Базы данных (Data Base)
8.21K subscribers
567 photos
468 videos
19 files
546 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
"Эксперты" SQL до сих пор спорят, что быстрее: IN, EXISTS или JOIN. Будьте осторожны: они ничего не понимают в базах данных SQL.

SELECT ... FROM o WHERE ... IN ( SELECT ... FROM i )
это join💡.

База данных может выполнить его как semi-join from (o) to (i) , или как join from (distinct i) to (o)

#db

👉 @database_info
👍4
Типы SQL Joins

#db

👉 @database_info
👍71
Шпаргалка по основам SQL

#db

👉 @database_info
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполняются SQL-запросы👨‍💻

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

Вот упрощенное объяснение порядка выполнения SQL:

• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.

#db

👉 @database_info
👍9
Самый старый код в MSSQL

Ваш покорный слуга работал с MSSQL с версии 6.5, но в качестве экзотики застал версии 6.0 и 4.2. Да, я супер стар!

Но осталось ли в MS SQL что-либо с тех времен?

https://habr.com/ru/articles/788988/

#db

👉 @database_info
👍6
Media is too big
VIEW IN TELEGRAM
Нормальные формы баз данных: Объясняем на пальцах

00:00 - О чём пойдёт речь в статье
00:45 - Коротко о реляционных БД
01:20 - Что такое нормализация
01:46 - Зачем нужна нормализация БД
02:08 - Что такое избыточность данных с примерами
04:51 - Какие бывают нормальные формы БД и о процессе нормалиции в целом
08:00 - Ненормализованная форма или нулевая нормальная форма с примером
09:37 - Первая нормальная форма с примером нормализации
11:24 - Вторая нормальная форма с примером нормализации
15:29 - Что такое декомпозиция
16:18 - Третья нормальная форма с примером нормализации
18:54 - Нормальная форма Бойса-Кодда с примером нормализации
21:54 - Четвертая нормальная форма с примером нормализации
27:45 - Почему обычно никто не нормализует БД до 5 или 6 нормальной формы
29:14 - Пятая нормальная форма с примером нормализации
34:23 - Доменно-ключевая нормальная форма
35:39 - Шестая нормальная форма
38:02 - Выводы и заключение

источник

#db

👉 @database_info
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram

Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.

https://dbdiagram.io/home

👉 @database_info
👍5
Объединить значения из нескольких строк таблицы в одну, группируя по определённому параметру.

Например, есть таблица:

id name value
1 A 4
1 B 8
2 C 9


В результате нужно получить следующее:

id column
1 A:4, B:8
2 C:9


В SQL Server 2017, Azure можно использовать функцию STRING_AGG:

SELECT
id,
STRING_AGG(
CONCAT(name,’:’,[value], ‘, ‘)
FROM table
GROUP BY id


👉 @database_info
👍3
Магия оптимизации SQL запросов

Думаю, каждый хоть раз использовал команду explain или хотя бы слышал про нее. Эта команда демонстрирует план выполнения запроса, но как именно СУБД приходит к нему остается загадкой. Да и как вообще СУБД понимает, что выбранный запрос оптимален? Неужели она проверяет все возможные варианты?
В этой статье я постараюсь дать небольшое представление о том, как работают оптимизаторы запросов с теоретической точки зрения.

Начнем с того, что можно выделить два основных подхода к поиску наиболее эффективного варианта выполнения: эвристический и стоимостной.

https://habr.com/ru/articles/709898/

#db

👉 @database_info
👍4
Как я искал ПДн в 300 базах данных [и сохранил рассудок]

Пришли как-то ко мне парни из службы безопасности и говорят: «Надо обойти все БД и собрать с них персональные данные». Потому что в России изменилось законодательство и теперь их нужно хранить в особо защищённых хранилищах.

Если этого не сделать, то рано или поздно данные могут утечь и ещё можно нарваться на высокие штрафы при утечке. Задача безопасников (и основная выгода от их наличия в компании) — минимизация таких рисков.

Вот только у нас несколько сотен баз данных, где-то около трёхсот. Даже если просто заглянуть в них и попытаться сделать выборку — это займёт весьма продолжительное время. И никто не имеет полной картины, где что хранится.

Скорее всего, вам скоро предстоит такое же, поэтому сейчас покажу артефакты, которые я нашёл в процессе.

https://habr.com/ru/companies/skyeng/articles/792494/

#db

👉 @database_info
👍7