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) डेटाबेस में स्टोर करना ज्यादा बेहतर माना जाता है।
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 है या नहीं।
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 लेता है।
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
Post a Comment