Buy this Reference Manual in softcover from Barnes & Noble!
Типы столбцов
MySQL
CREATE TABLE
):
ENUM
- тип для одного набора строк.SET
- тип для нескольких наборов строк.BIGINT
- тип для 64-битовых целых чисел.
UNSIGNED
- опция для целочисленных столбцов и столбцов чисел с плавающей запятой.ZEROFILL
- опция для целочисленных столбцов.AUTO_INCREMENT
- опция для целочисленных столбцов, являющихся первичными ключами. See section 8.4.3.126 mysql_insert_id()
.DEFAULT
- значение для всех столбцов.mSQL2
Тип в mSQL | Соответствующий тип в MySQL |
CHAR(len) |
CHAR(len) |
TEXT(len) |
TEXT(len) . len - максимальная длина. Работает LIKE . |
INT |
INT . Со множеством опций! |
REAL |
REAL . Или FLOAT . Имеются как 4-битовые, так и 8-битовые варианты. |
UINT |
INT UNSIGNED |
DATE |
DATE . Использует формат ANSI SQL, а не собственный формат mSQL. |
TIME |
TIME |
MONEY |
DECIMAL(12,2) . Значение с фиксированной точкой и двумя знаками после нее. |
Создание индексов
MySQL
CREATE TABLE
.mSQL
CREATE INDEX
.Вставка уникального идентификатора в таблицу
MySQL
AUTO_INCREMENT
. See section 8.4.3.126 mysql_insert_id()
.mSQL
SEQUENCE
и выбрать столбец _seq
.Получение уникального идентификатора для строки
MySQL
PRIMARY
или UNIQUE
состоит только из одного целочисленного столбца, к нему можно обращаться и как к _rowid
.mSQL
_rowid
. Нельзя забывать о том, что _rowid
может, в зависимости от множества факторов, со временем измениться.Получение времени последнего изменения столбца
MySQL
TIMESTAMP
. Этому столбцу автоматически присваиваются текущая дата и время при вызове операторов INSERT
или UPDATE
, если ему не присвоить определенного значения или присвоить значение NULL
.mSQL
_timestamp
.Сравнение значений NULL
MySQL
NULL
всегда возвращает результат NULL
.mSQL
NULL = NULL
имеет значение TRUE. Поэтому при переводе старого кода из mSQL в MySQL =NULL
необходимо заменить на IS NULL
, а <>NULL
- на IS NOT NULL
.Сравнение строк
MySQL
BINARY
, тогда сравнение будет проводиться в соответствии с ASCII-порядком, установленным на сервере MySQL.mSQL
Поиск без учета регистра символов
MySQL
LIKE
может быть как чувствительным, так и нечувствительным к регистру оператором, в зависимости от столбцов, к которым он применяется. По возможности MySQL использует индексы, если аргумент LIKE
не начинается с шаблонного символа.mSQL
CLIKE
.Обработка концевых пробелов
MySQL
CHAR
и VARCHAR
удаляются. Если такое поведение нежелательно, используйте столбцы TEXT
.mSQL
Операторы WHERE
MySQL
AND
имеет приоритет перед OR
). Заставить MySQL вести себя так, как mSQL, можно при помощи скобок (как можно видеть в соответствующем примере).mSQL
mysql> SELECT * FROM table WHERE a=1 AND b=2 OR a=3 AND b=4;Чтобы MySQL вычислил результат этого запроса так же, как это сделал бы mSQL, нужно расставить скобки:
mysql> SELECT * FROM table WHERE (a=1 AND (b=2 OR (a=3 AND (b=4))));
Ограничения доступа
MySQL
mSQL
Add your own comment.