The nature of the data that can be recorded in a database table is represented by data types. For example, if we wish to store a string type of data in a specific column of a table, we must specify a string data type for that column.
For each database, data types are divided into three categories.
A list of data types used in MySQL database. This is based on MySQL 8.0.
MySQL String Data Types
| CHAR(Size) | It's used to provide a string of a specific length that can include numbers, letters, and special characters. Its size might range from 0 to 255 characters. The default value is 1. |
| VARCHAR(Size) | It specifies a variable-length string that can include numbers, letters, and special characters. It can have a length of 0 to 65535 characters. |
| BINARY(Size) | It is equal to CHAR() but stores binary byte strings. Its size parameter specifies the column length in the bytes. Default is 1. |
| VARBINARY(Size) | It is equal to VARCHAR() but stores binary byte strings. Its size parameter specifies the maximum column length in bytes. |
| TEXT(Size) | It holds a string that can contain a maximum length of 255 characters. |
| TINYTEXT | It holds a string with a maximum length of 255 characters. |
| MEDIUMTEXT | It holds a string with a maximum length of 16,777,215. |
| LONGTEXT | It holds a string with a maximum length of 4,294,967,295 characters. |
| ENUM(val1, val2, val3,...) | It is used when a string object having only one value, chosen from a list of possible values. It contains 65535 values in an ENUM list. If you insert a value that is not in the list, a blank value will be inserted. |
| SET( val1,val2,val3,....) | It is used to specify a string that can have 0 or more values, chosen from a list of possible values. You can list up to 64 values at one time in a SET list. |
| BLOB(size) | It is used for BLOBs (Binary Large Objects). It can hold up to 65,535 bytes. |
MySQL Numeric Data Types
| BIT(Size) | It is used for a bit-value type. The number of bits per value is specified in size. Its size can be 1 to 64. The default value is 1. |
| INT(size) | It is used for the integer value. Its signed range varies from -2147483648 to 2147483647 and unsigned range varies from 0 to 4294967295. The size parameter specifies the max display width that is 255. |
| INTEGER(size) | It is equal to INT(size). |
| FLOAT(size, d) | It is used to specify a floating point number. Its size parameter specifies the total number of digits. The number of digits after the decimal point is specified by d parameter. |
| FLOAT(p) | It is used to specify a floating point number. MySQL used p parameter to determine whether to use FLOAT or DOUBLE. If p is between 0 to24, the data type becomes FLOAT (). If p is from 25 to 53, the data type becomes DOUBLE(). |
| DOUBLE(size, d) | It is a normal size floating point number. Its size parameter specifies the total number of digits. The number of digits after the decimal is specified by d parameter. |
| DECIMAL(size, d) | It is used to specify a fixed point number. Its size parameter specifies the total number of digits. The number of digits after the decimal parameter is specified by d parameter. The maximum value for the size is 65, and the default value is 10. The maximum value for d is 30, and the default value is 0. |
| DEC(size, d) | It is equal to DECIMAL(size, d). |
| BOOL | It is used to specify Boolean values true and false. Zero is considered as false, and nonzero values are considered as true. |
MySQL Date and Time Data Types
| DATE | It is used to specify date format YYYY-MM-DD. Its supported range is from '1000-01-01' to '9999-12-31'. |
| DATETIME(fsp) | It is used to specify date and time combination. Its format is YYYY-MM-DD hh:mm:ss. Its supported range is from '1000-01-01 00:00:00' to 9999-12-31 23:59:59'. |
| TIMESTAMP(fsp) | It is used to specify the timestamp. Its value is stored as the number of seconds since the Unix epoch('1970-01-01 00:00:00' UTC). Its format is YYYY-MM-DD hh:mm:ss. Its supported range is from '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC. |
| TIME(fsp) | It is used to specify the time format. Its format is hh:mm:ss. Its supported range is from '-838:59:59' to '838:59:59' |
| YEAR | It is used to specify a year in four-digit format. Values allowed in four digit format from 1901 to 2155, and 0000. |
SQL Server String Data Type
| char(n) | It is a fixed width character string data type. Its size can be up to 8000 characters. |
| varchar(n) | It is a variable width character string data type. Its size can be up to 8000 characters. |
| varchar(max) | It is a variable width character string data types. Its size can be up to 1,073,741,824 characters. |
| text | It is a variable width character string data type. Its size can be up to 2GB of text data. |
| nchar | It is a fixed width Unicode string data type. Its size can be up to 4000 characters. |
| nvarchar | It is a variable width Unicode string data type. Its size can be up to 4000 characters. |
| ntext | It is a variable width Unicode string data type. Its size can be up to 2GB of text data. |
| binary(n) | It is a fixed width Binary string data type. Its size can be up to 8000 bytes. |
| varbinary | It is a variable width Binary string data type. Its size can be up to 8000 bytes. |
| image | It is also a variable width Binary string data type. Its size can be up to 2GB. |
SQL Server Numeric Data Types
| bit | It is an integer that can be 0, 1 or null. |
| tinyint | It allows whole numbers from 0 to 255. |
| Smallint | It allows whole numbers between -32,768 and 32,767. |
| Int | It allows whole numbers between -2,147,483,648 and 2,147,483,647. |
| bigint | It allows whole numbers between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807. |
| float(n) | It is used to specify floating precision number data from -1.79E+308 to 1.79E+308. The n parameter indicates whether the field should hold the 4 or 8 bytes. Default value of n is 53. |
| real | It is a floating precision number data from -3.40E+38 to 3.40E+38. |
| money | It is used to specify monetary data from -922,337,233,685,477.5808 to 922,337,203,685,477.5807. |
SQL Server Date and Time Data Type
| datetime | It is used to specify date and time combination. It supports range from January 1, 1753, to December 31, 9999 with an accuracy of 3.33 milliseconds. |
| datetime2 | It is used to specify date and time combination. It supports range from January 1, 0001 to December 31, 9999 with an accuracy of 100 nanoseconds |
| date | It is used to store date only. It supports range from January 1, 0001 to December 31, 9999 |
| time | It stores time only to an accuracy of 100 nanoseconds |
| timestamp | It stores a unique number when a new row gets created or modified. The time stamp value is based upon an internal clock and does not correspond to real time. Each table may contain only one-time stamp variable. |
SQL Server Other Data Types
| Sql_variant | It is used for various data types except for text, timestamp, and ntext. It stores up to 8000 bytes of data. |
| XML | It stores XML formatted data. Maximum 2GB. |
| cursor | It stores a reference to a cursor used for database operations. |
| table | It stores result set for later processing. |
| uniqueidentifier | It stores GUID (Globally unique identifier). |
Oracle String data types
| CHAR(size) | It is used to store character data within the predefined length. It can be stored up to 2000 bytes. |
| NCHAR(size) | It is used to store national character data within the predefined length. It can be stored up to 2000 bytes. |
| VARCHAR2(size) | It is used to store variable string data within the predefined length. It can be stored up to 4000 byte. |
| VARCHAR(SIZE) | It is the same as VARCHAR2(size). You can also use VARCHAR(size), but it is suggested to use VARCHAR2(size) |
| NVARCHAR2(size) | It is used to store Unicode string data within the predefined length. We have to must specify the size of NVARCHAR2 data type. It can be stored up to 4000 bytes. |
Oracle Numeric Data Types Oracle Large Object Data Types (LOB Types)
| NUMBER(p, s) | It contains precision p and scale s. The precision p can range from 1 to 38, and the scale s can range from -84 to 127. |
| FLOAT(p) | It is a subtype of the NUMBER data type. The precision p can range from 1 to 126. |
| BINARY_FLOAT | It is used for binary precision( 32-bit). It requires 5 bytes, including length byte. |
| BINARY_DOUBLE | It is used for double binary precision (64-bit). It requires 9 bytes, including length byte. |
Oracle Date and Time Data Types
| DATE | It is used to store a valid date-time format with a fixed length. Its range varies from January 1, 4712 BC to December 31, 9999 AD. |
| TIMESTAMP | It is used to store the valid date in YYYY-MM-DD with time hh:mm:ss format. |
Oracle Large Object Data Types (LOB Types)
| BLOB | It is used to specify unstructured binary data. Its range goes up to 232-1 bytes or 4 GB. |
| BFILE | It is used to store binary data in an external file. Its range goes up to 232-1 bytes or 4 GB. |
| CLOB | It is used for single-byte character data. Its range goes up to 232-1 bytes or 4 GB. |
| NCLOB | It is used to specify single byte or fixed length multibyte national character set (NCHAR) data. Its range is up to 232-1 bytes or 4 GB. |
| RAW(size) | It is used to specify variable length raw binary data. Its range is up to 2000 bytes per row. Its maximum size must be specified. |
| LONG RAW | It is used to specify variable length raw binary data. Its range up to 231-1 bytes or 2 GB, per row. |