10287
№ 5060218708 Изучаем SQL с нуля По всем вопросам @mascarov_valentin Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
SQL SELECT TOP
Выражение SELECT TOP используется для определения количества записей при выборке.
SQL SELECT TOP полезен для больших таблиц с тысячами записей. Возврат большого количества записей может повлиять на производительность.
Не все системы баз данных поддерживают предложение SELECT TOP. MySQL поддерживает предложение LIMIT для выбора ограниченного количества записей, тогда как Oracle использует FETCH FIRST n ROWS ONLY и ROWNUM.
Все виды синтаксисов - здесь
В таблице приведена выборка из таблицы "Customers" базы данных Northwind
В фото разбираем такие примеры, как:
1 фото - SQL TOP, LIMIT и FETCH FIRST
2 фото - SQL TOP PERCENT
3 фото - Использование выражения WHERE
Table Hints в T-SQL
Табличные хинты относятся только к таблицам и представлениям, для которых они указаны. Такие хинты предназначены для определения способа блокировки, указания конкретного индекса, способа обработки данных в таблицах, например, сканирование или поиск.
Некоторые хинты для таблиц:
- INDEX – оптимизатор запросов будет использовать указанный индекс при обработке запроса;
- FORCESEEK – оптимизатор запросов будет использовать только операцию поиска в индексе в качестве пути доступа к данным;
- FORCESCAN – оптимизатор запросов будет использовать только операцию сканирования в индексе в качестве пути доступа к данным;
- ROWLOCK – блокировки строк применяются вместо блокировки страниц или таблиц;
- HOLDLOCK – накладывает дополнительные ограничения на совмещаемую блокировку, удерживая ее до завершения транзакции. Хинт HOLDLOCK равнозначен хинту SERIALIZABLE;
- NOLOCK – разрешает «грязное чтение». Хинт NOLOCK равнозначен хинту READUNCOMMITTED;
- NOEXPAND – указывает, что индексированное представление не расширяется для доступа к базовым таблицам. Такое представление обрабатывается так же, как и таблица с кластеризованным индексом.
Хинты для таблиц указываются в предложении FROM с помощью ключевого слова WITH после названия таблицы или представления.
Экранирование двоичных данных в SQL
В современном веб-разработке базы данных используются повсеместно. При работе с БД часто возникает необходимость хранить двоичные данные, такие как изображения или видео. Однако, есть риск того, что двоичные данные могут содержать символы, которые могут быть восприняты как специальные символы в SQL, что может привести к непреднамеренной модификации данных.
Экранирование двоичных данных
Для экранирования двоичных данных в SQL мы можем использовать функцию mysqli_real_escape_string(). Эта функция автоматически экранирует специальные символы, такие как одинарные кавычки, двойные кавычки и обратные слеши. Чтобы использовать эту функцию, мы должны сначала установить соединение с базой данных, а затем вызвать функцию, передав ей двоичные данные в качестве аргумента.
Пример экранирования двоичных данных в PDO
«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»
В PDO можно экранировать двоичные данные с помощью метода quote(). Этот метод автоматически экранирует специальные символы и возвращает заключенную в кавычки строку. Для использования этого метода мы должны сначала установить соединение с базой данных, а затем вызвать метод quote(), передав ему двоичные данные в качестве аргумента.
#вопросы_с_собеседований
В базе данных есть две таблицы: TABLE1 и TABLE2. Отработает ли данный запрос или упадет с ошибкой? И объяснить, почему.
Данный запрос отработает, так как синтаксически он правильный и все поля существуют в таблице и соответствуют нужному типу данных.
Поля id, value, i, y должны быть в таблице table1 и соответствовать нужному типу данных.
Группировка выполняется по столбцу i, указанному в PARTITION BY. Сортировка выполняется по столбцу y, указанному в ORDER BY.
Функция SUM с оконной функцией OVER выполняет суммирование значения столбца value сгруппированного по столбцу i и упорядоченного по столбцу y. Также выбираются все поля.
#Вопросы_с_собеседования
Что такое сущности и отношения в SQL?
В SQL, сущности (или таблицы) - это коллекции данных, которые содержат информацию о конкретных объектах или событиях. Каждая сущность представляет собой набор атрибутов, которые описывают свойства объекта или события.
Отношения в SQL - это связи между сущностями. Они описывают, как данные в одной таблице связаны с данными в другой таблице. Отношения в SQL могут быть один к одному, один ко многим, многие к одному и многие ко многим.
Например, предположим, что у нас есть две таблицы:
"Клиенты" и "Заказы". Каждый клиент может иметь множество заказов, но каждый заказ может принадлежать только одному клиенту. Это описывает отношение "один ко многим" между таблицами "Клиенты" и "Заказы".
Все о команде COLLATE в SQL
Команда COLLATE в SQL используется для указания правил сортировки и сравнения символов при выполнении операций сравнения в запросах.
Существует несколько вариантов значений, которые можно использовать в команде COLLATE, включая:
- _CS - с учетом регистра
- _CI - без учета регистра
- _AS - с учетом локали (language sensitive)
- _AI - без учета локали (language insensitive)
Примеры:
- Cyrillic_General_CS_AS - с учетом регистра и локали для кириллицы
- Latin1_General_CI_AI - без учета регистра и локали для латиницы
Векторный поиск в YDB
Новая возможность в СУБД от Яндекса: поиск по семантическому сходству. Данные (текст, изображения, аудио, видео) преобразуются в эмбеддинги и индексируются.
Поддерживаются два режима — точный и приближенный. Второй рассчитан на большие объёмы и работает быстрее за счёт снижения точности. Векторный поиск доступен для использования в облаке и on-premises.
Читать статью
Разворачиваем MySQL: установка и настройка
MySQL на сегодняшний день является одной из наиболее распространенных в мире. Достаточно сказать, что по рейтингам 2021 года данная СУБД лишь немного уступала Oracle.
Смотреть статью
#Вопросы_с_собеседования
Что такое внешний ключ?
Внешний ключ или FOREIGN KEY также является атрибутом ограничения и обеспечивает связь двух таблиц. По сути, это поле или несколько полей, которые ссылаются на PRIMARY KEY в родительской таблице.
В нашем случае внешний ключ, привязанный к полю user_id в таблице order, ссылается на первичный ключ id в таблице users, и именно по этим полям происходит связывание двух таблиц.
#Вопросы_с_собеседования
Что не так с этим запросом?
Неверное выражение BillingYear в условии WHERE. Несмотря на то, что он определен как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Программисты привыкли к тому, что операторы выполняются сверху вниз или слева направо, но в T-SQL это происходит в другом порядке.
🔵 Занимаешься IT и ищешь свежие идеи? На этом канале собраны инсайды СЕО 1win о развитии iGaming-бизнеса.
Узнай, как управлять крупной компанией в высококонкурентной нише, используя новые технологии и тренды.
Подписывайся на Owner 1win и будь в теме!
#Вопросы_с_собеседования
Что такое сущности и отношения?
Объект представляет собой абстракцию набора связанных данных и представлен в виде таблиц . Отношения определяют, как объекты связаны друг с другом.
Например, предположим, что у нас есть две таблицы с именами orders и users. Наши orders и users являются нашими сущностями.
Мы можем представить, что у одного пользователя может быть много заказов. Таким образом, пользователи могут иметь отношения «один ко многим» с заказами. Сущности и отношения часто используются в процессе разработки схемы таблицы. Понимая, как определять объекты и отображать их отношения, вы показываете, что можете продуктивно работать в коллективном сеансе проектирования таблиц базы данных.
Привет, на связи админ.
Многие из вас слышали про VEO3 нейронку, которая очень качественно генерит видосы. Я ее встроил в бота, можете затестить(самые низкие цены на рынке, ниже не найдете нигде veo3
Скромное руководство по схемам баз данных
Смотреть статью
DataHub: веб-песочница для тех, кто изучает SQL
Читать статью
Как узнать размер файла с помощью SQL?
Вы можете узнать размер файла, используя функцию DATALENGTH. Эта функция возвращает длину выражения в байтах.
Замените [имя_столбца_с_файлом] на имя столбца, содержащего файл, [имя_таблицы] на имя таблицы, содержащей файл, а [условие] на условие выборки файлов.
Например, если у вас есть таблица Файлы с столбцом Содержимое_файла, и вы хотите узнать размер файла с id 1, обращаемся ко второй части фото.
Что это значит для ваших отношений?
Каждый 3-й скрывает цифровую психотерапию (данные MindHealth ). Почему это НЕ предательство? 💔
Что это значит?
Не вина, а крик о помощи! ИИ стал «безопасным слушателем» там,там,) где мы не смогли создать доверие.
Как открыть диалог без скандала? Читайте 👉 тут
Реклама. ИП Теребенин Евгений Валентинович erid:2VtzqvzsdQC
Важные моменты при сравнении record и NULL:
При использовании ROW expression в SQL и сравнении с IS NULL результат будет TRUE только в том случае, если каждый столбец содержит значение NULL. Это важно знать, чтобы избежать ошибок в своем коде.
Таким образом, при сравнении ROW expression с NULL необходимо учитывать, что результат будет зависеть от того, есть ли в каждом столбце значение NULL или нет.
Count (1) вместо count (*)
При любой возможности выбирайте count(1) вместо count(*). Оператор count(*) принимает в расчет все столбцы таблицы для выполнения вычислений, тогда как count(1) учитывает только первый столбец.
Обратите внимание, что результат остается неизменным, будь то count (*) или count (1).
При использовании count(1) движок базы данных задействует меньше ресурсов и работает быстрее. В случае небольших таблиц эта разница будет незаметна, но если дело касается больших из них, то данный фактор существенно отразится на производительности запросов.
Разница между using и on в join-запросах
Join-запросы используются для объединения данных из нескольких таблиц в один результат. В MySQL для этого можно использовать конструкции using и on. Обе конструкции используются для указания условий объединения таблиц, но они имеют некоторые различия.
1 - Конструкция using используется, когда объединение происходит по столбцу, имеющему одинаковое имя в обеих таблицах.
2 - Конструкция on используется, когда объединение происходит по каким-то другим условиям.
Конструкция using удобна в случаях, когда объединение происходит по столбцам с одинаковыми именами, а on - в случаях, когда объединение происходит по другим условиям.
Прибавляем время
Функция TIMESTAMPADD(unit, value, datetime) прибавляет к дате и времени суток datetime временной интервал value.
В нашем примере мы прибавляем к нашей дате 3 часа.
✅ Как настроить реакцию на изменения в таблицах Postgres?
Как передать эти изменения в микросервисы, в Kafka и в другие СУБД, например в Clickhouse?
Расскажем на открытом уроке «Событийная интеграция Postgres» посвященный курсу «PostgreSQL для администраторов баз данных и разработчиков»
✅ Научитесь выбирать правильный способ событийной интеграции
✅ Посмотрите, как и что можно реализовать для надежной передачи данных из Postgres во внешние системы
👉Узнаете про опыт других предприятий и протестируйте обучение на открытом уроке
https://tglink.io/1aeaa13b7a55?erid=2W5zFJmzZdJ
#реклама
О рекламодателе
#Вопросы_с_собеседования
Как найти дубли в поле email?
Функция COUNT() возвращает количество строк из поля email. Оператор HAVING работает почти так же, как и WHERE, вот только применяется не для всех столбцов, а для набора, созданного оператором GROUP BY.
Функция COALESCE
Возвращает первое ненулевое выражение в списке.
#Вопросы_с_собеседования
❓Для чего используются агрегатные функции?
Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией.
Несколько примеров агрегатных функций: COUNT(), SUM(), MAX(), MIN(), AVG() и ROUND().
#Вопросы_с_собеседования
Напишите SQL-запрос, который найдет суммарное количество заказов и общую сумму продаж для каждого месяца за последние 6 месяцев, и отобразит результаты только для тех месяцев, в которых было совершено более 100 заказов?
В этом примере мы используем функцию DATE_TRUNC для округления даты до месяца. Затем мы считаем общее количество заказов с помощью функции COUNT и общую сумму продаж с помощью функции SUM. Затем мы используем выражение HAVING для фильтрации только тех месяцев, где количество заказов превышает 100. Наконец, мы сортируем результаты по месяцам с помощью выражения ORDER BY.
#Вопросы_с_собеседования
❓Очистите все таблицы базы данных test1
Ответ на картинке.
#Вопросы_с_собеседования
❓Даны две таблицы: таблица category с полями id и name и таблица page с полями id, name и category_id. Достаньте одним запросом все страницы вместе с их категориями
Ответ на картинке.
Как жили наши предки 400 лет назад? Создание базы данных населения XVII века по южным уездам России
Смотреть статью