New reserved words used: INTERVAL
,
EXPLAIN
, READ
,
WRITE
, BINARY
.
Added ODBC function CHAR(num,...)
.
New operator IN
. This uses a binary
search to find a match.
New command LOCK TABLES tbl_name [AS alias]
{READ|WRITE} ...
Added --log-update
option to
mysqld
, to get a log suitable for
incremental updates.
New command EXPLAIN SELECT ...
to get
information about how the optimiser will do the join.
For easier client code, the client should no longer use
FIELD_TYPE_TINY_BLOB
,
FIELD_TYPE_MEDIUM_BLOB
,
FIELD_TYPE_LONG_BLOB
or
FIELD_TYPE_VAR_STRING
(as previously
returned by mysql_list_fields
). You
should instead only use FIELD_TYPE_BLOB
or FIELD_TYPE_STRING
. If you want exact
types, you should use the command SHOW
FIELDS
.
Added varbinary syntax: 0x######
which
can be used as a string (default) or a number.
FIELD_TYPE_CHAR
is renamed to
FIELD_TYPE_TINY
.
Changed all fields to C++ classes.
Removed FORM struct.
Fields with DEFAULT
values no longer need
to be NOT NULL
.
New field types:
ENUM
A string which can take only a couple of defined values. The value is stored as a 1-3 byte number that is mapped automatically to a string. This is sorted according to string positions!
SET
A string which may have one or many string values separated with ','. The string is stored as a 1-, 2-, 3-, 4- or 8-byte number where each bit stands for a specific set member. This is sorted according to the unsigned value of the stored packed number.
Now all function calculation is done with
double
or long long
.
This will provide the full 64-bit range with bit functions
and fix some conversions that previously could result in
precision losses. One should avoid using unsigned
long long
columns with full 64-bit range (numbers
bigger than 9223372036854775807) because calculations are
done with signed long long
.
ORDER BY
will now put
NULL
field values first. GROUP
BY
will also work with NULL
values.
Full WHERE
with expressions.
New range optimiser that can resolve ranges when some keypart prefix is constant. Example:
mysql>SELECT * FROM tbl_name
->WHERE key_part_1="customer"
->AND key_part_2>=10 AND key_part_2<=10;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.