SQL Data Types

जब आप SQL में कोई Table बनाते हैं, तो आपको यह define करना होता है कि हर column किस तरह का data रखेगा। इसी को हम Data Type कहते हैं। इस Blog में हम SQL और खासकर MySQL में available different data types को आसानी से समझेंगे।



SQL Data Types क्या होते हैं?


डेटाबेस में जब हम कोई Table बनाते हैं, तो हमें यह बताना पड़ता है कि उस Table के किसी खास कॉलम (Column) में किस तरह का डेटा स्टोर होगा। इसी को Data Type कहते हैं।


SQL के मुख्य Data Types को हम तीन बड़ी केटेगरी में बाँट सकते हैं:

1-String Data Types – Text और characters के लिए

2-Numeric Data Types – Numbers (integer, decimal, float) के लिए

3-Date and Time Data Types – तारीख और समय को store करने के लिए

अब हम हर एक category को detail में देखेंगे।




1. String Data Types 


ये data types उस data के लिए होते हैं जिसमें letters, words या characters आते हैं।


A.  For Characters

इनका उपयोग Text, नाम, पते या किसी भी प्रकार के Alphabetical Data को Store करने के लिए किया जाता है।



[i] CHAR vs VARCHAR  

CHAR(size): इसकी लंबाई फिक्स (Fixed) होती है। अगर आप CHAR(5) में "Hi" लिखेंगे, तो भी यह मेमोरी में 5 करैक्टर की जगह घेरेगा (बाकी जगह खाली स्पेस भर देगा)।

Example:  

State_Code CHAR(2)

 

जहाँ हमेशा दो अक्षर ही होंगे (जैसे: DL, MP, HR)।


VARCHAR(size): इसकी लंबाई वेरिएबल (Variable) होती है। अगर आप VARCHAR(50) में "Apple" लिखते हैं, तो यह सिर्फ 5 करैक्टर की ही जगह लेगा।

Example: 

Student_Name VARCHAR(50)


क्योंकि हर किसी के नाम की लंबाई अलग होती है।





[ii] TEXT Types 

जब Data की लंबाई बहुत ज्यादा हो और हमें पता न हो कि वह कितना बड़ा हो सकता है, तब हम TEXT का उपयोग करते हैं।

TINYTEXT: बहुत छोटे नोट या कमेंट्स के लिए (255 chars)।

TEXT: सामान्य ब्लॉग पोस्ट या मैसेज के लिए।

MEDIUMTEXT to LONGTEXT: बहुत बड़ी Files, किताबें, या भारी मात्रा में Article का Data Store करने के लिए।




B. Binary Data Types  

इनका उपयोग सीधे अक्षरों के बजाय डेटा को 0 और 1 (Bytes) के रूप में Store करने के लिए होता है।

[i] BINARY & VARBINARY: ये बिलकुल CHAR और VARCHAR की तरह काम करते हैं, लेकिन इनमें टेक्स्ट के बजाय बाइनरी डेटा होता है। इनका इस्तेमाल कभी-कभी छोटे Encrypted Keys (Keys) के लिए किया जाता है।


[ii] BLOB (Binary Large Object): इसका उपयोग Image, Audio, Video या PDF जैसी Files को सीधे Database में Store करने के लिए होता है।

TINYBLOB, MEDIUMBLOB, LONGBLOB: ये File के Size के हिसाब से चुने जाते हैं।

Example: किसी यूजर की प्रोफाइल फोटो को MEDIUMBLOB में Store किया जा सकता है।





C. Special Types (ENUM and SET)

ये डेटाबेस को बहुत व्यवस्थित और फास्ट बनाने के काम आते हैं।

[i] ENUM (Enumeration)

जब आपके पास कुछ Fix Options हों और उनमें से केवल एक (Only One) चुनना हो।

Syntax: ENUM('Value1', 'Value2', ...)

Example: 

Gender ENUM('Male', 'Female', 'Other')

Advantage: इससे डेटा Entry में गलती की गुंजाइश खत्म हो जाती है।


[ii] SET

जब आपके पास कई Options हों और User एक या एक से ज्यादा (One or More) Options चुन सके।

Syntax: SET('Val1', 'Val2', ...)

Example: 

Skills SET('Java', 'SQL', 'Python', 'HTML')

Advantage: एक ही column में आप Multiple Skills or Hobbies  store कर सकते हैं।



Complete Table Example

मान लीजिए हम आपके Blog के लिए एक Authors की Table बनाते हैं:


CREATE TABLE Authors (

    Author_ID INT,

    Username CHAR(10),            -- Fixed length username

    Bio TEXT,                     -- Long Biography

    Profile_Pic MEDIUMBLOB,       -- Photo File

    Gender ENUM('M', 'F', 'O'),   -- Only one option

    Coding_Skills SET('C', 'Java', 'SQL') -- Multiple Skills

);



याद रखें: Professional काम में Images को Database (BLOB) में Store करने के बजाय उन्हें Server फोल्डर में रखकर उनका 'Path' (VARCHAR) डेटाबेस में स्टोर करना ज्यादा बेहतर माना जाता है।



Data Type

Explanation

CHAR(size)

Fixed length string होता है। जैसे CHAR(10) तो हमेशा 10 characters रखेगा, चाहे actual text छोटा हो।

VARCHAR(size)

Variable length string होता है। जैसे VARCHAR(50) तो actual text जितना हो उतनी space लेगा, max 50 तक।

BINARY(size)

Binary data को fixed-length में store करता है (जैसे images या files)।

VARBINARY(size)

Binary data को variable-length में store करता है।

TEXT(size)

Long text store करने के लिए। Size की limit database पर depend करती है।

TINYTEXT

255 characters तक छोटा text।

MEDIUMTEXT

Up to 16 MB तक का text।

LONGTEXT

Up to 4 GB तक का बहुत लंबा text।

ENUM(val1, val2, …)

Predefined values में से एक value चुनने के लिए। जैसे: ENUM('Male', 'Female', 'Other')

SET(val1, val2, …)

एक से ज़्यादा values को एक साथ चुनने के लिए।

BLOB(size)

Binary Large Object – files, images वगैरह store करने के लिए। Size variant होता है जैसे TINYBLOB, MEDIUMBLOB, LONGBLOB।






2. Numeric Data Types 


जब आपको integer, decimal या floating numbers store करने होते हैं तो ये data types काम आते हैं।




A. Integer Data Types  

जब हमें बिना दशमलव वाली संख्याएँ Store करनी होती हैं, तब हम इनका उपयोग करते हैं।

[i] INT / INTEGER: यह सबसे Common Type है। इसका उपयोग Roll Number, ID, या उम्र जैसी चीजों के लिए होता है।


[ii] BIT(size): यह Data को Binary (0 और 1) में Store करता है। Size यह बताता है कि कितने Bits Store करने हैं (1 से 64 तक)।

Example: अगर आपको सिर्फ Yes'(1) या No (0) के 8 अलग-अलग Options Store करने हैं, तो BIT(8) का इस्तेमाल कर सकते हैं।



B. Decimal 


[i] FLOAT vs DOUBLE

FLOAT(size, d): यह कम मेमोरी लेता है लेकिन बहुत लंबी दशमलव वाली संख्याओं में थोड़ा  Round-off कर सकता है।

Example: FLOAT(5, 2) का मतलब है कुल 5 अंक, जिनमें से 2 दशमलव के बाद होंगे (जैसे: 123.45)।


DOUBLE(size, d): यह Double Precision प्रदान करता है। जहाँ बहुत ज्यादा सटीक गणना चाहिए (जैसे वैज्ञानिक डेटा), वहाँ इसका उपयोग होता है।



[ii] DECIMAL / DEC (सबसे महत्वपूर्ण)

इसका उपयोग तब किया जाता है जब हमें Exact Value चाहिए होती है, बिना किसी Round-off  के।

Best Use: पैसों (Money/Currency) के लेनदेन का हिसाब रखने के लिए हमेशा DECIMAL का ही उपयोग करें।

Example: 

Price DECIMAL(10, 2)


— यहाँ कुल 10 अंक आ सकते हैं और 2 अंक दशमलव के बाद।




C. Boolean  

BOOL / BOOLEAN: यह केवल दो मान (Values) लेता है: TRUE या FALSE

Internal Working: SQL इसे अलग से स्टोर नहीं करता, बल्कि यह इसे TINYINT(1) की तरह मानता है।

TRUE को 1 माना जाता है।

FALSE को 0 माना जाता है।

Example:  is_active BOOL — यह बताने के लिए कि कोई User अभी Active है या नहीं।


Column Name

Data Type

Sample Data

Product_ID

INT

101

Product_Price

DECIMAL(10, 2)

999.5

Tax_Rate

FLOAT

18.5

In_Stock

BOOL

1 (True)

Binary_Flag

BIT(1)

0







Data Type

Explanation

BIT(size)

Binary digits (0s और 1s)।

INT(size) /

INTEGER(size)

Whole numbers के लिए। जैसे – 10, 100, -45

FLOAT(size, d)

Decimal numbers के लिए। size total digits और d decimal places।

FLOAT(p)

Precision वाली float values। p = precision level

DOUBLE(size, d)

Higher precision decimal numbers।

DECIMAL(size, d) /

DEC(size, d)

Exact decimal values जैसे पैसे (₹123.45)।

BOOL

Boolean value (TRUE या FALSE) को represent करता है। Internally इसे TINYINT(1) की तरह store किया जाता है।





3. Date and Time Data Types 


अगर आपको किसी event की तारीख या समय record करना है तो ये data types useful होते हैं।


A. DATE : यह सबसे Basic Type है जिसका उपयोग तब किया जाता है जब हमें समय (Time) की जरूरत नहीं होती, सिर्फ दिन, महीना और साल चाहिए होता है।

Format: YYYY-MM-DD

Range: '1000-01-01' से '9999-12-31' तक।

Example:   User_DOB DATE   (यूजर की जन्मतिथि स्टोर करने के लिए)।




B. DATETIME(fsp)

जब हमें यह जानना हो कि कोई घटना किस दिन और किस समय हुई, तब हम इसका उपयोग करते हैं।

Format: YYYY-MM-DD HH:MM:SS

fsp (Fractional Seconds Precision): यह सेकेंड के बाद के सूक्ष्म समय (जैसे 0.000001) को स्टोर करने के लिए इस्तेमाल होता है (0 से 6 तक)।

Example: Exam_Start_Time DATETIME



C. TIMESTAMP(fsp)

यह दिखने में DATETIME जैसा ही है, लेकिन इसका काम करने का तरीका अलग है। यह Time Zone के हिसाब से समय को बदल देता है।

खासियत: इसमें DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP का फीचर होता है। यानी जैसे ही डेटा अपडेट होगा, समय अपने आप बदल जाएगा।

Example: Last_Modified TIMESTAMP (यह ट्रैक करने के लिए कि डेटा आखिरी बार कब बदला गया)।



D. TIME(fsp)

इसका उपयोग तब होता है जब तारीख की जरूरत न हो, सिर्फ समय का अंतराल या समय बताना हो।

Format: HH:MM:SS

Example: Class_Duration TIME (जैसे: '01:30:00' यानी डेढ़ घंटा)।



E. YEAR

जब हमें केवल साल स्टोर करना हो और पूरी तारीख की जरूरत न हो।

Format: YYYY

Example: Graduation_Year YEAR (जैसे: '2026')। यह मेमोरी की बहुत बचत करता है क्योंकि यह सिर्फ 1 Byte लेता है।



Column Name

Data Type

Sample Data

Post_Title

VARCHAR(100)

"Learn SQL in Hindi"

Publish_Date

DATE

2026-04-14

Created_At

DATETIME

2026-04-14 10:30:00'

Last_Updated

TIMESTAMP

2026-04-14 15:22:46'

Reading_Time

TIME

00:05:00' (5 Minutes)





Data Type

Explanation

DATE

सिर्फ तारीख (YYYY-MM-DD) जैसे: '2025-05-09'

DATETIME(fsp)

तारीख और समय दोनों, जैसे: '2025-05-09 14:30:00'

TIMESTAMP(fsp)

Unix Timestamp के रूप में समय store करता है (automatic update के लिए useful)।

TIME(fsp)

सिर्फ समय, जैसे: '14:30:00'

YEAR

सिर्फ साल store करता है, जैसे: '2025'



Note: FSP का मतलब है fractional seconds precision (optional है) – यानी seconds के बाद के digits को कितनी precision तक store करना है।

SQL Data Types बहुत ज़रूरी हैं क्योंकि ये define करते हैं कि table में किस type का data आएगा। अगर आप सही data type चुनते हैं तो आपका database efficient और तेज़ चलेगा।

चाहे आप text store कर रहे हों, numbers की calculation कर रहे हों, या किसी event का समय record कर रहे हों – हर task के लिए SQL में proper data type होता है।


 





Comments

Popular Posts

HTML Introduction

HTML Text Editors

CREATE DATABASE

You might like

Quick Learn Code by PK

Quick Learn Code by PK (@QLCbyPK) एक उपयोगी और beginner-friendly platform है, जहाँ आप HTML, CSS, Bootstrap, JavaScript, jQuery, PHP, CodeIgniter, C, C++, और SQL जैसी programming languages आसानी से सीख सकते हैं।


Follow us