Functionality added or changed:
New more secure client authentication based on 45-byte
passwords in the
CRC32() function to compute cyclic
redundancy check value.
On Windows, we are now using shared memory to communicate
between server and client when they are running on the same
machine and you are connecting to
tables now uses less temporary disk space when sorting char
is now a bit stricter to support the ability to
automatically distinguish between date, datetime, and time
with microseconds. For example, dates of type
YYYYMMDD HHMMDD are no longer supported;
you must either have separators between each
TIME part or not
Server side help for all MySQL functions. One can now type
help week in the
client and get help for the
API client function.
Fixed bug in
libmysqlclient that fetched
Fixed bug in
mysql.cc client when
record_in_range() method to
MERGE tables to be able to choose the
right index when there are many to choose from.
Replication now works with
Allow one to change mode for
on the fly.
EXPLAIN SELECT now can be killed. See
REPAIR TABLE now can be killed. See
Allow empty index lists to be specified for
IGNORE INDEX, and
DROP TEMPORARY TABLE now drops only
temporary tables and doesn't end transactions.
Added support for
UNION in derived
TIMESTAMP is now
returned as a string of type
HH:MM:SS' and different timestamp lengths are not
This change was necessary for SQL standards compliance. In a future version, a further change will be made (backward compatible with this change), allowing the timestamp length to indicate the desired number of digits of fractions of a second.
New faster client/server protocol which supports prepared statements, bound parameters, and bound result columns, binary transfer of data, warnings.
Added database and real table name (in case of alias) to the
Multi-line queries: You can now issue several queries at once and then read the results in one go.
CREATE TABLE foo (a INT not null primary
PRIMARY word is now
CREATE TABLE the attribute
SERIAL is now an alias for
BIGINT NOT NULL AUTO_INCREMENT UNIQUE.
SELECT ... FROM DUAL is an alias for
SELECT .... (To be compatible with some
If one creates a too long
VARCHAR it's now
automatically changed to
BLOB; One will get a warning in this
One can specify the different
TEXT types with
TEXT(length). MySQL will automatically
change it to one of the internal
CHAR BYTE is an alias for
VARCHARACTER is an alias for
integer MOD integer and
integer DIV integer.
SERIAL DEFAULT VALUE added as an alias
as alias for 1 and 0, respectively.
Aliases are now forced in derived tables, as per SQL-99.
SELECT .. LIMIT 0 to return proper
row count for
One can specify many temporary directories to be used in a
round-robin fashion with:
SELECT * from t1 where t1.a=(SELECT
t2.b FROM t2).
SELECT a.col1, b.col2 FROM (SELECT MAX(col1) AS col1 FROM root_table) a, other_table b WHERE a.col1=b.col1;
Character sets to be defined per column, table and database.
Unicode (UTF8) support.
CONVERT(... USING ...) syntax for
converting string values between character sets.
BTREE index on
Faster embedded server (new internal communication protocol).
One can add a comment per column in
SHOW FULL COLUMNS FROM table_name shows
Support for GIS (Geometrical data). See 章 10. MySQL における空間情報の機能.
SHOW [COUNT(*)] WARNINGS shows warnings
from the last command.
One can specify a column type for a colum in
TABLE ... SELECT by defining the column in the
CREATE TABLE foo (a tinyint not null) SELECT b+1 AS 'a' FROM bar;
expr SOUNDS LIKE expr same as
VARIANCE(expr) function returns
the variance of
One can create a table from the existing table using
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table
(LIKE table). The table can be either normal or
--disable-reconnect for the
mysql client, to reconnect automatically
or not if the connection is lost.
START SLAVE (
SLAVE) no longer returns an error if the slave is
already started (stopped); it returns a warning instead.
SLAVE START and
STOP are no longer accepted by the query parser;
START SLAVE and
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.