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 ડબ્બા છે: ખાંડ નો એક જાર, તેલ ની એક બોટલ, મસાલા ના ડબ્બાની એક rack. તમે તેલ મસાલા ની rack માં ન રેડો. એક data type એ એક column પર એ જ label છે: 'આ column whole numbers રાખે છે', 'આ વાળો 30 characters સુધી text રાખે છે'. label ખાતરી કરે છે કે ફક્ત સાચા પ્રકારની વસ્તુ અંદર જાય, અને database એને કાર્યક્ષમ રીતે store કરી શકે.
At a glance
સામાન્ય SQL data types
| Type | રાખે છે | નોંધ |
|---|---|---|
| INT / INTEGER | Whole numbers | qty, ids |
| FLOAT / DOUBLE / NUMBER | Decimals | પૈસા માટે NUMBER(6,2) |
| CHAR(n) | FIXED-length text | Padded; fixed codes |
| VARCHAR / VARCHAR2(n) | VARIABLE-length text | સામાન્ય પસંદ |
| DATE | Dates (ક્યારેક + 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 INTTheory
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 વધુ સારી પસંદ છે?
- VARCHAR, એ દરેક name ની ફક્ત અસલી length store કરે છે
- CHAR, એ દરેક name ને પૂરી length સુધી pad કરે છે
- INT, names numbers તરીકે store થાય છે
- 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 કરે છે).
- યાદ રાખવાની યુક્તિ: labelled ડબ્બા, CHAR આખું pad કરે છે, VARCHAR જેટલું રેડો એટલું store કરે છે.