TL;DR – Different database management systems use different server data types, so it's vital to always use relevant ones.
SQL Server Data Types
SQL Server String Data Types
| Type | Description | Storage | 
|---|---|---|
| char(n) | A character string of a defined width | Up to 8,000 characters | 
| varchar(n) | A variable string of a defined width | Up to 8,000 characters. | 
| varchar(max) | A variable string of a defined width | Up to 1,073,741,824 characters | 
| text | A variable string of a defined width | Up to 2GB data of text | 
| nchar | A Unicode string of a defined width | Up to 4,000 chars | 
| nvarchar | A Unicode string of a variable width | Up to 4,000 chars | 
| nvarchar(max) | A Unicode string of a variable width | Up to 536,870,912 chars | 
| ntext | A Unicode string of a variable width | Up to 2GB text data | 
| binary(n) | A binary string of a defined width | Up to 8,000 bytes | 
| varbinary | A binary string of a variable width | Up to 8,000 bytes | 
| varbinary(max) | A binary string of a variable width | Up to 2 GB | 
| image | A binary string of a variable width | Up to 2 GB | 
SQL Server Number Data Types
| Type | Description | Storage | 
|---|---|---|
| bit | Allows to use 0.1 and NULL. | |
| tinyint | Allows to use numbers in the range of 0 to 255 | 1 byte | 
| smallint | Allows to use numbers in the range of -32,768 to 32,767 | 2 bytes | 
| int | Allows to use numbers in the range of -2,147,483,648 to 2,147,483,647 | 4 bytes | 
| bigint | Allows to use numbers in the range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 8 bytes | 
| decimal(p,s) | Defines scale and precision numbers, allows to use numbers in the range of -10^38 to 10^38 –1 | 5–17 bytes | 
| numeric(p,s) | Defines scale and precision numbers, allows to use numbers in the range of -10^38 +1 to 10^38 –1. The total amount of containable digits is defined in the p parameter which needs to have a value in the range of 1 to 38. To define the amount of digits to be contained in the right side, you define the s parameter. It has to have a value in the range from 0 to p. | 5-17 bytes | 
| smallmoney | Fiscal data in the range of -214,748,3648 to 214,748,3647 | 4 bytes | 
| money | Fiscal data in the range of -922,337,203,685,477.5808 to 922,337,203,685,477.5807 | 8 bytes | 
| float(n) | Data in the range of -1.79E + 308 to 1.79E + 308 of floating precision numbers. Define the data record field byte length (4 or 8) in the n parameter. | 4 or 8 bytes | 
| real | Data in the range of -3.40E + 38 to 3.40E + 38 of floating precision numbers. | 4 bytes | 
SQL Server Date Data Types
| Type | Description | Storage | 
|---|---|---|
| datetime | Has the range of January 1, 1753 to December 31, 9999 and the precision of 3.33 ms | 8 bytes | 
| datetime2 | Has the range of January 1, 0001 to December 31, 9999 and the precision of 100 ns | 6-8 bytes | 
| smalldatetime | Has the range of January 1, 1900 to June 6, 2079 and the precision of 1 minute | 4 bytes | 
| date | Has the range of January 1, 0001 to December 31, 9999. Only good for containing a date | 3 bytes | 
| time | Has the range of January 1, 0001 to December 31, 9999 and the precision of 100 ns. Only good for containing a date | 3-5 bytes | 
| datetimeoffset | A duplicate of datetime2 with an offset of a time zone. | 8-10 bytes | 
| timestamp | Contains a number that is unique and refreshes with every new row. It works around an internal clock (not real time). Use limited to a single timestamp per table | |
Other SQL Server Data Types
| Type | Description | 
|---|---|
| sql_variant | Contains a maximum of 8,000 bytes of different data types apart from timestamp, ntext and text | 
| uniqueidentifier | Contains a GUID | 
| xml | Contains up to 2GB of data formatted as XML | 
| cursor | Contains references to the database operation cursor | 
| table | Contains a set of results used for later processing | 
MySQL Data Types
MySQL Text Data Types
| Type | Description | Storage | 
|---|---|---|
| CHAR(size) | Contains a string with a defined length (numbers, special characters, letters), defined using parentheses | Up to 255 characters | 
| VARCHAR(size) | Contains a string with a defined length (numbers, special characters, letters), defined using parentheses | Up to 255 characters (if more, will be changed to the text type) | 
| TINYTEXT | Contains a string | Up to 255 characters | 
| TEXT | Contains a string | Up to 65,535 characters | 
| BLOB | Contains data | Up to 65,535 bytes | 
| MEDIUMTEXT | Contains a string | Up to 16,777,215 characters | 
| MEDIUMBLOB | Contains data | Up to 16,777,215 bytes | 
| LONGTEXT | Contains a string | Up to 4,294,967,295 characters | 
| LONGBLOB | Contains data | Up to 4,294,967,295 bytes | 
| ENUM(x,y,z,etc.) | Allows you to insert an available value list (if no value is defined, a blank one is created) | Up to 65,535 bytes | 
| SET | A list with various choices of storage possibilities | Up to 64 items | 
MySQL Number Data Types
| Type | Description | 
|---|---|
| TINYINT(size) | Can contain numbers from -128 to 127 or 0 to 255 UNSIGNED. The length is defined using parentheses. | 
| SMALLINT(size) | Can contain numbers from -32768 to 32767 or 0 to 65535 UNSIGNED. The length is defined using parentheses. | 
| MEDIUMINT(size) | Can contain numbers from -8388608 to 8388607 or 0 to 16777215 UNSIGNED. The length is defined using parentheses. | 
| INT(size) | Can contain numbers from -2147483648 to 2147483647 or 0 to 4294967295 UNSIGNED. The length is defined using parentheses. | 
| BIGINT(size) | Can contain numbers from -9223372036854775808 to 9223372036854775807 or 0 to 18446744073709551615 UNSIGNED. The length is defined using parentheses. | 
| FLOAT(size,d) | Contains a number with a floating decimal point. The length is defined using the parameter size d. | 
| DOUBLE(size,d) | Contains a big number with a floating decimal point. The length is defined using the parameter size d. | 
| DECIMAL(size,d) | Contains a big number with a floating decimal point. Used for fixed decimal points. The length is defined using the parameter size d. The above text type is contained as string. | 
Other MySQL Data Types
| Type | Description | Format | Length range | 
|---|---|---|---|
| DATE() | A date | YYYY-MM-DD | '1000-01-01' to '9999-12-31' | 
| DATETIME() | Date/Time | YYYY-MM-DD HH:MI:SS | '1000-01-01 00:00:00' to '9999-12-31 23:59:59' | 
| TIMESTAMP() | A timestamp wuth its values contained as seconds from the start of Unix ('1970-01-01 00:00:00' UTC). | YYYY-MM-DD HH:MI:SS | '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC | 
| TIME() | A time | HH:MI:SS | '-838:59:59' to '838:59:59' | 
| YEAR() | Two or four digit format year. Range in four digit: 1901 to 2155. In two digit: 70 to 69 (1970 to 2069) | ||
Microsoft Access Data Types
| Type | Description | Storage | 
|---|---|---|
| Text | Needed to combine number with text | Up to 255 characters | 
| Memo | Needed to work with a text of a large volume. Can be searched through but not sorted | Up to 65,536 characters | 
| Byte | Allows to use a number between 0 and 255 | 1 byte | 
| Integer | Allows to use a number from -32,768 to 32,767 | 2 bytes | 
| Long | Allows to use a number from -2,147,483,648 to 2,147,483,647 | 4 bytes | 
| Single | Works with most decimals. Singular floating-point precision | 4 bytes | 
| Double | Works with most decimals. Dual floating-point precision | 8 bytes | 
| Currency | Needed to choose the country's currency. A 15 digit container with 4 decimal locations. | 8 bytes | 
| AutoNumber | Assigns a unique number to each data record | 4 bytes | 
| Date/Time | Needed when working with time and date | 8 bytes | 
| Yes/No | Used for logical data record fields. True or False statements are used. No NULL values are allowed | 1 bit | 
| Ole Object | Used to contain audio, pictures, BLOBs and video | up to 1GB | 
| Hyperlink | Used to link web pages and files | |
| Lookup Wizard | Used to look up a drop-down option list | 4 bytes |