Functionality added or changed:
New more secure client authentication based on 45-byte
passwords in the user
table.
New 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
localhost
.
REPAIR
of MyISAM
tables now uses less temporary disk space when sorting char
columns.
DATE
/DATETIME
checking
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
DATE
/TIME
part or not
at all.
Server side help for all MySQL functions. One can now type
help week
in the mysql
client and get help for the week()
function.
Added new mysql_get_server_version()
C
API client function.
Fixed bug in libmysqlclient
that fetched
column defaults.
Fixed bug in mysql.cc
client when
skipping comments
Added 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 RAND()
and
user variables @var
.
Allow one to change mode for ANSI_QUOTES
on the fly.
EXPLAIN SELECT
now can be killed. See
項4.6.7. 「KILL
構文」.
REPAIR TABLE
now can be killed. See
項4.6.7. 「KILL
構文」.
Allow empty index lists to be specified for USE
INDEX
, IGNORE INDEX
, and
FORCE INDEX
.
DROP TEMPORARY TABLE
now drops only
temporary tables and doesn't end transactions.
Added support for UNION
in derived
tables.
Warning: Incompatible
change! TIMESTAMP
is now
returned as a string of type 'YYYY-MM-DD
HH:MM:SS'
and different timestamp lengths are not
supported.
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
MYSQL_FIELD
structure.
Multi-line queries: You can now issue several queries at once and then read the results in one go.
In CREATE TABLE foo (a INT not null primary
key)
the PRIMARY
word is now
optional.
In 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
other databases).
If one creates a too long
CHAR
/VARCHAR
it's now
automatically changed to TEXT
or
BLOB
; One will get a warning in this
case.
One can specify the different
BLOB
/TEXT
types with
the syntax BLOB(length)
and
TEXT(length)
. MySQL will automatically
change it to one of the internal
BLOB
/TEXT
types.
CHAR BYTE
is an alias for CHAR
BINARY
.
VARCHARACTER
is an alias for
VARCHAR
.
New operators integer MOD integer
and
integer DIV integer
.
SERIAL DEFAULT VALUE
added as an alias
for AUTO_INCREMENT
.
TRUE
and FALSE
added
as alias for 1 and 0, respectively.
Aliases are now forced in derived tables, as per SQL-99.
Fixed SELECT .. LIMIT 0
to return proper
row count for SQL_CALC_FOUND_ROWS
.
One can specify many temporary directories to be used in a
round-robin fashion with:
--tmpdir=dirname1:dirname2:dirname3
.
Subqueries: SELECT * from t1 where t1.a=(SELECT
t2.b FROM t2)
.
Derived tables:
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.
New CONVERT(... USING ...)
syntax for
converting string values between character sets.
BTREE
index on HEAP
tables.
Faster embedded server (new internal communication protocol).
One can add a comment per column in CREATE
TABLE
.
SHOW FULL COLUMNS FROM table_name
shows
column comments.
ALTER DATABASE
.
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 CREATE
TABLE ... SELECT
by defining the column in the
CREATE
part.
CREATE TABLE foo (a tinyint not null) SELECT b+1 AS 'a' FROM bar;
expr SOUNDS LIKE expr
same as
SOUNDEX(expr)=SOUNDEX(expr)
.
Added new VARIANCE(expr)
function returns
the variance of expr
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
temporary.
New options --reconnect
and
--disable-reconnect
for the
mysql
client, to reconnect automatically
or not if the connection is lost.
START SLAVE
(STOP
SLAVE
) no longer returns an error if the slave is
already started (stopped); it returns a warning instead.
SLAVE START
and SLAVE
STOP
are no longer accepted by the query parser;
use START SLAVE
and STOP
SLAVE
instead.
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.