Data Types — Complete Guide
Data Types — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of SQL Server Tutorial on Toolliyo Academy.
On this page
SQL Server Tutorial · Lesson 9 of 100
Data Types
SQL basics → Queries → Advanced
SQL basics · 1 — SELECT · ~6 min · SQL — Foundations
What is this?
Each column has a type: INT, DECIMAL, NVARCHAR, DATETIME2, BIT, UNIQUEIDENTIFIER, and more. The type limits size, sorting, and allowed values.
Why should you care?
Wrong types waste space or break money math — DECIMAL for currency, not FLOAT; DATETIME2 over legacy DATETIME for new work.
See it live — copy this example
Run in SQL Server Management Studio (SSMS) or Azure Data Studio.
USE DataVerse;
IF OBJECT_ID(N'dbo.Products', N'U') IS NOT NULL DROP TABLE dbo.Products;
CREATE TABLE dbo.Products (
ProductId INT IDENTITY(1,1) PRIMARY KEY,
Sku VARCHAR(32) NOT NULL,
Name NVARCHAR(200) NOT NULL,
PriceInr DECIMAL(10,2) NOT NULL,
InStock BIT NOT NULL CONSTRAINT DF_Products_InStock DEFAULT (1),
ListedOn DATE NOT NULL
);
INSERT INTO dbo.Products (Sku, Name, PriceInr, ListedOn)
VALUES ('HD-100', N'Noise Cancelling Headphones', 4999.00, '2026-01-15');
SELECT ProductId, Sku, PriceInr, InStock FROM dbo.Products;
What happened?
- DECIMAL(10,2) keeps paise exact.
- BIT stores true/false stock.
- DATE stores calendar day without time.
- NVARCHAR holds Unicode product names.
Practice next
- Create dbo.Products with the script.
- Insert a second product with InStock = 0.
- Query WHERE PriceInr > 1000.
- Add WeightGrams INT NULL and update one row.
- Change ListedOn to DATETIME2 and insert with a time.
Remember
Pick types that match real data. Money → DECIMAL; flags → BIT; text → NVARCHAR. Bad types cause bugs and wasted storage.
Catalog price must not drift
DataVerse Products.PriceInr is DECIMAL(10,2) for GST invoices.
Outcome: Invoice totals match the cart to the paisa.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!