Базы данных (Data Base) – Telegram
Базы данных (Data Base)
8.21K subscribers
566 photos
468 videos
19 files
545 links
Базы данных (Data Base). По всем вопросам @evgenycarter
Download Telegram
Основные концепции баз данных

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

Таблица - это основной объект в реляционной модели данных, который хранит данные в виде строк и столбцов. Каждая таблица имеет уникальное имя и структуру, определяемую набором столбцов и их типами данных. В таблице каждая строка представляет собой запись, а каждый столбец представляет собой конкретное свойство или атрибут объекта.

Столбец - это одно поле в таблице, которое хранит данные одного типа. Каждый столбец имеет уникальное имя и тип данных, который определяет, какой тип данных может храниться в столбце.

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

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

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

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

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

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

#db

👉 @database_info
👍6
MySQL. Работа с бекапами.

Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql

Создаём структуру базы без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql

Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql

Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz

Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`

Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql

Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE

Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE

Удобно использовать бекап с дополнительными опциями -Q -c -e, т.е.
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, где:
-Q оборачивает имена обратными кавычками
-c делает полную вставку, включая имена колонок
-e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее


Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD

А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE

Для таблиц InnoDB надо добавлять --single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.

Общие факты
Полезно под каждую базу на боевом сервере создавать своего пользователя
Кодировка базы может быть любой, если она UTF8
В большинстве случаев лучше использовать движок InnoDB
В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
Новую копию MySQL всегда можно настроить и оптимизировать
Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST

#db

👉 @database_info
🔥2
Оконные функции SQL простым языком с примерами

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи)))

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

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

#db

👉 @database_info
👍7
Конспект-шпаргалка: MySQL / mysql / mariadb / tool

https://bookflow.ru/konspekt-shpargalka-mysql-mysql-mariadb-tool/

#db

👉 @database_info
👍5
Шпаргалка по оконным функциям в SQL

#db

👉 @database_info
👍17
This media is not supported in your browser
VIEW IN TELEGRAM
PRQL

Pipelined Relational Query Language, произносится как "Приквел".

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

https://github.com/PRQL/prql

#db

👉 @database_info
👍5
Вопросы для собеседования по SQL

Вы готовитесь к собеседованию по SQL? Тогда вы пришли в нужное место!

Это руководство поможет вам усовершенствовать свои навыки работы с SQL, вернуть уверенность в себе и быть готовым к работе!

Здесь вы найдёте подборку реальных вопросов для собеседований, задаваемых в таких компаниях, как Google, Oracle, Amazon, Microsoft и т.д. К каждому вопросу прилагается идеально написанный ответ, что экономит ваше время на подготовку к собеседованию.

Здесь также рассматриваются практические задачи, которые помогут вам понять основные концепции SQL.

Мы разделили эту статью на следующие разделы:

Вопросы для собеседования по SQL
Вопросы для собеседования по PostgreSQL

https://telegra.ph/Voprosy-dlya-sobesedovaniya-po-SQL-04-24

#db

👉 @database_info
👍8
События и ошибки ядра СУБД

Этот раздел содержит номера сообщений об ошибках и их описания, которые взяты из текста сообщения об ошибке в представлении sys.messages каталога. Если это применимо, номер ошибки представляет собой ссылку на дополнительные сведения.

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

SELECT message_id AS Error,
severity AS Severity,
[Event Logged] = CASE is_event_logged
WHEN 0 THEN 'No' ELSE 'Yes'
END,
[text] AS [Denoscription]
FROM sys.messages
WHERE language_id = 1040 /* replace 1040 with the desired language ID, such as 1033 for US English */
ORDER BY message_id;


https://learn.microsoft.com/ru-ru/sql/relational-databases/errors-events/database-engine-events-and-errors?view=sql-server-ver15

#db

👉 @database_info
👍5
Маленькая книга о Redis

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

The Little Redis Book (Маленькая книга о Redis) распространяется под лицензией Attribution-NonCommercial 3.0 Unported. Вы не обязаны платить за эту книгу.

Вы можете свободно копировать, распространять, изменять и публиковать книгу. Тем не менее, я прошу, чтобы вы всегда указывали мое, Карла Сегуина (Karl Seguin), авторство и не использовали книгу в коммерческих целях.

https://github.com/akandratovich/the-little-redis-book/blob/master/ru/redis.md

#db

👉 @database_info
👍10
Mysql

MySQL просто SELECT - уроки mysql
Mysql просто HAVING группировка - sql уроки
Mysql просто что такое JOINS обьединение - mysql уроки
Mysql просто INNER JOIN, LEFT JOIN, RIGHT JOIN
MySQL просто о сложном установка базы данных
mysql query cache возможные проблемы кэширование запросов
MySQL индекс не работает

источник

#db

👉 @database_info
👍9
SQL: быстрое погружение
Автор: Шилдс Уолтер (2022)

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL – рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными.
Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.

#db

👉 @database_info
👍7
Руководство по стилю SQL · SQL Style Guide

https://www.sqlstyle.guide/ru/

#db

👉 @database_info
👍8
Интерактивный тренажер по SQL

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

https://stepik.org/lesson/297508/step/1?unit=279268

#db

👉 @database_info
👍81