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

સાચો data type પસંદ કરવો એટલે તમારા માલ માટે સાચો ડબ્બો પસંદ કરવો: ખોટો વાપરો, અને તમે કાં તો જગ્યા બગાડશો, data તોડશો, કે તમારા database ની performance crash કરશો.

12 min read · 10 cards · 3 checks

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


Theory

Database માં Packing ની સમસ્યા

કલ્પો કે તમે એક વિશાળ logistics ની વખાર ચલાવો છો. જો તમે એક નાજુક, નાનકડી microchip ને એક કાર માટે રચાયેલા વિશાળ, મજબૂત shipping ના container ની અંદર સંઘરવાનો પ્રયાસ કરો, તમે જગ્યા બગાડી. જો તમે એક વિશાળ કારને એક નાનકડા પૂંઠાના ખોખામાં ધકેલવાનો પ્રયાસ કરો, એ ખાલી બેસશે નહીં. Databases બિલકુલ આ જ રીતે કામ કરે છે. જ્યારે તમે એક table ડિઝાઇન કરો, તમારે system ને બિલકુલ કહેવું પડે કે તમારી માહિતી સંઘરવા તમે કેવા પ્રકારનું 'ખોખું' (data type) વાપરો છો. ખોટું પસંદ કરો, અને તમે કાં તો કીમતી memory બગાડો છો કાં તો તમારો data ખાલી બરાબર સચવાશે નહીં.

Theory

સંગ્રહના ડબ્બા

Data types ને જુદા સંગ્રહના ઉકેલો જેવા વિચારો: CHAR એ કડક ધાતુનું ખોખું છે જે ખાલી હોય તો પણ હંમેશા એટલી જ જગ્યા લે છે. VARCHAR2 એ લવચીક થેલી છે જે તમે અંદર જે મૂકો એટલી જ ખેંચાય છે. CLOB એ વિરાટ documents માટેની વિશાળ વખાર છે જે કોઈ ખોખામાં બેસતાં નથી, અને NUMBER એ ગણતરીઓ માટેનું એક ખાસ ચોકસાઈવાળું ઓજાર છે.

Theory

વિચાર, ઔપચારિક રીતે

Oracle SQL માં, એક Data Type એક column માટે સંગ્રહનું સ્વરૂપ, મર્યાદાઓ, અને માન્ય કામગીરી વ્યાખ્યાયિત કરે છે. તમારી BCA ની પરીક્ષાઓ માટે તમારે જાણવા જોઈએ એવા સૌથી મહત્ત્વના પ્રકારો છે:

NUMBER(p, s)*: નિશ્ચિત કે floating-point numbers સંઘરે છે. 'p' precision છે (કુલ અંકો), 's' scale છે (દશાંશ પછીના અંકો).

CHAR(n)*: નિશ્ચિત લંબાઈનો character data. જો તમે CHAR(10) વ્યાખ્યાયિત કરો અને 'Hi' સંઘરો, એ 10 ભરવા 8 spaces ઉમેરે છે.

VARCHAR2(n)*: બદલાતી લંબાઈનો character data. તમે આપો એટલા જ અક્ષરો સંઘરે છે, જગ્યા બચાવતાં.

DATE*: તારીખ અને સમય બંને સંઘરે છે (સદી, વર્ષ, મહિનો, દિવસ, કલાક, મિનિટ, સેકન્ડ).

CLOB / NCLOB*: Character Large Objects. લખાણના વિરાટ ટુકડા માટે વપરાય છે (4GB સુધી).

RAW / LONG RAW*: જૂનાં સ્વરૂપોમાં raw binary data (જેમ કે images કે encrypted ચાવીઓ) સંઘરે છે.

At a glance

મુખ્ય Oracle data types ની સરખામણી

Data Typeસંગ્રહની શૈલીશ્રેષ્ઠ Use Case
CHARનિશ્ચિત લંબાઈ'US', 'IN', 'Y', 'N' જેવા codes (ભાગ્યે જ બદલાતા)
VARCHAR2બદલાતી લંબાઈનામ, સરનામાં, email IDs (જગ્યાની કાર્યક્ષમતા)
NUMBERઆંકડાકીયકિંમતો, જથ્થા, IDs, ગણતરીઓ
CLOBમોટું લખાણપુસ્તકની સમીક્ષાઓ, પૂરી લંબાઈના લેખ, logs

Think first

CHAR ના Padding ની કસોટી

જો તમે એક column ને CHAR(10) તરીકે વ્યાખ્યાયિત કરો અને 'Oracle' નામ નાખો, તો disk પર ખરેખર કેટલી bytes સંઘરાય છે?

Show the answer

એ 10 bytes સંઘરશે. કારણ કે CHAR નિશ્ચિત લંબાઈનો છે, Oracle 10 ના વ્યાખ્યાયિત કદ સુધી પહોંચવા બાકીની 4 જગ્યાઓ કોરી ભરી દેશે. આ જ કારણે લંબાઈમાં બદલાતા data માટે CHAR બિનકાર્યક્ષમ છે.

Theory

જૂની સમસ્યા: LONG અને LONG RAW

તમે જૂના codebases માં LONG અને LONG RAW જોઈ શકો છો. લખાણ કે binary data ના વિરાટ જથ્થા સંઘરવાના આ શરૂઆતના રસ્તા હતા. પણ, એ ખૂબ મર્યાદિત છે (તમે એક table દીઠ એકથી વધુ રાખી શકતા નથી, એ ઘણાં SQL clauses માં વાપરી શકાતાં નથી). નવી ડિઝાઇન માટે હંમેશા CLOB કે BLOB વાપરો. જો કોઈ exam નો પ્રશ્ન 'legacy limitations' વિશે પૂછે, ઉલ્લેખ કરો કે આધુનિક LOBs ની સરખામણીએ LONG પ્રકારો જૂના અને મર્યાદિત છે.

Quiz

કર્મચારીના પગાર (દા.ત. 50000.50) સંઘરતા એક column માટે તમારે કયો data type પસંદ કરવો જોઈએ?

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

NUMBER(10, 2)

NUMBER ખાસ અંકગણિત માટે રચાયેલો છે. VARCHAR2 અને CHAR strings માટે છે અને સીધી ગણતરીઓ માટે વાપરી શકાતા નથી, અને CLOB લખાણના મોટા ટુકડા માટે છે.

Watch out

VARCHAR2 સામે VARCHAR નો ફાંદો

Oracle માં, હંમેશા VARCHAR2 વાપરો. જ્યારે અમુક systems માં 'VARCHAR' એક સમાનાર્થી તરીકે અસ્તિત્વમાં છે, ત્યારે Oracle ખાસ ચેતવે છે કે ભવિષ્યનાં versions માં એનું વર્તન બદલાઈ શકે છે. સુસંગતતાની ખાતરી કરવા તમારા exam ના જવાબો અને વાસ્તવિક દુનિયાના code માટે હંમેશા VARCHAR2 ને પસંદ કરો.

Think first

ડિઝાઇનનો નિર્ણય: Library System

તમે એક library ની system માટે એક table બનાવી રહ્યા છો. તમારી પાસે એક 'Book_Title' column અને એક 'Book_Description' column છે. તમે દરેક માટે કયા data types પસંદ કરો, અને કેમ?

Show the answer

'Book_Title' માટે, VARCHAR2(255) વાપરો કારણ કે titles લંબાઈમાં બદલાય છે પણ વિરાટ નથી હોતાં. 'Book_Description' માટે, CLOB વાપરો કારણ કે વર્ણનો અત્યંત લાંબાં હોઈ શકે છે, સહેલાઈથી VARCHAR2 ની 4000-byte ની મર્યાદા વટાવતાં.

Summary

Key takeaways

  • ગણિત સંબંધિત બધી values માટે NUMBER વાપરો.
  • જગ્યા બચાવવા લંબાઈમાં બદલાતા લખાણ માટે VARCHAR2 વાપરો.
  • CHAR માત્ર નિશ્ચિત લંબાઈના codes માટે વાપરો જ્યાં પ્રવેશની કાર્યક્ષમતા padding કરતાં વધુ મહત્ત્વની હોય.
  • Standard column ની મર્યાદા વટાવતા લખાણના મોટા ટુકડા માટે CLOB વાપરો.
  • નવી database ની ડિઝાઇનમાં LONG અને LONG RAW ટાળો; એ ગંભીર કાર્યાત્મક મર્યાદાઓ વાળા જૂના પ્રકારો છે.
  • હંમેશા યાદ રાખો: CHAR ભરે છે, 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