![]() |
|
![]() |
||||||
![]() |
Решил изучить джойны кроме обычных JOIN, LEFT JOIN и RIGHT JOIN. MySQL еще предлагает два - NATURAL и STRAIGHT_JOIN (хотя второй представляет собой инструкцию оптимизатору, а не другую логику объединения таблиц). Про них хорошо написано здесь. Еще есть FULL OUTER JOIN, который MySQL'ом не поддерживается, кратко про него на википедии. Ну а здесь можно посмотреть визуальное представление работы джойнов, кроме NATURAL. ![]() ![]() Базы данных → Партиционирование (partitioning) — механизм разбиения больших таблиц на логические части → ЗаметкиПартицирование - простой в использовании (по крайней мере, относительно 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 для избежания проблем совместимости на различных платформах Читать дальше... ![]() Базы данных → Подсчет кол-ва недель в месяце имеющих специфический день (Пон, Вт, Ср и тд), первый день месяца, кол-во рабочих часов исключая выходные. → PHPПодсчет кол-ва недель в месяце имеющих специфический день (Пон, Вт, Ср и тд), первый день месяца, кол-во рабочих часов исключая выходные. Читать дальше... Для использования этого скрипта вам необходимо иметь таблицу с таким же кол-вом полей как и в текстовом файле.
Пример :
a a@a.com
b b@b.com
Теперь таблица БД должна иметь 2 поля: имя и e-mail Читать дальше... У вас есть набор многих ресурсов и вам необходимо знать какие из этих ресурсов доступны на нужный период времени, но mySQL не поддерживает sub-selection :( Вот как это можно сделать одним запросом: Читать дальше... ![]() Базы данных → PHP функция позволяющая передать ассоциативный массив и табличную переменную. Строит INSERT из массива → PHPКлючи массива должны совпадать с именами столбцов и табличная переменная должна содержать имя таблицы для вставки. Функция может быть несложно модифицированна для UPDATE. Читать дальше... Программа аплоадит ODBC ресурс (MS Access БД в mySQL). Таблица должна существовать в mySQL. Программа определяет какие поля определены в mySQL таблице и затем закачивает соответствующие поля из ODBC ресурса. При вызове без аргументов будет показан список таблиц в БД mySQL Читать дальше... Для выборки случайного ряда из таблицы можно воспользоваться запросом:
SELECT * FROM table ORDER BY RAND() LIMIT 1;
Однако для лучшей производительности при большом количестве рядов и наличии первичного индекса по полю id который идет БЕЗ ПРОПУСКОВ, в целях оптимизации производительности лучше воспользоваться двумя выборками с генерацией случайного числа на стороне PHP скрипта: Читать дальше... Бывают ситуации когда возникает необходимость обновить ряд с указанным ID, либо при отсутствии этого ID, вставить соответствующую ему запись. Таким образом нужно проверить есть ли в таблице запись с нужным ID через SELECT, если есть то выполнить UPDATE, иначе вставить ряд с помощью INSERT. Но есть более оптимальный путь, это использование в запросе вставки ON DUPLICATE KEY UPDATE.
Что делает приведенный запрос? Запрос говорит следующее: вставить новый ряд, НО если ряд с указанным ID уже существует, то просто обновить в нем поле column. Следует учесть, что ID должен быть первичным или уникальным ключом! Читать дальше... ![]() Базы данных → Сравнение с шаблоном (LIKE REGEXP) не работает если в строке есть символ '\' (обратный слэш), даже если он экранирован. Почему? → SQLНапример, почему не работает такой запрос: SELECT * FROM tableName WHERE charFieldName LIKE "%\\%" - выбрать из таблицы tableName ряды в которых поле charFieldName содержит обратный слэш (\). При этом сам обратный слэш в запросе экранирован.
Ответ: Потому что запрос неправильно записан.
Чтобы выполнить поиск символа '\', его следует указать как '\\\\'. Причиной такой записи является то, что обратные слэши удаляются дважды: сначала синтаксическим анализатором, а потом - при выполнении сравнения с шаблоном, таким образом остается только один обратный слеш, который и будет обрабатываться. Читать дальше... ado, database, db, vb, visual basicДля работы с базами данных MS Access используются объекты OleDB. Данный пример показывает, как можно загрузить данные из DataSet в элемент GridView. Данный пример предполагает наличие файла MyData.mdb в каталоге с файлом страницы, который должен содержать заполненную таблицу myTable с произвольным количеством полей. Скачать пример 13,1 Kb Читать дальше... Создайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для добавления данных в базу данных, используйте следующий код: Читать дальше... Довольно неплохой класс (но не лучший ;) ..) упращающий доступ к базам данных SQL Server. Читать дальше... class, server, sql, vb, visual basicСоздайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для удаления данных из базы данных, используйте следующий код: Читать дальше... Довольно неплохой класс (но не лучший ;) ..) упращающий доступ к базам данных SQL Server.Автор: Mulish Mehdi Читать дальше... ado, data, database, vb, visual basicСоздайте стандартный EXE-проекта. Добавьте ссылку на библиотеку MS DAO 3.6 (меню Проект => Ссылки => Microsoft DAO 3.6 Object Library). Для чтения данных из базы данных, используйте следующий код: Читать дальше... Генерим несколько паролей(количество - как повезет, но не больше 10), альфанумеричных, длиной 8 символов: Читать дальше... Удобный способ информирования о ошибках mysql, вместо обычного die(mysql_error()), особенно когда в скрипте используется много запросов к базе данных. Читать дальше... ![]() Базы данных → Создание условия для простого поискового SQL запроса, основанного на LIKE и REGEXP → PHPСоздает условия для простого поискового SQL запроса, основанного на LIKE и REGEXP. Поисковая фраза и данные в таблице БД д.б. в кодировке UTF-8! LIKE используется для оптимизации скорости (и стоит в условии первым!), REGEXP -- для точного поиска целых вхождений слов и чисел. Синтаксис и примеры поискового запроса: "квантов* механик*", "сервер 3.4GHz 1024Mb", "смысл* жизни" -- ищутся вхождения всех слов (логическое "И") "квантов* | механик*" -- ищутся вхождения любого найденного (логическое "ИЛИ") Необязательный символ "*" заменяет ноль или более букв и может стоять только в конце слова! В начале или в середине слова звёздочка стоять не может! Регистр слов при поиске не учитывается! Читать дальше... ![]() [ 1 ] [ 2 ]
|
Меню
Подписка на RSS:
Поиск
Облако тегов
.net
array
asp
bash
browser
charset
check
class
clean
convert
count
create
css
curl
database
date
delete
directory
download
element
email
equivalent
extension
file
find
form
format
function
get
height
html
http
ie
image
javascript
jquery
load
mysql
number
page
perl
php
random
scriplet
send
shell
size
sql
string
text
time
url
utf8
variable
vb
visual basic
width
window
xml
xslt
|
![]() |
![]() |
![]() |
||
![]() |
![]() |