Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.21K subscribers
567 photos
468 videos
19 files
546 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 DrawDB

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

https://github.com/drawdb-io/drawdb

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Media is too big
VIEW IN TELEGRAM
🖥 Основы SQL за час - бесплатно и проще некуда

Содержание:
00:00 - подготавливаем базу
04:36 - выбираем данные SELECT
08:30 - указываем текущую базу данных
09:58 - чувствительность к регистру
12:14 - выбор определенных колонок
15:28 - фильтрация с помощью WHERE
20:59 - фильтрация с И и ИЛИ
26:38 - поиск строки по шаблону
29:18 - свой среди чужих
31:26 - NULL когда данные отсутствуют
34:27 - сортировка данных в SQL
38:37 - добавление записей с помощью SQL запроса
45:36 - обновление данных с помощью SQL
52:32 - удаляем данные из базы с помощью SQL

источник

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🎉1
Media is too big
VIEW IN TELEGRAM
Продвинутый курс SQL за час - проще некуда

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

Содержание:
00:00 - Поехали
01:14 - Сортировка по номеру
03:23 - Ограничение вывода limit
06:30 - Уникальность данных distinct
08:18 - Сложение колонок
11:00 - Псевдонимы
15:35 - join - связи таблиц
27:45 - Left join
29:38 - Right join
35:00 - Быть или не быть (exists)
39:32 - Объединения union
41:42 - Глобальный поиск
43:45 - Агрегатные функции
54:00 - Группировка данных group by

источник

#db

👉 @database_info
👍5🔥2
SQL HowTo: один индекс на два диапазона

В прошлой статье я показал, как условие с парой однотипных неравенств, плохо поддающееся индексации с помощью btree, можно переделать на эффективно gist-индексируемое в PostgreSQL условие относительно диапазонных типов, а наш сервис анализа планов запросов explain.tensor.ru подскажет, как именно это сделать.

Но что делать, если неравенств у нас не два, а целых четыре, да еще и с разными типами участвующих полей? Например, для целей бизнеса это может быть задачей вроде "найди мне все продажи за декабрь на сумму 10-20K", что на SQL будет выглядеть примерно так:

dt >= '2023-12-01'::date AND dt <= '2023-12-31'::date AND

sum >= 10000::numeric AND sum <= 20000::numeric


https://habr.com/ru/companies/tensor/articles/800397/

#db

👉 @database_info
👍4
Как создать временную таблицу в mysql?

Используйте CREATE TEMPORARY и DROP TEMPORARY чтобы создать или удалить временную таблицу в MySQL, ниже пример запроса как пример:

CREATE TEMPORARY TABLE user
(
firstname VARCHAR(255) NOT NULL,
company VARCHAR(150) NOT NULL
);

# Удалить временную таблицу в MySQL
DROP TEMPORARY TABLE user;


#mysql

👉 @database_info
😁2👍1
Как был создан потоковый SQL-движок

Возможно, вы как раз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) как мне сделать потоковый SQL‑движок? 2) Что это такое — потоковый SQL‑движок? 3) Способен ли Господь наш сбрасывать те таблицы, коими владеет иной пользователь?

Я тоже ловил себя на том, что задаю себе эти вопросы, и порой они не оставляют меня даже во сне. Мне снятся различные SQL‑операторы, которые тычут в меня пальцем, насмехаются над моей некомпетентностью, а я умоляю их, чтобы они ответили на эти вопросы.

Так вот, где‑то год назад я (довольно смело, если «смелость» — это вообще про меня) снарядился как следует и пустился в долгий и тернистый путь, искать ответы на эти вопросы. Я шёл от монаха к пресвитеру, а от того — к жрецу макаронного монстра, и только в ужасе осознавал, сколь жалкие вопросы их занимают — например, каков смысл жизни, и как обрести мир с самим собой. Но, в конце концов, потерявшись в глубочайших расщелинах моего разума, я набрёл на часовенку, над входом которой значилось: «Epsio Labs». Тут я преисполнился откровения и вошёл в двери этого храма.

Друзья, сегодня я поделюсь с вами теми таинствами, которые познал там (за исключением тех, что подпадают под многочисленные NDA).

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

#db

👉 @database_info
👍2
🖥 MySQL vs MongoDB

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Learn PostgreSQL: Use, manage, and build secure and scalable databases with PostgreSQL 16, 2nd Edition
Автор: Enrico Pirozzi (2023)

Новое издание не только поможет вам разобраться со всеми последними изменениями в экосистеме PostgreSQL, но и углубиться в такие понятия, как разбиение на разделы и репликация, с помощью нового набора примеров. Начиная с абсолютных основ баз данных, книга переходит к таким продвинутым концепциям, как оконные функции, ведение журнала, аудит, расширение базы данных, конфигурация, разделение и репликация. Книга также поможет вам легко перенести существующую систему баз данных на PostgreSQL и содержит отдельную главу, посвященную аварийному восстановлению. В конце каждой главы приводятся практические вопросы, позволяющие регулярно проверять усвоенные знания.

#db

👉 @database_info
👍2
Древовидные структуры в SQL в одну таблицу

Стояла задача: реализовать хранение и работу каталога папок в PostgreSQL. В процессе изучения темы наткнулся на большое количество материалов, которые задачу решали, но делали это без уважения выглядели не лаконично, нарушали прозрачность выполняемых операций, вызывали блокировки, требовали бОльшего вовлечения клиента в специфику работы и т.д. Потому задался целью: реализовать хранение древовидных структур (в общем виде) без использования триггеров, блокировок, дополнительных таблиц (представлений) и внешних инструментов в PostgreSQL (версии 16).

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

#db

👉 @database_info
👍3👎1
Learning Snowflake SQL and Scripting: Generate, Retrieve, and Automate Snowflake Data
Автор: Alan Beaulieu (2023)

Чтобы помочь вам стать профессионалом в области Snowflake, в этом кратком, но исчерпывающем руководстве рассматриваются основы и лучшие практики использования языков SQL и Scripting в Snowflake. Разработчики и специалисты по работе с данными узнают, как генерировать, модифицировать и запрашивать данные в реляционной системе управления базами данных Snowflake, а также как применять аналитические функции для создания отчетов. Автор также покажет, как создавать сценарии, хранимые функции и хранимые процедуры для возврата наборов данных с помощью Snowflake Scripting. Эта книга идеально подходит для тех, кто только начинает работать с базами данных и нуждается в выполнении запросов и отчетов на базе данных Snowflake или переходит с таких баз данных, как Oracle, SQL Server или MySQL, на облачные платформы.

#db

👉 @database_info
👍4
Media is too big
VIEW IN TELEGRAM
Курс по SQL для начинающих

#1 Введение в PostgreSQL
#2 Базовые SELECT запросы
#3 Соединения (JOIN)
#4 Подзапросы в SQL
#5 DDL: создание БД, таблиц и их модификация
#6 Проектирование и нормализация Базы Данных (БД)
#7 Представления в SQL
#8 Логика с CASE и COALESCE в SQL
#9 Функции SQL
#10 Функции pl/pgSQL
#11 Ошибки их обработка в SQL (исключения)
#12 Индексы в PostgreSQL
13# Виды индексов SQL # EXPLAIN, ANALYZE
14# Создание индексов на практике # EXPLAIN, ANALYZE # GIN

Все видео доступны на youtube

#db

👉 @database_info
👍3
Getting Started with SQL and Databases: Managing and Manipulating Data with SQL
Автор: Mark Simon (2023)

Книга начинается с общего введения в написание SQL и охватывает основные концепции. Затем автор рассказывает о принципах работы баз данных и о том, как создаются таблицы баз данных. Он научит вас фильтровать данные с помощью предложения WHERE, работать с NULL, числами, датами и строками. Вы также поймете, как сортировать результаты с помощью предложения ORDER BY, сортировать по вычисляемым столбцам и ограничивать количество результатов. К концу книги вы будете знать, как вставлять и обновлять данные, а также обобщать данные с помощью агрегатных функций и групп. В трех приложениях рассматриваются различия между диалектами SQL, работа с таблицами и экспресс-курс по PDO.

#db

👉 @database_info
👍2😁1
🖥 Выполнение периодических заданий в PostgreSQL

pg_cron - это простой планировщик заданий на основе cron для PostgreSQL (10 или выше), который запускается внутри базы данных в качестве расширения. Он использует тот же синтаксис, что и обычный cron, но позволяет планировать команды PostgreSQL непосредственно из базы данных.

https://github.com/citusdata/pg_cron

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5👍1
Дана таблица PERSONS👆

Каков будет результат выполнения следующего запроса:
SELECT AVG(Age) FROM Persons

1. 150
2. 75
3. UNKNOWN, поскольку присутствует NULL
4. Запрос не выполнится (завершится ошибкой), поскольку присутствует NULL
5. 100

Ответ:

5

#db

👉 @database_info
👍75
pg_chameleon

Это система репликации MySQL в PostgreSQL, написанная на Python 3. Инструмент может подключаться к протоколу репликации mysql и реплицировать изменения данных в PostgreSQL. Если пользователю необходимо создать постоянную реплику между MySQL и PostgreSQL или выполнить миграцию движка, pg_chameleon - идеальный инструмент для этой задачи.

https://pgchameleon.org/

#db

👉 @database_info
👍7
Дана таблица CARS

Каким будет результат следующего запроса:
SELECT COUNT (DISTINCT color) FROM cars

1. red blue null
2. 3
3. 2 1 1
4. 2

Ответ:
4

#db

👉 @database_info
👍14🥰21
Media is too big
VIEW IN TELEGRAM
Циклы в PostgreSQL

В этом видео мы научимся использовать циклы в запросах СУБД PostgreSQL.

Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Также циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом.

источник

#db #PostgreSQL

👉 @database_info
👍52
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 7 основных стратегий масштабирования вашей базы данных.

1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.

2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для более быстрого доступа.

3 - Денормализация:
Уменьшите количество сложных объединений для повышения производительности запросов.

4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервер базы данных, добавляя больше процессоров, оперативной памяти или хранилища.

5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения для снижения нагрузки на базу данных.

6 - Репликация:
Создайте реплики основной базы данных на разных серверах для масштабирования чтения.

7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записи, так и чтения.

А теперь ваш ход: Какие другие стратегии вы используете для масштабирования ваших баз данных?

#db

👉 @database_info
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98🤮1
Даны две таблицы: EMPLOYEES и TASK

Таблица EMPLOYEES имеет поле CURRENT_TASK_ID, которое является внешним ключом и ссылается на поле TASK_ID таблицы TASKS. Вывести список, состоящий из имен всех имеющихся сотрудников и их текущих занятий.

1. SELECT NAME, COMMENT FROM EMPLOYEES LEFT JOIN TASKS ON CURRENT_TASK_ID = TASK_ID

2. SELECT NAME, COMMENT FROM EMPLOYEES, TASKS WHERE CURRENT_TASK_ID = TASK_ID

3. SELECT NAME, COMMENT FROM EMPLOYEES, TASKS WHERE JOB_ID = TASK_ID

4. SELECT NAME, COMMENT FROM EMPLOYEES RIGHT JOIN TASKS ON CURRENT_TASK_ID = TASK_ID

Ответ:

1

#db

👉 @database_info
👍5