Документация MySQL

21.10.2008

Сервер MySQL включает в себя ряд расширений, которые могут отсутствовать в
других базах данных SQL. Если вы их используете, то следует иметь в виду,
что такой код не будет переносимым на другие SQL-серверы. В некоторых
случаях можно написать код, включающий расширения MySQL, но, тем не менее,
являющийся переносимым, воспользовавшись комментариями вида
/*! ... */
. В
этом случае сервер MySQL будет анализировать и выполнять данный код внутри
этого комментария как обычную команду MySQL, в то время как другие
SQL-серверы будут игнорировать данное расширение. Например:
SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...
'!'
это выражение будет исполняться
только в случае, если номер данной версии MySQL равен указанному номеру
или больше:
CREATE /*!32302 TEMPORARY */ TABLE t (a int);
Это означает, что при наличии версии 3.23.02 или выше сервер MySQL будет
использовать ключевое слово
.
,
,
.
,
,
,
.
Все сравнения строк по умолчанию являются независимыми от регистра
символов с порядком сортировки, заданным текущей кодировкой
(ISO-8859-1 Latin1 по умолчанию). Если вас это не устраивает, то можно
объявить столбцы с атрибутом
, в результате чего сравнение будет выполняться в
соответствии с порядком ASCII, используемом на хосте сервера MySQL.
Сервер MySQL сопоставляет каждую базу данных с подкаталогом в каталоге
данных MySQL, а таблицы внутри базы данных - с именами файлов в этом
подкаталоге базы данных.

Это правило имеет несколько следствий:
В сервере MySQL, работающем под операционными системами с
зависимыми от регистра символов именами файлов (таковыми являются
большинство Unix-систем), имена баз данных и имена таблиц
являются зависимыми от регистра символов (see section
).
Имена базы данных, таблицы, индекса, столбца или псевдонимы могут
начинаться с цифры (но не должны содержать только цифры).
Можно использовать стандартную систему команд выполнения
резервного копирования, переименования, перемещения, удаления и
копирования таблиц. Например, для переименования таблицы
необходимо переименовать соответствующие этой таблице файлы
'.MYD'
,
'.MYI'
'.frm'
.
db_name.tbl_name
. В некоторых SQL-серверах
обеспечивается точно такая же функциональная возможность, но она
называется
. Сервер MySQL не поддерживает табличные
пространства (как в выражении:
CREATE TABLE ralph.my_table...IN
my_tablespace
).
разрешается на числовых столбцах.
(see section ).
.
для получения описаний объединения
таблиц.
Использование индексных имен, индексов на префиксах полей, а также
TABLE (see section ).
.
, где
представляет собой более
чем один элемент.
,
DROP INDEX,
(see section ).
. See section
E .
,
,
.
.
.
.
.
,
,
.
. Во многих случаях этот синтаксис
совместим с применяющимся в Oracle
(see section ).
,
,
.
(see section ).
, или
, но
не просто
.
.
(see section ).
. Это дает лучшую производительность для некоторых очень
специфических, но вполне нормальных запросов (see section
).
.
Чтобы упростить работу для пользователей, привыкших к иным условиям
среды SQL, в сервере MySQL поддерживаются псевдонимы для многих
функций. Например, для всех строковых функций поддерживается синтаксис
как ANSI SQL, так и ODBC.
), как это принято в языке программирования C. В сервере
MySQL
) являются синонимами, так же, как
).
Благодаря этому удобному синтаксису, в сервере MySQL не поддерживается
оператор ANSI SQL
. Поскольку функция
принимает любое
количество аргументов, то в сервере MySQL можно легко модифицировать
использование оператора
.
(see section ).
. Т.е.
MOD(N,M)
. Оператор
поддерживается для программистов на C и для
совместимости с PostgreSQL.
,
,
,
,
,
,
,
,
,
,
.
Например:
(see section ).
расширенных регулярных выражений.
с одним аргументом или более чем с двумя
аргументами (в сервере MySQL эти функции могут принимать любое
количество аргументов).
,
,
,
,
,
,
,
,
,
,
,
,
,
.
для усечения подстрок. В ANSI SQL
поддерживается только удаление единичных символов.
,
.
(see section ).
,
.
SELECT @a:=SUM(total),@b=COUNT(*),@a/@b AS avg FROM test_table;
SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.

Документация MySQL

21.10.2008

изменяет таблицу в соответствии с текущей кодировкой. Если при
выполнении
выдается ошибка дублирующегося ключа, то причина
либо в том, что новая кодировка отображает ключи в одинаковые значения,
либо в том, что таблица повреждена. В последнем случае на таблице
необходимо выполнить
.
прекращается с ошибкой, подобной приведенной ниже:
Error on rename of './database/name.frm' to './database/B-a.frm' (Errcode:
17)
то проблема может быть связана с тем, что MySQL аварийно завершился на
предыдущей команде
. В этом случае перейдите в каталог
данных MySQL и удалите все файлы, имена которых начинаются с
(их
можно и не удалять, а куда-либо переместить).
с заданными в запросе
изменениями.
.
.
переименовывается в имя старой таблицы.
.
Если что-то приключится при операции переименования, MySQL попытается
отменить изменения. Если случится что-то серьезное (чего произойти,
конечно, не должно), MySQL может оставить старую таблицу именованной как
- в этом случае, однако, для восстановления данных достаточно будет
просто переименовать ее на системном уровне.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.