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
#вопросы_с_собеседований
Почему стоит пользоваться PDO для работы с базой данных?

Безопасность

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

Поддержка нескольких типов баз данных

PDO обеспечивает унифицированный API для работы с различными типами баз данных
, такими как MySQL, PostgreSQL, SQLite и др. Это означает, что вы можете использовать один и тот же код для работы с разными базами данных без необходимости переписывать его для каждой отдельной базы данных.

Повторное использование кода

PDO позволяет повторно использовать код благодаря использованию параметров.
Вы можете создать один раз запрос, а затем использовать его многократно с разными параметрами. Это гораздо удобнее, чем писать отдельные запросы для каждого случая.
👍3
#Вопросы_с_собеседования

Проверьте, существует ли значение в массиве Postgres

Ответ на картинке.
👍7
Правое соединение в SQL Server

Правое соединение в SQL Server
(также известное как RIGHT JOIN) используется для объединения двух таблиц вместе, чтобы получить все строки из правой таблицы и соответствующие строки из левой таблицы. Если нет совпадений, то возвращается значение NULL вместо результатов.

Однако, правое соединение может быть менее эффективным, чем другие типы соединений, такие как внутреннее соединение или левое соединение. Поэтому, перед использованием правого соединения, следует тщательно обдумать свои требования и сделать выбор наиболее подходящего типа соединения.
👍3
Индексы и оптимизация MySQL-запросов

Смотреть статью
👍41
Индекс SP-GIST

Индекс SP-GIST - это тип индекса, используемый в PostgreSQL для улучшения производительности поиска в геоданных и других многомерных данных.

Индекс SP-GIST разбивает пространство данных на маленькие области, называемые "ячейками", и строит по ним дерево. Каждая ячейка может содержать несколько объектов, и запросы на поиск объектов могут быть выполнены путем просмотра только тех ячеек, где могут находиться искомые объекты.

Создание индекса может быть выполнено с помощью оператора CREATE INDEX. Также индекс может быть использован для выполнения запросов на поиск объектов в многомерных данных.
👍3
Дана следующая таблица:

| OrderID | CustomerID | OrderDate | TotalAmount |
|---------|------------|------------|-------------|
| 1 | 1001 | 2022-05-01 | 150.00 |
| 2 | 1002 | 2022-06-15 | 250.00 |
| 3 | 1001 | 2022-07-20 | 100.00 |
| 4 | 1003 | 2022-08-10 | 300.00 |
| 5 | 1002 | 2022-09-05 | 200.00 |

Какой из следующих SQL запросов отберет заказы, сделанные покупателем с ID равным 1001?

A) SELECT * FROM Orders WHERE CustomerID = 1001
B) SELECT * FROM Orders WHERE CustomerID = '1001'
C) SELECT * FROM Orders WHERE CustomerID = '1001' ORDER BY OrderDate DESC
D) SELECT * FROM Orders WHERE CustomerID = 1001 AND TotalAmount > 200.00
1👍1
Выберите ответ на вопрос выше ⬆️
Anonymous Quiz
71%
A
23%
B
6%
C
0%
D
👍6
Возможности SQLite

Частичные индексы (Partial Indexes)

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

Индексы на выражение (Indexes On Expressions)

Если в запросах к таблице часто используется выражение, то можно построить индекс по нему. Однако следует иметь в виду, что пока оптимизатор не очень гибок и перестановка столбцов в выражении приведет к отказу от использования индекса.

Вычисляемые колонки (Generated Columns)

Если данные столбца представляют собой результат вычисления выражения по другим столбцам, то можно создать виртуальный столбец. Есть два вида: VIRTUAL (вычисляется каждый раз при чтении таблицы и не занимает места) и STORED (вычисляется при записи данных в таблицу и место занимает). Разумеется записывать данные в такие столбцы напрямую нельзя.

R-Tree индекс

Индекс предназначен для быстрого поиска в диапазоне значений/вложенности объектов, т.е. задачи типичной для гео-систем, когда объекты-прямоугольники заданы своей позицией и размером и требуется найти все объекты, которые пересекаются с текущим. Данный индекс реализован в виде виртуальной таблицы (см. ниже) и это индекс только по своей сути. Для поддержки R-Tree индекса требуется собрать SQLite с флагом SQLITE_ENABLE_RTREE (по умолчанию не установлен).
👍2
Как получить информацию о структуре БД для документации

Создаём документацию БД и словарь данных информационной системы своими руками. Полезные SQL-скрипты и приемы документирования базы данных

Смотреть статью
👍6
DuckDb: эффективная OLAP-база данных

DuckDB позволяет выполнять аналитические запросы, благодаря столбцово-векторному механизму базы данных. Это аналитическая или OLAP-версия SQLite, которая является более простой в установке по сравнению с Microsoft SQL Server и Postgres.

Преимущества DuckDB

- DuckDB имеет высокую производительность при выполнении сложных запросов
- Она работает с большим объемом данных
- DuckDB поддерживает стандарт SQL и имеет обширную библиотеку функций
- Она имеет небольшой размер и быстро устанавливается
- DuckDB прост в использовании и имеет дружественный интерфейс

Недостатки DuckDB

- Она не имеет поддержки многопользовательских приложений
- DuckDB не поддерживает некоторые функции, которые поддерживаются другими СУБД
👍4
Пример

Следующий запрос выбирает все данные строк из таблицы users где age имеет значения 18,19 и 21.
👍9
Представьте, что у вас есть две таблицы: Orders и Customers. Таблица Orders содержит поля OrderID, CustomerID, и OrderDate. Таблица Customers содержит CustomerID, Name, и City.

Напишите запрос SQL, который покажет имена всех клиентов из города "New York", которые сделали более двух заказов.
👍7