O'Reilly logo

MySQL Reference Manual by Kaj Arno, David Axmark, Michael Widenius

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 1. General Information

The MySQL™ software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. MySQL is a trademark of MySQL AB.

The MySQL software has Dual Licensing, which means you can use the MySQL software free of charge under the GNU General Public License (http://www.gnu.org/licenses/). You can also purchase commercial MySQL licenses from MySQL AB if you do not wish to be bound by the terms of the GPL. See Section 1.4.

The MySQL web site (http://www.mysql.com/) provides the latest information about the MySQL software.

The following list describes some sections of particular interest in this manual:

  • For information about the company behind the MySQL Database Server, see Section 1.3.

  • For a discussion about the capabilities of the MySQL Database Server, see Section 1.2.2.

  • For installation instructions, see Chapter 2.

  • For tips on porting the MySQL Database Software to new architectures or operating systems, see Appendix D.

  • For information about upgrading from a Version 3.23 release, see Section 2.5.1.

  • For information about upgrading from a Version 3.22 release, see Section 2.5.2.

  • For a tutorial introduction to the MySQL Database Server, see Chapter 3.

  • For examples of SQL and benchmarking information, see the benchmarking directory (sql-bench in the distribution).

  • For a history of new features and bug fixes, see http://www.mysql.com/doc/N/e/News.html.

  • For a list of currently known bugs and misfeatures, see Section 1.7.5.

  • For future plans, see Section 1.8.

  • For a list of all the contributors to this project, see Appendix C.

Important: Reports of errors (often called bugs), as well as questions and comments, should be sent to the mailing list at . See Section The mysqlbug script should be used to generate bug reports. For source distributions, the mysqlbug script can be found in the scripts directory. For binary distributions, mysqlbug can be found in the bin directory. If you have found a sensitive security bug in MySQL server, you should send an email to .

About This Manual

This is the MySQL reference manual; it documents MySQL Version 4.0. Being a reference manual, it does not provide general instruction on SQL or relational database concepts.

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 Texinfo, plain text, Info, HTML, PostScript, 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.

If you have a hard time finding information in the manual, you can try our searchable PHP version 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 .

This manual is written and maintained by David Axmark, Michael (Monty) Widenius, Jeremy Cole, Arjen Lentz, and Paul DuBois. For other contributors, see Appendix C.

The copyright (2002) to this manual is owned by the Swedish company MySQL AB. See Section 1.4.2.

Conventions Used in This Manual

This manual uses certain typographical conventions:


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.”


Constant-width font with surrounding quotes is used for filenames and pathnames. Example: “The distribution is installed under the "/usr/local/" directory.”


Constant-width font with surrounding quotes is also used to indicate character sequences. Example: “To specify a wildcard, use the "%" character.”


Italic font is used for emphasis, like this.


Boldface font is used for access privilege names (for example, “do not grant the process privilege lightly”) and occasionally 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 command that you execute from the mysql client program:

shell> type a shell command here
mysql> type a mysql command here

Shell commands are shown using Bourne shell syntax. If you are using a csh-style shell, you may need to issue commands slightly 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, you would execute the sequence like this:

shell> setenv VARNAME value
shell> some_command

Often database, table, and column names must 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:


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 ]):


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}

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required