Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.21K subscribers
567 photos
468 videos
19 files
546 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
Курс по T-SQL

Создание таблиц
Заполнение таблиц
Блоки запроса: select, from, where, group by
Условие отбора. Использование LIKE, BETWEEN, AND, OR
NULL и как с этим работат
Изменение данных: DELETE WHERE, UPDATE WHERE
Псевдонимы столбцов и как убрать дубликаты строк при выводе на экран
Таблицы: постоянные, в виде подзапроса, временные #, представления view
Связи между таблицами:inner join, left join, right join, cross join, full join
Рекурсивные соединения таблиц или как соединить одинаковые таблицы

источник

#db

👉 @database_info
👍5
Какие типы СУБД в соответствии с моделями данных вы знаете?

Этот вопрос по SQL предполагает не просто назвать, но и дать краткое описание каждому типу.

Существует несколько типов СУБД:

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

Flat File — базы данных с двумерными файлами, в которых содержатся записи одного типа и отсутствует связь с другими файлами, как в реляционных. Пример — Excel.

Иерархические подразумевают наличие записей, связанных друг с другом по принципу отношений один-к-одному или один-ко-многим. А вот для отношений многие-ко-многим следует использовать реляционную модель. Пример — Adabas.

Сетевые похожи на иерархические, но в этом случае «ребёнок» может иметь несколько «родителей» и наоборот. Примеры — IDS и IDMS.

Объектно-ориентированные СУБД работают с базами данных, которые состоят из объектов, используемых в ООП. Объекты группируются в классы и называются экземплярами, а классы в свою очередь взаимодействуют через методы. Пример — Versant.

Объектно-реляционные обладают преимуществами реляционной и объектно-ориентированной моделей. Пример — IBM Db2.

Многомерная модель является разновидностью реляционной и использует многомерные структуры. Часто представляется в виде кубов данных. Пример — Oracle Essbase.

Гибридные состоят из двух и более типов баз данных. Используются в том случае, если одного типа недостаточно для обработки всех запросов. Пример — Altibase HDВ.


#db

👉 @database_info
👍84
SQL Cookbook: Query Solutions and Techniques for All SQL Users
Автор: Anthony Molinaro, Robert de Graaf (2020)

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

Второе издание включает:
✔️Полностью переработанные рецепты;
✔️Дополнительные рецепты, отражающие широкое распространение общих табличных выражений для более читаемых и простых в реализации решений;
✔️Новые рецепты, которые сделают SQL более полезным для людей, не являющихся экспертами по базам данных, включая специалистов по данным.

#db

👉 @database_info
👍3🔥1
На грани ИИ: пример поиска и обработки векторов в PostgreSQL + pgvector

На Хабре было много упоминаний pgvector в обзорах Postgresso. И каждый раз новость была про место которое где‑то за границей и далеко. Многие коммерческие решения для хранения и поиска векторов в базе данных нынче не доступны, а pgvector доступен любому, тем более в самой популярной базе в России. Применим pgvector для задачи поиска похожих домов по инфраструктуре для детей в Москве.

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

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

#db

👉 @database_info
4👍1
Шардинг как паттерн архитектуры базы данных

Шардинг (сегментирование)  —  паттерн архитектуры базы данных, предполагающий разбиение базы данных на более мелкие, быстрые и управляемые части, называемые шардами (сегментами). Каждый шард представляет собой отдельную базу данных, а в совокупности эти шарды составляют единую базу данных. Шардинг особенно полезен для управления крупными базами данных, обеспечивая значительное повышение производительности, удобство обслуживания и масштабируемость.

https://lab.scub.net/architecture-patterns-sharding-09f759150d3d

#db

👉 @database_info
👍7
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