Data types (NUMBER, CHAR, VARCHAR, VARCHAR2, CLOB, NCLOB, LONG, DATE, RAW, LONGROW)

सही data type चुनना अपने cargo के लिए सही container चुनने जैसा है: ग़लत इस्तेमाल कीजिए, और आप या तो जगह बर्बाद करेंगे, data तोड़ेंगे, या अपने database की performance crash करेंगे।

12 min read · 10 cards · 3 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Database Packing की समस्या

कल्पना कीजिए आप एक विशाल logistics warehouse चला रहे हैं। अगर आप एक नाज़ुक, छोटी microchip को एक कार के लिए बनाए एक विशाल, प्रबलित shipping container के अंदर store करने की कोशिश करते हैं, आपने जगह बर्बाद की। अगर आप एक विशाल कार को एक छोटे cardboard box में ज़बरदस्ती डालने की कोशिश करते हैं, यह बस फ़िट नहीं होगी। Databases बिल्कुल इसी तरह काम करते हैं। जब आप एक table design करते हैं, आपको system को बिल्कुल बताना होगा कि आप अपनी जानकारी store करने के लिए किस तरह का 'box' (data type) इस्तेमाल कर रहे हैं। ग़लत चुनिए, और आप या तो बहुमूल्य memory बर्बाद करते हैं या आपका data बस सही तरह save नहीं होगा।

Theory

Storage Containers

data types को अलग storage समाधानों की तरह सोचिए: CHAR एक कठोर धातु का box है जो हमेशा एक ही जगह लेता है, भले ख़ाली हो। VARCHAR2 एक लचीला थैला है जो केवल उतना ही फैलता है जितना आप अंदर रखते हैं। CLOB उन विशाल दस्तावेज़ों के लिए एक विशाल warehouse है जो किसी box में फ़िट नहीं होते, और NUMBER calculations के लिए एक विशेष precision औज़ार है।

Theory

विचार, औपचारिक रूप से

Oracle SQL में, एक Data Type एक column के लिए storage format, constraints, और valid operations परिभाषित करता है। आपकी BCA exams के लिए जानने योग्य सबसे अहम types हैं:

NUMBER(p, s)*: fixed या floating-point numbers store करता है। 'p' precision है (कुल digits), 's' scale है (decimal के बाद digits)।

CHAR(n)*: fixed-length character data। अगर आप CHAR(10) परिभाषित करते हैं और 'Hi' store करते हैं, यह 10 भरने के लिए 8 spaces जोड़ता है।

VARCHAR2(n)*: variable-length character data। यह केवल वे characters store करता है जो आप देते हैं, जगह बचाते हुए।

DATE*: date और time दोनों store करता है (century, year, month, day, hour, minute, second)।

CLOB / NCLOB*: Character Large Objects। text के विशाल blocks (4GB तक) के लिए इस्तेमाल होते हैं।

RAW / LONG RAW*: raw binary data (जैसे images या encrypted keys) legacy formats में store करते हैं।

At a glance

मुख्य Oracle data types की तुलना

Data TypeStorage StyleBest Use Case
CHARFixed-Length'US', 'IN', 'Y', 'N' जैसे codes (कम ही बदलते)
VARCHAR2Variable-LengthNames, addresses, email IDs (जगह की कुशलता)
NUMBERNumericPrices, quantities, IDs, calculations
CLOBLarge TextBook reviews, पूरी लंबाई के articles, logs

Think first

CHAR Padding परीक्षण

अगर आप एक column को CHAR(10) के रूप में परिभाषित करते हैं और नाम 'Oracle' insert करते हैं, disk पर असल में कितने bytes store होते हैं?

Show the answer

यह 10 bytes store करेगा। क्योंकि CHAR fixed-length है, Oracle बचे 4 spaces को blanks से pad करेगा ताकि 10 के परिभाषित size तक पहुँचे। यही वजह है कि CHAR उस data के लिए अकुशल है जो लंबाई में बदलता है।

Theory

Legacy समस्या: LONG और LONG RAW

आप पुराने codebases में LONG और LONG RAW देख सकते हैं। ये text या binary data की विशाल मात्राएँ store करने के शुरुआती तरीक़े थे। पर, वे अत्यधिक सीमित हैं (आप एक table में एक से ज़्यादा नहीं रख सकते, वे कई SQL clauses में इस्तेमाल नहीं हो सकते)। नई designs के लिए हमेशा CLOB या BLOB इस्तेमाल कीजिए। अगर एक exam question 'legacy limitations' के बारे में पूछता है, बताइए कि LONG types आधुनिक LOBs की तुलना में पुराने और सीमित हैं।

Quiz

employee salaries (जैसे 50000.50) store करते एक column के लिए आपको कौन सा data type चुनना चाहिए?

  1. VARCHAR2
  2. CHAR
  3. NUMBER(10, 2)
  4. CLOB
Show the answer

NUMBER(10, 2)

NUMBER ख़ास तौर पर arithmetic के लिए design किया गया है। VARCHAR2 और CHAR strings के लिए हैं और सीधे calculations के लिए इस्तेमाल नहीं हो सकते, और CLOB text के बड़े blocks के लिए है।

Watch out

VARCHAR2 बनाम VARCHAR जाल

Oracle में, हमेशा VARCHAR2 इस्तेमाल कीजिए। जबकि 'VARCHAR' कुछ systems में एक synonym के रूप में मौजूद है, Oracle ख़ास तौर पर चेतावनी देता है कि इसका behavior भविष्य के versions में बदल सकता है। compatibility पक्की करने के लिए अपने exam answers और असली दुनिया के code के लिए हमेशा VARCHAR2 को तरजीह दीजिए।

Think first

Design फ़ैसला: Library System

आप एक library system के लिए एक table बना रहे हैं। आपके पास एक 'Book_Title' column और एक 'Book_Description' column है। आप हर एक के लिए कौन से data types चुनते हैं, और क्यों?

Show the answer

'Book_Title' के लिए, VARCHAR2(255) इस्तेमाल कीजिए क्योंकि titles लंबाई में बदलते हैं पर विशाल नहीं होते। 'Book_Description' के लिए, CLOB इस्तेमाल कीजिए क्योंकि descriptions बेहद लंबी हो सकती हैं, आसानी से VARCHAR2 की 4000-byte सीमा पार करती हुई।

Summary

Key takeaways

  • सारे math-संबंधी values के लिए NUMBER इस्तेमाल कीजिए।
  • जगह बचाने के लिए लंबाई में बदलते text के लिए VARCHAR2 इस्तेमाल कीजिए।
  • CHAR केवल fixed-length codes के लिए इस्तेमाल कीजिए जहाँ access की कुशलता padding से ज़्यादा भारी पड़े।
  • standard column सीमाएँ पार करते बड़े text blocks के लिए CLOB इस्तेमाल कीजिए।
  • नई database designs में LONG और LONG RAW से बचिए; वे गंभीर functional सीमाओं वाले legacy types हैं।
  • हमेशा याद रखिए: CHAR pad करता है, VARCHAR2 फ़िट होने के लिए सिकुड़ता है।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Introduction of Relational Database

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Data types (NUMBER, CHAR, VARCHAR, VARCHAR2, CLOB, NCLOB, LONG, DATE, RAW, LONGROW) · Mastering SQL - PL/SQL (SEC-02 option A) · Gri-Learn