Skip to content

Commit

Permalink
Merge pull request #30 from ARFP/develop
Browse files Browse the repository at this point in the history
MySQL DataTypes CheatSheet (#29)
  • Loading branch information
mdevoldere authored Dec 3, 2024
2 parents 9a907ac + 6b77f75 commit e739e34
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions _posts/databases/2024-12-03-sql-datatypes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: "MySQL: Data Types"
date: 2024-12-03 06:30:00 +0000
categories: databases
tags: bdd databases sql
author: mdevoldere
---

## String Datatypes

The following are the **String Datatypes** in MySQL:

| Data Type Syntax | Maximum Size | Explanation |
| ------------------ | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CHAR(size)` | Maximum size of 255 characters. | Where **size** is the number of characters to store. Fixed-length strings. Space padded on right to equal **size** characters. |
| `VARCHAR(size)` | Maximum size of 255 characters. | Where **size** is the number of characters to store. Variable-length string. |
| `TINYTEXT(size)` | Maximum size of 255 characters. | Where **size** is the number of characters to store. |
| `TEXT(size)` | Maximum size of 65,535 characters. | Where **size** is the number of characters to store. |
| `MEDIUMTEXT(size)` | Maximum size of 16,777,215 characters. | Where **size** is the number of characters to store. |
| `LONGTEXT(size)` | Maximum size of 4GB or 4,294,967,295 characters. | Where **size** is the number of characters to store. |
| `BINARY(size)` | Maximum size of 255 characters. | Where **size** is the number of binary characters to store. Fixed-length strings. Space padded on right to equal **size** characters.<br>(Introduced in MySQL 4.1.2) |
| `VARBINARY(size)` | Maximum size of 255 characters. | Where **size** is the number of characters to store. Variable-length string.<br>(Introduced in MySQL 4.1.2) |


## Numeric Datatypes

The following are the **Numeric Datatypes** in MySQL:

| Data Type Syntax | Maximum Size | Explanation |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BIT` | Very small integer value that is equivalent to `TINYINT(1)`. Signed values range from -128 to 127. Unsigned values range from 0 to 255. |
| `TINYINT(m)` | Very small integer value. Signed values range from -128 to 127. Unsigned values range from 0 to 255. |
| `SMALLINT(m)` | Small integer value. Signed values range from -32768 to 32767. Unsigned values range from 0 to 65535. |
| `MEDIUMINT(m)` | Medium integer value. Signed values range from -8388608 to 8388607. Unsigned values range from 0 to 16777215. |
| `INT(m)` | Standard integer value. Signed values range from -2147483648 to 2147483647. Unsigned values range from 0 to 4294967295. |
| `BIGINT(m)` | Big integer value. Signed values range from -9223372036854775808 to 1. Unsigned values range from 0 to 18446744073709551615. |
| `DECIMAL(m,d)` | Unpacked fixed point number. `m` defaults to 10, if not specified. `d` defaults to 0, if not specified. | Where `m` is the total digits and `d` is the number ofdigits after the decimal. |
| `FLOAT(m,d)` | Single precision floating point number. | Where `m` is the total digits and `d` is the number ofdigits after the decimal. |
| `DOUBLE(m,d)` | Double precision floating point number. | Where `m` is the total digits and `d` is the number ofdigits after the decimal. |
| `BOOLEAN` | Synonym for `TINYINT(1)` | Treated as a boolean data type where a value of 0 is considered to be `FALSE` and any other value isconsidered to be `TRUE`. |


## Date/Time Datatypes

The following are the **Date/Time Datatypes** in MySQL:

| Data Type Syntax | Maximum Size | Explanation |
| ---------------- | ------------------------------------------------------------------------- | ----------------------------------- |
| `DATE` | Values range from '1000-01-01' to '9999-12-31'. | Displayed as 'YYYY-MM-DD'. |
| `DATETIME` | Values range from '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. | Displayed as 'YYYY-MM-DD HH:MM:SS'. |
| `TIMESTAMP(m)` | Values range from '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. | Displayed as 'YYYY-MM-DD HH:MM:SS'. |
| `TIME` | Values range from '-838:59:59' to '838:59:59'. | Displayed as 'HH:MM:SS'. |
| `YEAR[(2\|4)]` | Year value as 2 digits or 4 digits. | Default is 4 digits. |


## Large Object (LOB) Datatypes

The following are the **LOB Datatypes** in MySQL:

| Data Type Syntax | Maximum Size | Explanation |
| ---------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| `TINYBLOB` | Maximum size of 255 bytes. |
| `BLOB(size)` | Maximum size of 65,535 bytes. | Where size is the number of characters to store.<br>*(size is optional and was introduced in MySQL 4.1)* |
| `MEDIUMBLOB` | Maximum size of 16,777,215 bytes. |
| `LONGTEXT` | Maximum size of 4GB or 4,294,967,295 characters. |

0 comments on commit e739e34

Please sign in to comment.