Написать письмо   
 
logo
 
Snippy
Сборник
примеров кода
Решил изучить джойны кроме обычных JOIN, LEFT JOIN и RIGHT JOIN.

MySQL еще предлагает два - NATURAL и STRAIGHT_JOIN (хотя второй представляет собой инструкцию оптимизатору, а не другую логику объединения таблиц).
Про них хорошо написано здесь.

Еще есть FULL OUTER JOIN, который MySQL'ом не поддерживается, кратко про него на википедии.

Ну а здесь можно посмотреть визуальное представление работы джойнов, кроме NATURAL.



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

На хабре есть небольшая статья, в которой хорошо расписано как использовать в своей работе партицирование.



В MS SQL отсутствует LIMIT в SELECT'е. Это поразительно и глупо, но это так. И после MySQL это невероятно раздражает. Поэтому было найдено решение проблемы. Сравнительно медленное, но зато работающее не только в новых версиях MS SQL (где есть row_number(), облегчающий жизнь). Итак, для того, чтобы к примеру сделать запрос аналогичный LIMIT 10,20 в MS SQL надо написать:
Читать дальше...


Парсит текстовый файл со списком mySQL запросов которые необходимо выполнить. Класс пропускает комментарии и читает все строки до ; для сбора законченного sql. Каждый запрос выполняется как mySQL запрос в дефолтовом соединении с БД.
Читать дальше...


Предположим есть таблица с сохраненным полным XML документом в одном столбце и необходимо извлечь конкретный элемент для отображения, сортировки, проч. Хранимая процедура приведенная ниже, сделает эту работу. Необходимо выставить log_bin_trust_routine_creators в единицу: SET GLOBAL log_bin_trust_routine_creators = 1;
Читать дальше...


Этот пример конвертирует SQL из oracle, mysql, mssql, sqllite в ansi sql для избежания проблем совместимости на различных платформах
Читать дальше...


Подсчет кол-ва недель в месяце имеющих специфический день (Пон, Вт, Ср и тд), первый день месяца, кол-во рабочих часов исключая выходные.
Читать дальше...


Для использования этого скрипта вам необходимо иметь таблицу с таким же кол-вом полей как и в текстовом файле. Пример : a a@a.com b b@b.com Теперь таблица БД должна иметь 2 поля: имя и e-mail
Читать дальше...


У вас есть набор многих ресурсов и вам необходимо знать какие из этих ресурсов доступны на нужный период времени, но mySQL не поддерживает sub-selection :( Вот как это можно сделать одним запросом:
Читать дальше...


Ключи массива должны совпадать с именами столбцов и табличная переменная должна содержать имя таблицы для вставки. Функция может быть несложно модифицированна для UPDATE.
Читать дальше...


Программа аплоадит ODBC ресурс (MS Access БД в mySQL). Таблица должна существовать в mySQL. Программа определяет какие поля определены в mySQL таблице и затем закачивает соответствующие поля из ODBC ресурса. При вызове без аргументов будет показан список таблиц в БД mySQL
Читать дальше...


Следующий код позволяет получить метаданные БД mySQL:
Читать дальше...


Для выборки случайного ряда из таблицы можно воспользоваться запросом: SELECT * FROM table ORDER BY RAND() LIMIT 1; Однако для лучшей производительности при большом количестве рядов и наличии первичного индекса по полю id который идет БЕЗ ПРОПУСКОВ, в целях оптимизации производительности лучше воспользоваться двумя выборками с генерацией случайного числа на стороне PHP скрипта:
Читать дальше...


Бывают ситуации когда возникает необходимость обновить ряд с указанным ID, либо при отсутствии этого ID, вставить соответствующую ему запись. Таким образом нужно проверить есть ли в таблице запись с нужным ID через SELECT, если есть то выполнить UPDATE, иначе вставить ряд с помощью INSERT. Но есть более оптимальный путь, это использование в запросе вставки ON DUPLICATE KEY UPDATE. Что делает приведенный запрос? Запрос говорит следующее: вставить новый ряд, НО если ряд с указанным ID уже существует, то просто обновить в нем поле column. Следует учесть, что ID должен быть первичным или уникальным ключом!
Читать дальше...


Например, почему не работает такой запрос: SELECT * FROM tableName WHERE charFieldName LIKE "%\\%" - выбрать из таблицы tableName ряды в которых поле charFieldName содержит обратный слэш (\). При этом сам обратный слэш в запросе экранирован. Ответ: Потому что запрос неправильно записан. Чтобы выполнить поиск символа '\', его следует указать как '\\\\'. Причиной такой записи является то, что обратные слэши удаляются дважды: сначала синтаксическим анализатором, а потом - при выполнении сравнения с шаблоном, таким образом остается только один обратный слеш, который и будет обрабатываться.
Читать дальше...


Пример выводит список записей из базы данных через ADO в ListBox.
Читать дальше...


Для работы с базами данных MS Access используются объекты OleDB. Данный пример показывает, как можно загрузить данные из DataSet в элемент GridView. Данный пример предполагает наличие файла MyData.mdb в каталоге с файлом страницы, который должен содержать заполненную таблицу myTable с произвольным количеством полей.
Скачать пример 13,1 Kb
Читать дальше...


Создайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для добавления данных в базу данных, используйте следующий код:
Читать дальше...


Довольно неплохой класс (но не лучший ;) ..) упращающий доступ к базам данных SQL Server.
Читать дальше...


Создайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для удаления данных из базы данных, используйте следующий код:
Читать дальше...


Довольно неплохой класс (но не лучший ;) ..) упращающий доступ к базам данных SQL Server.Автор: Mulish Mehdi
Читать дальше...


Компонент для работы с данными (в исходном виде), и пример его использования.
Читать дальше...


Создайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для чтения данных из базы данных, используйте следующий код:
Читать дальше...


Пример скрипта для упрощения процесса создания бэкапа баз данных mysql/
Читать дальше...


Генерим несколько паролей(количество - как повезет, но не больше 10), альфанумеричных, длиной 8 символов:
Читать дальше...


Удобный способ информирования о ошибках mysql, вместо обычного die(mysql_error()), особенно когда в скрипте используется много запросов к базе данных.
Читать дальше...


Пример экспорта результатов mysql запроса к базе данных в формат csv.
Читать дальше...


Создает условия для простого поискового SQL запроса, основанного на LIKE и REGEXP.
Поисковая фраза и данные в таблице БД д.б. в кодировке UTF-8!

LIKE используется для оптимизации скорости (и стоит в условии первым!),
REGEXP -- для точного поиска целых вхождений слов и чисел.

Синтаксис и примеры поискового запроса:
"квантов* механик*", "сервер 3.4GHz 1024Mb", "смысл* жизни" -- ищутся вхождения всех слов (логическое "И")
"квантов* | механик*" -- ищутся вхождения любого найденного (логическое "ИЛИ")
Необязательный символ "*" заменяет ноль или более букв и может стоять только в конце слова!
В начале или в середине слова звёздочка стоять не может!
Регистр слов при поиске не учитывается!
Читать дальше...


Пример как получить список доступных баз данных.
Читать дальше...



Функция генерирует список существующих таблиц в указанной базе данных.
Читать дальше...


[ 1 ] [ 2 ]