While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
SQL Data Types define the type of value that can be stored in a table column. For example, if we want a column to store only integer values, then we can define its data type as int
.
SQL data types can be broadly divided into following categories.
money
and smallmoney
data types but since it’s not supported by other popular database vendors, it’s not listed here.Let’s look into different categories of SQL data types in detail.
Datatype | From | To |
---|---|---|
bit | 0 | 1 |
tinyint | 0 | 255 |
smallint | -32,768 | 32,767 |
int | -2,147,483,648 | 2,147,483,647 |
bigint | -9,223,372,036, 854,775,808 | 9,223,372,036, 854,775,807 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^38 -1 |
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
Datatype | Description |
---|---|
DATE | Stores date in the format YYYY-MM-DD |
TIME | Stores time in the format HH:MI:SS |
DATETIME | Stores date and time information in the format YYYY-MM-DD HH:MI:SS |
TIMESTAMP | Stores number of seconds passed since the Unix epoch (‘1970-01-01 00:00:00’ UTC) |
YEAR | Stores year in 2 digits or 4 digit format. Range 1901 to 2155 in 4-digit format. Range 70 to 69, representing 1970 to 2069. |
Datatype | Description |
---|---|
CHAR | Fixed length with a maximum length of 8,000 characters |
VARCHAR | Variable-length storage with a maximum length of 8,000 characters |
VARCHAR(max) | Variable-length storage with provided max characters, not supported in MySQL |
TEXT | Variable-length storage with maximum size of 2GB data |
Note that all the above data types are for character stream, they should not be used with Unicode data.
Datatype | Description |
---|---|
NCHAR | Fixed length with maximum length of 4,000 characters |
NVARCHAR | Variable-length storage with a maximum length of 4,000 characters |
NVARCHAR(max) | Variable-length storage with provided max characters |
NTEXT | Variable-length storage with a maximum size of 1GB data |
Note that above data types are not supported in MySQL database.
Datatype | Description |
---|---|
BINARY | Fixed length with a maximum length of 8,000 bytes |
VARBINARY | Variable-length storage with a maximum length of 8,000 bytes |
VARBINARY(max) | Variable-length storage with provided max bytes |
IMAGE | Variable-length storage with maximum size of 2GB binary data |
Datatype | Description |
---|---|
CLOB | Character large objects that can hold up to 2GB |
BLOB | For binary large objects |
XML | for storing XML data |
JSON | for storing JSON data |
That’s all for a quick roundup on SQL data types.
Reference: Oracle Database Data Types, MySQL Data Types
Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up
Thank you, informative and to the point.
- Milt
Where is enum
- Shivansh
Thank you
- Bhargav
what is the data type for CSE5001
- ezhil
How to sort column VALUES in ASC order a column
- Gowthami
some columns like salary will not take int ,smallint data types .it takes only char and varchar why???
- prasanna lakshmi
Hi Pankaj, The tutorial contents and the graphical presentation are absolutely fantastic. The amount of efforts you have taken is highly appreciated and I would like to express my sincere gratitude. God Bless you dear !!
- Sylvester Marshall
Good Evening Shri.Pankaj Sir, very very useful & beneficial of your SQL lecture. Great thanks full for your Guide in SQL study materials. by Rajaram
- Rajaram
Hello everyone here I am new at sql How can i insert data into a table which contain both Character and letter (For eg A001) Which datatype should i use here. Please let me know
- Saurabh Rawat
Type BIT is not a numeric data type, its binary. Also it is no longer part of SQL standard. So better to remove it. Type YEAR does not exist in SQL standard. Also never use year numbers with only 2 digits (remember year2k bug?) You miss the type BOOLEAN which can have values true or false. It is fundamentally different from BIT. You miss the type INTERVAL of which there are 2 basic ones: INTERVAL SECONDS (can include fractions) and INTERVAL MONTHS. Type TEXT and NTEXT are old synonyms for CLOB, so use CLOB (or CHARACTER LARGE OBJECT). Type IMAGE is an old synonym for BLOB, so use BLOB (or BINARY LARGE OBJECT).
- Mr SQL