Updated April 8, 2023
Introduction to SQL Server Data Types
Before understanding SQL Server data types we should understand what is Sql server is and why we are going to use sql server. The Word SQL stands for Structured Query Language. As we all know SQL Server is the relational database management system and it is developed by Microsoft. It is mainly used for storing and retrieving the data or we can say maintaining the data. We can do all types of operations to maintain the database. we can say that the SQL server is the database server that helps in implementing the structured query language. In simple words, we can say that data types tell the compiler what type of data is used in the programming.
SQL Server Data Types
In SQL Server there are different types of data types.
1. String Data Types
- CHAR(size): It is having a fixed-length character string with a maximum of 8000 characters.
- TEXT: Text is a variable width character string with a maximum of 2 GB of text data.
- NCHAR(size): It is fixed-length Unicode data with a maximum of 4000 characters
- VARCHAR(size): It is having a maximum of 8000 or more characters and it is a variable width character string
- NVARCHAR(max): It is having a maximum of 4000 or more characters and it is a variable-width Unicode string.
- BINARY(size): It has 8000 characters and it is fixed with a binary string
- VARBINARY(size) or VARBINARY(max): It is a variable-width binary string and with a maximum size of 2GB.
2. Numeric Data Types
- BIT: Integer that can be 0, 1, or NULL.
- Int: It allows whole numbers in the range of -2,147,483,648 and 2,147,483,647.
- Smallint: It allows whole numbers in the range of -32,768 and 32,767.
- Bigint: It allows whole numbers with a range -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807
- Tinyint: It allows whole numbers from 0 to 255.
- Decimal(p,s): Fixed precision and scale numbers. If it is not specifying anything, P defaults to 18 and S defaults to 0.
- smallmoney: Monetary data from -214,748.3648 to 214,748.3647
- float(n): Floating point number, if n not specified it will default to 53.
- REAL: Floating precision number and it is a lost equal to float.
3. Date and Time Data Types
- DATE: Date Values range from ‘0001-01-01’ to ‘9999-12-31’.The date will be displayed as ‘YYYY-MM-DD’.
- TIME: It Stores a time only to an accuracy of 100 nanoseconds. Time values range from ’00:00:00.0000000′ to ’23:59:59.9999999′
- Datetime: The date values ranges from ‘1753-01-01 00:00:00’ to ‘9999-12-31 23:59:59′ and Time values ranges from ’00:00:00′ to ’23:59:59:997’ with an accuracy of 3.33 milliseconds.
- Datetime2: Now below you can see the difference between Datetime and Datetime2. It ranges from January 1, 0001 to December 31, 9999 with an accuracy of 100 nanoseconds.
- Datetimeoffset: It is same as datetime2 and in addition to this it includes time zone offset.
Other Data Types
- xml: It stores xml formatted data with a maximum size of 2GB.
- cursor: It is used in database operations and it stores a reference to a cursor.
- sql_variant: It stores various data types of data with a maximum size of 8000 bytes.
Examples of SQL Server Data Types
Given below are the examples of SQL Server Data Types:
CREATE TABLE Employees ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], column3 datatype [ NULL | NOT NULL ], column4 datatype [ NULL | NOT NULL ], ... );
All the columns in a table must have a data type. It should be defined as either null or not null and if we are placing value in left blank the database automatically assumes default as Null.
CREATE TABLE Table_Name ( Custimer_id INT NOT NULL, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) CTC MONEY );
- In an example, the first column is called Customer id which is created as an INT data type and it will not be having NULL values.
- The second column is the first_name and it is VARCHAR datatype and it should not contain NULL values.
- The third column is the last_name which is a VARCHAR data type with a maximum character length of 50 but it can contain Null values.
- The fourth column is called salary which is a MONEY data type and it can contain NULL values.
Select ISDATE('2019-09-25') As P, ISDATE('2019-09-25 14:49') As Q, ISDATE('2019-09-25 14:49:54') As R, ISDATE('13:45) As S, ISDATE('2019-09-31) As T, ISDATE('13:67) As U, ISDATE('27:45) As V
- 2019-09-25 is a valid date.
- 2019-09-25 14:49 is a valid date with data of hour and minute and the same applies to 2019-09-25 14:49:54 and it also includes seconds.
- If we execute the above program last 3 will be shown as zero (T, U through V are 0 )because September does not have 31 days, thus making 2019-09-31 an invalid date.
- Days have 24 hours and each hour has 60 minutes, which makes 27:45 and 13:67 as invalid times.
Before going to maintain the database using SQL Server we need to learn the basics of SQL Server, without knowing the basic concepts like Data types, Functions, etc we cannot use the SQL for example if we want to use ant data type first we need to know the maximum size, type, and range of values. We cannot write the SQL script without having knowledge of Datatypes. All types of data types will not support all types of databases.
Below are a few examples:
- Oracle database will not support DATETIME
- Mysql will not support the CLOB data type.
- Microsoft SQL Server has big and small money data types but they will not help other database vendors.
We hope that this EDUCBA information on “SQL Server Data Types” was beneficial to you. You can view EDUCBA’s recommended articles for more information.