SQL datatypes: int, float, double, char, varchar, number, varchar2, text, date

SQL table का हर column एक data type declare करना ज़रूरी है जो तय करे कि वह क्या रख सकता है, whole numbers के लिए INT, decimals के लिए FLOAT/DOUBLE और NUMBER, fixed-length text के लिए CHAR, variable text के लिए VARCHAR, और dates के लिए DATE।

10 min read · 10 cards · 2 checks

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


Theory

Table बनाना, सचमुच

Meera ने Unit 3 में अपनी tables कागज़ पर design कीं। अब वह एक असली database में एक बनाती है, और हर column के लिए सबसे पहला फ़ैसला है: यहाँ किस किस्म की value जाती है?

Item names text हैं। Prices पैसों वाले numbers हैं। Quantities whole numbers हैं। Dates dates हैं। SQL आपसे यह पहले ही declare करवाता है, और गलत चुनना जगह बर्बाद करता है या data बिगाड़ता है।

अगर यह जाना-पहचाना लगे, तो लगना चाहिए: यह ठीक BCA104 C वाला data types का idea है, अब database columns के लिए। यहाँ दुकान की sales table है जो आप पूरे unit इस्तेमाल करेंगे।

Theory

रसोई में content से labelled डिब्बे

Meera की रसोई में content से labelled डिब्बे हैं: चीनी का एक जार, तेल की एक बोतल, मसाले के डिब्बों की एक रैक। आप तेल मसाले की रैक में नहीं उंडेलेंगी। एक data type एक column पर वही label है: 'यह column whole numbers रखता है', 'यह वाला 30 characters तक text रखता है'। label पक्का करता है कि सिर्फ सही किस्म की चीज़ अंदर जाए, और database इसे कुशलता से store कर सके।

At a glance

आम SQL data types

Typeरखता हैटिप्पणी
INT / INTEGERWhole numbersqty, ids
FLOAT / DOUBLE / NUMBERDecimalsपैसों के लिए NUMBER(6,2)
CHAR(n)FIXED-length textPadded; fixed codes
VARCHAR / VARCHAR2(n)VARIABLE-length textआम चुनाव
DATEDates (कभी-कभी + time)sale_date

Practical

The sales table you will use all unit

-- Our running example: Meera's sales table
-- id | item  | category | price | qty
--  1 | Sugar | Grocery  |   45  | 20
--  2 | Tea   | Beverage |  120  | 15
--  3 | Rice  | Grocery  |   60  | 30
--  4 | Soap  | Personal |   35  | 25
--  5 | Milk  | Dairy    |   30  | 40

-- Its column types:
-- id       INT
-- item     VARCHAR(30)
-- category VARCHAR(20)
-- price    INT
-- qty      INT

Theory

CHAR बनाम VARCHAR: अहम जोड़ी

सबसे ज़्यादा पूछा जाने वाला फ़र्क़ है CHAR बनाम VARCHAR:

  • CHAR(n) fixed length है: CHAR(10) हमेशा 10 characters इस्तेमाल करता है, छोटी values को spaces से pad करते हुए। उन values के लिए अच्छा जो हमेशा एक ही length की हों (एक state code 'GJ', एक fixed PIN)। वरना जगह बर्बाद करता है।
  • VARCHAR(n) variable length है: VARCHAR(30) तक 30 आरक्षित करता है पर सिर्फ वही store करता है जो आप डालते हैं। 'Tea' 3 लेता है, 30 नहीं। names और free text के लिए आम चुनाव।

Fixed बनाम variable: पूरा भरना बनाम जितना चाहिए उतना store करना।

Quiz

Meera item names store करती है जैसे 'Tea', 'Sugar', 'Toothpaste' (बहुत अलग lengths)। कौन सा type बेहतर चुनाव है?

  1. VARCHAR, यह हर name की सिर्फ असल length store करता है
  2. CHAR, यह हर name को पूरी length तक pad करता है
  3. INT, names numbers के रूप में store होते हैं
  4. DATE, क्योंकि items समय के साथ बदलते हैं
Show the answer

VARCHAR, यह हर name की सिर्फ असल length store करता है

Item names की length अलग-अलग होती है, तो VARCHAR हर एक को उसके असल आकार पर store करता है ('Tea' = 3 chars), जगह बचाते हुए। CHAR हर name को fixed चौड़ाई तक pad करता, छोटे names के लिए जगह बर्बाद करते हुए। CHAR सिर्फ तब जीतता है जब values हमेशा एक ही length की हों (fixed codes)। यह CHAR-बनाम-VARCHAR तर्क एक पक्का exam सवाल है।

Think first

Price column का type ध्यान से क्यों?

Meera हमारे उदाहरण में prices INT के रूप में store करती है, पर कई prices में पैसे होते हैं (45.50)। अगर वह INT रखती है, तो 45.50 का क्या होता है? एक money column को असल में कौन सा type इस्तेमाल करना चाहिए?

Show the answer

INT decimal को truncate करता है, 45.50, 45 के रूप में store होगा, पैसे खोते हुए (ठीक BCA104 वाला int-truncation)। पैसे के लिए, एक decimal type इस्तेमाल कीजिए: NUMBER(6,2) (Oracle) या DECIMAL(6,2) (MySQL), मतलब 6 digits तक जिसमें 2 point के बाद। (हमारी running table पूरे-रुपये prices इस्तेमाल करती है ताकि गणित साफ़ रहे, पर असल money columns को decimals चाहिए।) असल data से मेल खाता type चुनना ही पूरा कौशल है।

Watch out

Marks कहाँ कटते हैं

CHAR (fixed, padded) और VARCHAR (variable, efficient) को आपस में बदलना, वह क्लासिक जोड़ी। पैसे के लिए INT इस्तेमाल करना (पैसे truncate करता है), NUMBER/DECIMAL इस्तेमाल कीजिए। यह भूलना कि VARCHAR2, VARCHAR का Oracle नाम है। और dates को DATE के बजाय text के रूप में store करना (date गणित खोता है, Unit 2 वाली serial-number तरकीब)। type को data से मिलाइए, और CHAR-बनाम-VARCHAR फ़र्क़ को सटीक नाम दीजिए।

Theory

एक idea, तीन subjects

Data types अब आपके तीसरे subject में आते हैं: C variables (BCA104), Excel number formats (Unit 1), और SQL columns। सबक सार्वभौमिक है: computers को पता होना चाहिए कि वे किस किस्म की value रखते हैं। Meera की sales table अब बनाने और भरने को तैयार है, जो ठीक अगला lesson है: CREATE, INSERT, और पूरा DDL/DML/DQL command परिवार। आप अपना पहला SQL लिखने वाले हैं।

Summary

Key takeaways

  • हर SQL column एक data type declare करता है जो तय करता है कि वह क्या रख सकता है।
  • Whole numbers के लिए INT; decimals के लिए FLOAT/DOUBLE/NUMBER(p,s) (पैसे को decimals चाहिए)।
  • CHAR(n) FIXED length है (padded); VARCHAR/VARCHAR2(n) VARIABLE length है (efficient, आम चुनाव)।
  • DATE dates store करता है; dates को text के रूप में store करना date गणित खोता है।
  • सही type चुनना जगह की बर्बादी और खोया data रोकता है (INT पैसे truncate करता है)।
  • याद रखने का hook: labelled डिब्बे, CHAR पूरा pad करता है, VARCHAR जितना उंडेलो उतना store करता है।

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 Concepts of SQL and Queries (Single Table only)

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

SQL datatypes: int, float, double, char, varchar, number, varchar2, text, date · Data Processing and Analysis (DPA) · Gri-Learn