A2-03-03.DDL-MySQL Data Types

时间:2022-02-18 16:27:02

转载自:http://www.mysqltutorial.org/mysql-data-types.aspx

MySQL Data Types

 

Summaryin this tutorial, you will learn about MySQL data types and how to use them effectively in designing database in MySQL.

A database table contains multiple columns with specific data types such as numeric or string. MySQL provides more data types other than just numeric or string. Each data type in MySQL can be determined by the following characteristics:

  • The kind of values it represents.
  • The space that takes up and whether the values is a fixed-length or variable length.
  • The values of the data type can be indexed or not.
  • How MySQL compares the values of a specific data type.

A2-03-03.DDL-MySQL Data Types

Download MySQL Data Types Overview

MySQL numeric data types

In MySQL, you can find all SQL standard numeric types including exact number data type and approximate numeric data types including integer, fixed-point and floating point. In addition, MySQL also hasBIT data type for storing bit values. Numeric types can be signed or unsigned except for the BIT type.

The following table shows the summary of numeric types in MySQL:

Numeric Types Description
 TINYINT A very small integer
 SMALLINT A small integer
 MEDIUMINT A medium-sized integer
 INT A standard integer
 BIGINT A large integer
 DECIMAL A fixed-point number
 FLOAT A single-precision floating point number
 DOUBLE A double-precision floating point number
 BIT A bit field

MySQL Boolean data type

MySQL does not have the built-in  BOOLEANor BOOL data type. To represent Boolean values, MySQL uses the smallest integer type which isTINYINT(1). In other words, BOOLEAN and BOOL are synonyms for TINYINT(1).

MySQL String data types

In MySQL, a string can hold anything from plain text to binary data such as images or files. Strings can be compared and searched based on pattern matching by using the LIKE operator, regular expression, and full-text search.

The following table shows the string data types in MySQL:

String Types Description
 CHAR A fixed-length nonbinary (character) string
 VARCHAR A variable-length non-binary string
 BINARY A fixed-length binary string
 VARBINARY A variable-length binary string
 TINYBLOB A very small BLOB (binary large object)
 BLOB A small BLOB
 MEDIUMBLOB A medium-sized BLOB
 LONGBLOB A large BLOB
 TINYTEXT A very small non-binary string
 TEXT A small non-binary string
 MEDIUMTEXT A medium-sized non-binary string
 LONGTEXT A large non-binary string
 ENUM An enumeration; each column value may be assigned one enumeration member
 SET A set; each column value may be assigned zero or more SET members

MySQL date and time data types

MySQL provides types for date and time as well as the combination of date and time. In addition, MySQL supports timestamp data type for tracking the changes in a row of a table. If you just want to store the year without date and month, you can use the YEAR data type.

The following table illustrates the MySQL date and time data types:

Date and Time Types Description
 DATE A date value in CCYY-MM-DD format
 TIME A time value in hh:mm:ss format
 DATETIME A date and time value inCCYY-MM-DD hh:mm:ssformat
 TIMESTAMP A timestamp value in CCYY-MM-DD hh:mm:ss format
 YEAR A year value in CCYY or YY format

MySQL spatial data types

MySQL supports many spatial data types that contain various kinds of geometrical and geographical values as shown in the following table:

Spatial Data Types Description
 GEOMETRY A spatial value of any type
 POINT A point (a pair of X-Y coordinates)
 LINESTRING A curve (one or more POINT values)
 POLYGON A polygon
 GEOMETRYCOLLECTION A collection of GEOMETRYvalues
 MULTILINESTRING A collection of LINESTRINGvalues
 MULTIPOINT A collection of POINTvalues
 MULTIPOLYGON A collection of POLYGONvalues

JSON data type

MySQL supported a native JSON data type since version 5.7.8 that allows you to store and manage JSON documents more efficiently. The native JSON data type provides automatic validation of JSON documents and optimal storage format.

In this tutorial, you have learned various MySQL data types that help you determine which data type you should use for columns when you create tables.