## 1.1 About This Manual

[]()[]()

 This is the Reference Manual for the MySQL Database System, version 8.0, through release 8.0.28. Differences between minor versions of MySQL 8.0 are noted in the present text with reference to release numbers (8.0.*`x`*). For license information, see the [Legal Notices](preface.html#legalnotice).

 This manual is not intended for use with older versions of the MySQL software due to the many functional and other differences between MySQL 8.0 and previous versions. If you are using an earlier release of the MySQL software, please refer to the appropriate manual. For example, [*MySQL 5.7 Reference Manual*](https://dev.mysql.com/doc/refman/5.7/en/) covers the 5.7 series of MySQL software releases.

 Because this manual serves as a reference, it does not provide general instruction on SQL or relational database concepts. It also does not teach you how to use your operating system or command-line interpreter.

 The MySQL Database Software is under constant development, and the Reference Manual is updated frequently as well. The most recent version of the manual is available online in searchable form at [https://dev.mysql.com/doc/](https://dev.mysql.com/doc/). Other formats also are available there, including downloadable HTML and PDF versions.

[]()

 The source code for MySQL itself contains internal documentation written using Doxygen. The generated Doxygen content is available [https://dev.mysql.com/doc/index-other.html](https://dev.mysql.com/doc/index-other.html). It is also possible to generate this content locally from a MySQL source distribution using the instructions at [Section 2.9.10, “Generating MySQL Doxygen Documentation Content”](source-installation-doxygen.html).

 If you have questions about using MySQL, join the [MySQL Community Slack](https://mysqlcommunity.slack.com/), or ask in our forums; see [MySQL Community Support at the MySQL Forums](information-sources.html#forums). If you have suggestions concerning additions or corrections to the manual itself, please send them to the [http://www.mysql.com/company/contact/](http://www.mysql.com/company/contact/).

### Typographical and Syntax Conventions

 This manual uses certain typographical conventions:

[]()[]()[]()[]()[]()[]()

* `Text in this style` is used for SQL statements; database, table, and column names; program listings and source code; and environment variables. Example: “To reload the grant tables, use the [`FLUSH PRIVILEGES`](flush.html#flush-privileges) statement.”

* **`Text in this style`** indicates input that you type in examples.

* **Text in this style** indicates the names of executable programs and scripts, examples being [**mysql**](mysql.html) (the MySQL command-line client program) and [**mysqld**](mysqld.html) (the MySQL server executable).

* *`Text in this style`* is used for variable input for which you should substitute a value of your own choosing.

* *Text in this style* is used for emphasis.

* **Text in this style** is used in table headings and to convey especially strong emphasis.

* `Text in this style` is used to indicate a program option that affects how the program is executed, or that supplies information that is needed for the program to function in a certain way. *Example*: “The `--host` option (short form `-h`) tells the [**mysql**](mysql.html) client program the hostname or IP address of the MySQL server that it should connect to”.

* File names and directory names are written like this: “The global `my.cnf` file is located in the `/etc` directory.”

* Character sequences are written like this: “To specify a wildcard, use the ‘`%`’ character.”

 When commands or statements are prefixed by a prompt, we use these:

```
$> type a command here
#> type a command as root here
C:\> type a command here (Windows only)
mysql> type a mysql statement here
```

 Commands are issued in your command interpreter. On Unix, this is typically a program such as **sh**, **csh**, or **bash**. On Windows, the equivalent program is **command.com** or **cmd.exe**, typically run in a console window. Statements prefixed by `mysql` are issued in the [**mysql**](mysql.html) command-line client.

Note

 When you enter a command or statement shown in an example, do not type the prompt shown in the example.

 In some areas different systems may be distinguished from each other to show that commands should be executed in two different environments. For example, while working with replication the commands might be prefixed with `source` and `replica`:

```
source> type a mysql statement on the replication source here
replica> type a mysql statement on the replica here
```

 Database, table, and column names must often be substituted into statements. 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 any lettercase. This manual uses uppercase.

 In syntax descriptions, square brackets (“`[`” and “`]`”) 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, [`SELECT ... INTO OUTFILE`](select.html) is shorthand for the form of [`SELECT`](select.html) statement that has an `INTO OUTFILE` clause following other parts of the 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] ...
```

 Commands for setting shell variables are shown using Bourne shell syntax. For example, the sequence to set the `CC` environment variable and run the **configure** command looks like this in Bourne shell syntax:

```
$> CC=gcc ./configure
```

[]()[]()

 If you are using **csh** or **tcsh**, you must issue commands somewhat differently:

```
$> setenv CC gcc
$> ./configure
```

### Manual Authorship

[]()

 The Reference Manual source files are written in DocBook XML format. The HTML version and other formats are produced automatically, primarily using the DocBook XSL stylesheets. For information about DocBook, see [http://docbook.org/](http://docbook.org/)

 This manual was originally written by David Axmark and Michael “Monty” Widenius. It is maintained by the MySQL Documentation Team, consisting of Chris Cole, Margaret Fisher, Edward Gilmore, Stefan Hinz, Philip Olson, Daniel Price, Daniel So, and Jon Stephens.

