Table of Contents
This is the MySQL reference manual; it documents MySQL up to Version 5.0.0-alpha. Functional changes are always indicated with reference to the version, so this manual is also suitable if you are using an older version of the MySQL software (such as 3.23 or 4.0-production). There are also references for version 5.0 (development).
Being a reference manual, it does not provide general instruction on SQL or relational database concepts. It also will not teach you how to use your operating system or command line interpreter.
As the MySQL Database Software is under constant development, the manual is also updated frequently. The most recent version of this manual is available at http://www.mysql.com/documentation/ in many different formats, including HTML, PDF, and Windows HLP versions.
The primary document is the Texinfo file. The HTML version is produced automatically using a modified version of texi2html. The plain text and Info versions are produced with makeinfo. The PostScript version is produced using texi2dvi and dvips. The PDF version is produced with pdftex.
The index can assist you in finding information in the manual. For online use, you can try the searchable version of the manual available at http://www.mysql.com/doc/.
If you have any suggestions concerning additions or corrections to this manual, please send them to the documentation team at <docs@mysql.com>.
This manual was initially written by David Axmark and Michael (Monty) Widenius. It is now maintained by the MySQL Documentation Team, consisting of Arjen Lentz, Paul DuBois and Stefan Hinz. For the many other contributors, see Credits.
The copyright (2004) to this manual is owned by the Swedish company MySQL AB. See Copyright.
This manual uses certain typographical conventions:
constant | Constant-width font is used for command names and options; SQL statements; database, table, and column names; C and Perl code; and environment variables. Example: ``To see how mysqladmin works, invoke it with the --help option.'' |
filename | Constant-width font with surrounding quotes is used for filenames and pathnames. Example: ``The distribution is installed under the /usr/local/ directory.'' |
c | Constant-width font with surrounding quotes is also used to indicate character sequences. Example: ``To specify a wildcard, use the % character.'' |
italic | Italic font is used for emphasis, like this. |
boldface | Boldface font is used in table headings and to convey especially strong emphasis. |
When commands are shown that are meant to be executed by a particular program, the program is indicated by a prompt shown before the command. For example, shell> indicates a command that you execute from your login shell, and mysql> indicates a statement that you execute from the mysql client program:
shell> type a shell command here mysql> type a mysql statement here
The ``shell'' is your command interpreter. On Unix, this is typically a program such as sh or csh. On Windows, the equivalent is command.com or cmd.exe, typically run in a Windows console.
Note that to enter a command or statement from an example, you do not type the prompt shown in the example.
Commands to set shell variables are shown using Bourne shell syntax. If you are using csh or tcsh, you will need to issue commands somewhat differently. For example, the sequence to set an environment variable and run a command looks like this in Bourne shell syntax:
shell> VARNAME=value some_command
For csh or tcsh, you would execute the sequence like this:
shell> setenv VARNAME value shell> some_command
Database, table, and column names must often be substituted into commands. To indicate that such substitution is necessary, this manual uses db_name, tbl_name, and col_name. For example, you might see a statement like this:
mysql> SELECT col_name FROM db_name.tbl_name;
This means that if you were to enter a similar statement, you would supply your own database, table, and column names, perhaps like this:
mysql> SELECT author_name FROM biblio_db.author_list;
SQL keywords are not case sensitive and may be written in uppercase or lowercase. This manual uses uppercase.
In syntax descriptions, square brackets ([ and ]) are used to indicate optional words or clauses. For example, in the following statement, IF EXISTS is optional:
DROP TABLE [IF EXISTS] tbl_name
When a syntax element consists of a number of alternatives, the alternatives are separated by vertical bars (|). When one member from a set of choices may be chosen, the alternatives are listed within square brackets ([ and ]):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
When one member from a set of choices must be chosen, the alternatives are listed within braces ({ and }):
{DESCRIBE | DESC} tbl_name {col_name | wild}
An ellipsis (...) indicates the omission of a section of a statement, typically to provide a shorter version of more complex syntax. For example, INSERT ... SELECT is shorthand for the form of INSERT statement that is followed by a SELECT statement.
An ellipsis can also indicate that the preceding syntax element of a statement may be repeated. In the following example, multiple reset_option values may be given, with each of those after the first preceded by commas:
RESET reset_option [,reset_option] ...