مائی ایس کیو ایل کی معروف ڈیٹا ٹائپس اور ان کا استعمال

ڈیٹابیس ٹیبل ڈیزائن کرتے وقت ایک مشکل مرحلہ یہ ہوتا ہے کہ کونسی فیلڈ کے لیے کونسی ڈیٹا ٹائپ استعمال کی جائے۔ یہ کام بہت سوچ سمجھ کر کرنا ہوتا ہے، اس لیے کہ جب ڈیٹابیس استعمال ہونا شروع ہو جاتی ہے اور اس میں کئی ہزار یا کئی لاکھ ریکارڈز جمع ہو جاتے ہیں تو پھر کسی بھی فیلڈ کی ڈیٹا ٹائپ کو تبدیل کرنا مشکل ہو جاتا ہے۔ اس ٹٹوریل میں MySQL کی عام استعمال ہونے والی ڈیٹا ٹائپس کی بنیادی معلومات مہیا کی گئی ہیں تاکہ نئے سیکھنے والوں کے لیے انہیں سمجھنا اور ان کا استعمال کرنا آسان ہو جائے۔ نیز ڈیٹابیس کا ٹیبل بناتے وقت اس کی فیلڈز کیسے ڈیفائن کی جاتی ہیں، یہ دکھانے کے لیے phpMyAdmin ایپلی کیشن کے مختصر اسکرین شاٹس بھی شامل کیے گئے ہیں۔



ڈیٹابیس ٹیبل کی فیلڈ بناتے وقت چار باتیں خاص طور پر غور طلب ہوتی ہیں:

  1. ایک یہ دیکھنا کہ اس فیلڈ میں کس قسم کا ڈیٹا (نمبر، تاریخ و وقت، ٹیکسٹ وغیرہ) محفوظ ہوگا، تاکہ فیلڈ کے لیے مناسب Data type مقرر کی جا سکے۔ ڈیٹابیس میں تین قسم کی ویلیوز محفوظ کی جاتی ہیں:
    • Numeric ویلیوز جو حساب کتاب میں استعمال کی جا سکتی ہوں۔ مثلاً‌ کسی امتحانی پرچے کے مارکس، یا کسی چیز کی قیمت وغیرہ۔
    • Date & Time کی ویلیوز۔ مثلاً‌ کسی کی تاریخ پیدائش، کسی کام کے مکمل ہونے کا دورانیہ، یا پھر کسی وقوعے کی تاریخ اور وقت وغیرہ۔
    • String ویلیوز۔ مثلاً‌ کسی شخص یا چیز کا نام، یا پھر کسی مضمون کی عبارت وغیرہ۔
  2. دوسرا یہ اندازہ کرنا کہ صارف اس فیلڈ میں زیادہ سے زیادہ کتنا ڈیٹا محفوظ کر سکتا ہے، تاکہ فیلڈ کے لیے زیادہ سے زیادہ ڈیٹا کی حد مقرر کی جا سکے۔ MySQL کی کچھ ڈیٹا ٹائپس ایسی بھی ہیں کہ جن کے لیے اگر زیادہ سے زیادہ ڈیٹا کی حد مقرر کی جائے تو ڈسک پر اس کے سائز میں فرق نہیں پڑتا۔ یعنی INT فیلڈ میں 123 نمبر بھی 4 بائٹس جگہ لے گا اور 12345678 نمبر بھی 4 بائٹس ہی جگہ لے گا۔ لیکن ماہرین کے مطابق بعض صورتوں میں فیلڈ کا ضرورت سے بڑا سائز رکھنے سے میموری کا استعمال زیادہ ہو جاتا ہے۔ چنانچہ بہتر کارکردگی حاصل کرنے کے لیے ضروری ہے کہ فیلڈ کی زیادہ سے زیادہ ڈیٹا کی حد مقرر کی جائے۔ ایسا کرنا اس لیے بھی ضروری ہے کہ بطور ڈیزائنر آپ بہتر جانتے ہیں اس ڈیٹابیس میں ڈیٹا محفوظ کرنے کی بزنس پالیسی کیا ہے۔ اس لیے بزنس پالیسی کے خلاف حد سے زیادہ ڈیٹا محفوظ کرنے کی اجازت دینا ڈیٹابیس کو غیر معیاری بنا سکتا ہے۔
  3. تیسرا یہ دیکھنا کہ فیلڈ میں کن زبانوں کا ڈیٹا محفوظ کیا جا سکتا ہے، تاکہ فیلڈ کے لیے مناسب Collation منتخب کی جا سکے۔ اس کا ایک طریقہ یہ ہے کہ ڈیٹابیس بناتے وقت اس کے لیے utf8_unicode_ci کولیشن منتخب کر لی جائے، جو کہ دنیا کی زیادہ تر زبانیں سپورٹ کرتی ہے۔ ڈیٹابیس بناتے وقت کولیشن منتخب کرنے سے یہ ہوگا کہ نئے ٹیبل کی تمام فیلڈز کے لیے وہی کولیشن سیٹ ہو جائے گی۔ ٹیبل کی فیلڈز بناتے وقت اگر کسی فیلڈ کی کولیشن تبدیل کرنے کی ضرورت ہو تو پھر اس کے لیے مختلف کولیشن منتخب کی جا سکتی ہے۔ مثلاً‌ اگر کسی فیلڈ کے متعلق یقین ہو کہ اس میں انگلش کے علاوہ کسی قسم کے حروف نہیں محفوظ کیے جائیں گے، مثلاً‌ ای میل وغیرہ، تو اس کے لیے latin1_general_ci منتخب کی جا سکتی ہے۔
  4. چوتھا یہ دیکھنا کہ اگر ایپلی کیشن کسی فیلڈ کی ویلیو مہیا نہ کرے تو پھر ڈیٹابیس ڈیفالٹ کے طور پر اس فیلڈ میں کیا ویلیو محفوظ کرے۔ ڈیٹابیس ٹیبل میں زیادہ تر فیلڈز ایسی ہوتی ہیں جن کے لیے ڈیفالٹ ویلیو مقرر نہیں کی جاتی، اس لیے کہ ایپلی کیشن نے ریکارڈ داخل کرتے وقت کوئی نہ کوئی ویلیو مطلوبہ فیلڈ میں ضرور محفوظ کرنی ہوتی ہے۔ اگر ایپلی کیشن کا صارف ریکارڈ بناتے وقت یہ ویلیو مہیا نہ کرے، تو پھر ایپلی کیشن اپنی طرف سے کوئی ڈیفالٹ ویلیو ڈیٹابیس کی اس فیلڈ میں محفوظ کر سکتی ہے۔ لیکن ایسی فیلڈز بھی ہوتی ہیں جن کے لیے ڈیفالٹ ویلیوز استعمال کی جا سکتی ہیں۔ مثال کے طور پر order_status فیلڈ کی ڈیفالٹ ویلیو 0 رکھی جا سکتی ہے، جس کا مطلب ہوگا کہ آرڈر ابھی قبول نہیں کیا گیا۔ ایسی صورت میں ریکارڈ بناتے وقت ایپلی کیشن کے لیے اس فیلڈ کی ویلیو مہیا کرنا ضروری نہیں، اگرچہ وہ چاہے تو مہیا کر سکتی ہے۔ اور پھر بعد میں آرڈر قبول ہونے پر ایپلی کیشن اس فیلڈ کی ویلیو 1 میں بدل سکتی ہے، جس کا مطلب ہوگا کہ آرڈر قبول کر لیا گیا ہے۔

آئیں MySQL کی ڈیٹا ٹائپس اور ان کے عام استعمال پر قدرے تفصیل کے ساتھ نظر ڈالتے ہیں۔ ویسے تو آپ جانتے ہوں گے کہ ڈیٹابیس ڈیزائن کرنے کے لیے SQL کا جاننا بے حد ضروری ہے۔ لیکن MySQL کی ڈیٹابیسز عموماً‌ phpMyAdmin کی مدد سے بنائی جاتی ہیں، اس لیے یہاں اس کی مختصر مثالیں پیش کی جا رہی ہیں۔ مکمل ڈیٹابیس ڈیزائن کرنے کے بعد آپ phpMyAdmin کی مدد سے ڈیٹابیس کو ایکسپورٹ کر کے اس کا SQL کوڈ دیکھ سکتے ہیں۔

  • Numeric یعنی کیلکولیشن والے اعداد محفوظ کرنے والی ڈیٹا ٹائپس
    TINYINT
    INT
    DECIMAL
  • Date & Time یعنی کسی واقعے کی تاریخ اور وقت محفوظ کرنے والی ڈیٹا ٹائپس
    DATE
    TIME
    DATETIME
  • String یعنی عبارتیں محفوظ کرنے والی ڈیٹا ٹائپس
    CHAR
    VARCHAR
    TEXT
    ENUM


Numeric یعنی کیلکولیشن والے اعداد محفوظ کرنے والی ڈیٹا ٹائپس

Numeric ڈیٹا ٹائپ مقرر کرتے وقت SIGNED یا پھر UNSIGNED ایٹری بیوٹ استعمال کیا جا سکتا ہے۔ مثلاً‌ SMALLINT ڈیٹا ٹائپ میں 32768- سے لے کر 32767 تک نمبر محفوظ کرنے کی صلاحیت ہے۔ لیکن فرض کریں کہ آپ کسی کھلاڑی کا اسکور محفوظ کر رہے ہیں، تو اس میں آپ کو منفی ویلیو محفوظ کرنے کی کبھی ضرورت پیش نہیں آئے گی۔ اس لیے آپ SMALLINT ڈیٹا ٹائپ کو UNSIGNED ایٹری بیوٹ کے ساتھ استعمال کر سکتے ہیں۔ یوں اس کی ڈیٹا محفوظ کرنے کی صلاحیت بڑھ کر 65535 ہو جائے گی۔ اگر کسی Numeric ڈیٹا ٹائپ کے لیے ان دونوں میں سے کوئی ایٹری بیوٹ نہ استعمال کیا جائے تو پھر فیلڈ کے لیے ڈیفالٹ کے طور پر SIGNED ایٹری بیوٹ استعمال کیا جاتا ہے۔

مائی ایس کیو ایل کی عام استعمال ہونے والی Numeric ڈیٹا ٹائپس درج ذیل ہیں:


TINYINT

ڈیٹا محفوظ کرنے کی گنجائش:

-128 to 127   SIGNED
0 to 255   UNSIGNED

ڈسک پر جگہ: اس ڈیٹا ٹائپ کی حامل فیلڈ میں محفوظ کیا گیا ڈیٹا ڈسک پر 1 بائٹ جگہ لیتا ہے۔

استعمال: جیسا کہ Tiny Integer کے نام سے ظاہر ہے کہ اس ڈیٹا ٹائپ میں بغیر اعشاریہ کے نمبر محفوظ کیا جا سکتا ہے۔ اس کا ایک عام استعمال On/Off یا پھر Yes/No طرز کی ویلیوز کے لیے کیا جاتا ہے۔ یعنی اگر یہ بتانا مقصود ہو کہ کسی اکاؤنٹ کا اس وقت اسٹیٹس کیا ہے، تو اس کے لیے یہ فیلڈ استعمال کی جا سکتی ہے۔ ایسی صورت میں 0 ویلیو کا مطلب یہ ہوگا کہ اس وقت اکاؤنٹ Inactive ہے۔ جبکہ 1 کا مطلب ہوگا کہ اس وقت اکاؤنٹ Active ہے۔ اسی طرح TINYINT ڈیٹا ٹائپ کو کم نمبروں والے ڈیٹا کے لیے استعمال کیا جا سکتا ہے، مثلاً‌ کسی امتحانی پرچے کے مارکس وغیرہ۔ لیکن اس کے لیے پھر آپ کو اس کا سائز 3 رکھنا ہوگا، اس لیے کہ مارکس تین ہندسوں پر بھی مشتمل ہو سکتے ہیں۔

چنانچہ پی ایچ پی مائی ایڈمن میں TINYINT ڈیٹا ٹائپ والی فیلڈ درج ذیل اسکرین شاٹ کے مطابق ڈیفائن کی جا سکتی ہے۔ اس میں Length کے خانے میں 1 کی جو ویلیو ہے اس کا مطلب یہ ہے کہ اس فیلڈ میں زیادہ سے زیادہ ایک ہندسہ محفوظ کیا جا سکتا ہے۔ یعنی اس فیلڈ میں 0 سے لے کر 9 تک کوئی بھی نمبر محفوظ کیا جا سکتا ہے۔ اگر یہ حد مقرر نہیں کی جائے گی تو پھر TINYINT کی ڈیٹا محفوظ کرنے کی اپنی جو زیادہ سے زیادہ گنجائش ہے وہ استعمال ہوگی۔ جبکہ Default کے خانے میں 0 کا مطلب یہ ہے کہ ایپلی کیشن اس ٹیبل میں ریکارڈ داخل کرتے وقت اگر اس فیلڈ کی ویلیو مہیا نہیں کرے گی تو پھر ڈیٹابیس خود بخود ڈیفالٹ کے طور پر 0 ویلیو اس فیلڈ میں محفوظ کر دے گی۔ عموماً‌ یہ ہوتا ہے کہ کوئی اکاؤنٹ بناتے وقت فورً‌ا ہی اسے فعال نہیں کر دیا جاتا، بلکہ کچھ تصدیق کی جاتی ہے اور پھر اسے فعال کیا جاتا ہے۔ اس کا مطلب یہ ہوا کہ اکاؤنٹ بنانے والے اسکرپٹ میں account_status کی فیلڈ استعمال نہیں کی جائے گی، اس لیے کہ ڈیٹابیس خود ہی اس میں ڈیفالٹ ویلیو محفوظ کر دے گی۔ لیکن اکاؤنٹ کو اپ ڈیٹ کرنے والے اسکرپٹ میں یہ فیلڈ استعمال کی جائے گی تاکہ بعد میں اس اکاؤنٹ کا اسٹیٹس تبدیل کیا جا سکے۔

پی ایچ پی مائی ایڈمن میں ٹائنی انٹ ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


INT

ڈیٹا محفوظ کرنے کی گنجائش:

-2147483648 to 2147483647   SIGNED
0 to 4294967295  UNSIGNED

ڈسک پر جگہ: 4 بائٹس

استعمال: یہ Integer ڈیٹا ٹائپ ہے اور بغیر اعشاریہ والا نمبر محفوظ کرنے کے لیے استعمال کی جاتی ہے۔ ایک عام استعمال اس فیلڈ کا یہ ہے کہ اس کی مدد سے ٹیبل کے ریکارڈز کو منفرد بنایا جاتا ہے۔ ایسی صورت میں جس فیلڈ کے لیے یہ ڈیٹا ٹائپ استعمال کی جا رہی ہو اسے Primary key کے طور پر ڈیفائن کیا جاتا ہے، اور اس پر Auto increment کا ایٹری بیوٹ استعمال کیا جاتا ہے۔

Primary key کا ایک مقصد یہ ہے کہ ٹیبل کے ہر ریکارڈ کی الگ شناخت کے لیے اس فیلڈ کی ویلیو منفرد ہو۔ دوسرا مقصد یہ ہے کہ اگر اس ٹیبل کے کسی ریکارڈ کے ذیلی ریکارڈز کسی دوسرے ٹیبل میں رکھے گئے ہیں، تو پھر ان ریکارڈ کی شناخت اس Primary key والی فیلڈ کی ویلیو کی مدد سے کی جائے گی۔ یعنی بالائی ٹیبل کے کسی ریکارڈ کی Primary key والی فیلڈ میں جو ویلیو ہوگی، ذیلی ٹیبل کی Foreign key والی فیلڈ میں وہی ویلیو ہوگی، یوں دونوں ٹیبلز کا آپس میں تعلق قائم ہو جائے گا۔

ڈیٹابیس کے ہر ریکارڈ کو ایک منفرد ویلیو مہیا کرنا انتہائی ضروری ہے۔ اس لیے کہ کسی بھی ریکارڈ میں تبدیلی کرنے کے لیے ہم اس کی کسی اور ویلیو پر بھروسہ نہیں کر سکتے۔ فرض کریں کہ ڈیٹابیس سے یہ کہا جائے کہ جس ریکارڈ میں بندے کا نام Kamal ہے اس کا نیا فون نمبر 1234567 سیٹ کردو۔ اب ممکن ہے کہ ڈیٹابیس میں اس نام سے ایک سے زیادہ ریکارڈز موجود ہوں، اس لیے ڈیٹابیس ایسے سب ریکارڈز کا فون نمبر تبدیل کر دے گی جن میں شخص کا نام Kamal ہوگا۔ اس صورت میں ہم ایک کے علاوہ ان تمام بندوں کے فون نمبر کھو بیٹھیں گے جن کا نام Kamal ہے۔ اس صورت حال سے بچنے کے لیے ڈیٹابیس کے ہر ریکارڈ کو ایک منفرد نمبر مہیا کیا جاتا ہے۔ اور جب کسی ریکارڈ میں تبدیلی مقصود ہو تو ڈیٹابیس سے یہ کہا جاتا ہے کہ جس ریکارڈ کا نمبر 234 ہے، اس میں یہ فون نمبر تبدیل کر دیا جائے۔

جبکہ Auto increment کا مطلب یہ ہے کہ کوئی بھی ریکارڈ محفوظ کرتے وقت ایپلی کیشن یہ منفرد ویلیو مہیا نہیں کرے گی، بلکہ ڈیٹابیس خود ہی پچھلے ریکارڈ سے ایک نمبر بڑھا کر اس فیلڈ میں محفوظ کر دے۔

چنانچہ ایسی فیلڈ درج ذیل اسکرین شاٹ کے مطابق ڈیفائن کی جا سکتی ہے۔ اس فیلڈ کے لیے Unsigned ایٹری بیوٹ استعمال کرنے کی بدولت اب اس ٹیبل میں 2 ارب کی بجائے 4 ارب ریکارڈز محفوظ کیے جا سکتے ہیں۔ اس کے علاوہ آپ اسکرین شاٹ میں A_I کا چیک باکس دیکھ رہے ہیں، اس سے مراد Auto increment ہے۔

پی ایچ پی مائی ایڈمن میں انٹ ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ

اس کے علاوہ مائی ایس کیو ایل میں SMALLINT اور MEDIUMINT ڈیٹا ٹائپس بھی دستیاب ہیں جو سائز میں INT سے چھوٹی ہیں، انہیں بھی حسب ضرورت استعمال کیا جا سکتا ہے۔


DECIMAL

ڈیٹا محفوظ کرنے کی گنجائش: اعشاریہ سے پہلے والے حصے (Integer) میں زیادہ سے زیادہ 65 ہندسے، جبکہ اعشاریہ کے بعد والے حصے (Fractional part) میں زیادہ سے زیادہ 30 ہندسے محفوظ کیے جا سکتے ہیں۔

ڈسک پر جگہ: ہر 9 ہندسوں کے لیے 4 بائٹس استعمال کی جاتی ہیں، یعنی 18 ہندسوں کے لیے 8 بائٹس استعمال کی جائیں گی۔ اگر محفوظ کیے جانے والے ہندسے 9 پر تقسیم کرنے کے بعد کچھ بچ جائیں، تو پھر ان کی تعداد کے مطابق ان کے لیے 1 سے لے کر 4بائٹس تک استعمال کی جاتی ہیں۔ اس میں اعشاریہ سے پہلے والے، اور اعشاریہ کے بعد والے حصے کو الگ الگ ہینڈل کیا جاتا ہے۔

استعمال: یہ ڈیٹا ٹائپ کوئی بھی ایسی ویلیو محفوظ کرنے کے لیے استعمال کی جا سکتی ہے جس میں اعشاریہ ہو۔ مثلاً‌ کسی چیز کی قیمت، یا نمبروں کی اوسط وغیرہ ۔ اس ڈیٹا ٹائپ کی حامل فیلڈ درج ذیل اسکرین شاٹ کے مطابق ڈیفائن کی جا سکتی ہے۔ اس میں Length کے خانے میں 8,2 کی مدد سے اس فیلڈ کے لیے زیادہ سے زیادہ ڈیٹا کی حد مقرر کی گئی ہے۔ اس کا مطلب یہ ہے کہ اس فیلڈ میں کل 8 اعداد محفوظ کیے جا سکتے ہیں جن میں 2 اعداد اعشاریے کے بھی شامل ہیں۔ یعنی اعشاریے سے پہلے والے حصے میں 6 اعداد، جبکہ اعشاریے کے بعد والے حصے میں 2 اعداد محفوظ کیے جا سکتے ہیں۔

پی ایچ پی مائی ایڈمن میں ڈیسیمل ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ

تمام Numeric ڈیٹا ٹائپس کے لیے یہاں کلک کریں۔


Date & Time یعنی کسی واقعے کی تاریخ اور وقت محفوظ کرنے والی ڈیٹا ٹائپس


DATE

ڈیٹا محفوظ کرنے کی گنجائش:

'1000-01-01' to '9999-12-31'

ڈسک پر جگہ: 3 بائٹس

استعمال: اس ڈیٹا ٹائپ کی مدد سے کسی بھی وقوعے کی تاریخ محفوظ کی جا سکتی ہے، مثلاً‌ کسی کی تاریخ پیدائش وغیرہ۔ MySQL ڈیٹابیس میں تاریخ محفوظ کرنے کا فارمیٹ یوں ہوتا ہے 24-08-1984 یعنی بائیں طرف سے پہلے مکمل سال، پھر مہینہ، اور پھر دن۔ مطلوبہ فیلڈ کے لیے یہ ڈیٹا ٹائپ مقرر کرنے کے لیے درج ذیل اسکرین شاٹ دیکھیں۔

پی ایچ پی مائی ایڈمن میں ڈیٹ ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


TIME

ڈیٹا محفوظ کرنے کی گنجائش:

'-838:59:59' to '838:59:59'

ڈسک پر جگہ: 3 بائٹس

استعمال: یہ ڈیٹا ٹائپ صرف وقت محفوظ کرنے کے لیے استعمال کی جا سکتی ہے۔ اس ڈیٹا ٹائپ والی فیلڈ میں 839 گھنٹے محفوظ کرنے کی گنجائش موجود ہوتی ہے جو تقریباً‌ 35 دن بنتے ہیں۔ اس ڈیٹا ٹائپ کی مدد سے دن کا کوئی وقت بھی محفوظ کیا جا سکتا ہے، اور کسی کام کا دورانیہ بھی محفوظ کیا جا سکتا ہے۔ مثلاً‌ اگر ایک ٹیسٹ میچ روزانہ چھ گھنٹے کے اعتبار سے تقریباً‌ ساڑھے چار دن جاری رہا تو اس کا وقت اس فیلڈ میں یوں محفوظ کیا جا سکتا ہے 27:18:25 یعنی ستائیس گھنٹے، اٹھارہ منٹ، اور پچیس سیکنڈز۔

اور اگر وقت کا کوئی ایسا دورانیہ محفوظ کرنا ہو جو 839 گھنٹے سے زیادہ ہو، تو پھر اس صورت میں دو فیلڈز ڈیفائن کی جا سکتی ہیں۔ ایک میں اس کام کے آغاز کا وقت محفوظ کیا جا سکتا ہے، جبکہ دوسری فیلڈ میں اس کام کے اختتام کا وقت محفوظ کیا جا سکتا ہے۔ اور پھر ایپلی کیشن دوسری فیلڈ کی ویلیو سے پہلی فیلڈ کی ویلیو منفی کر کے وقت کا دورانیہ معلوم کر سکتی ہے۔ لیکن ایسی صورت میں پھر دونوں فیلڈز کی ڈیٹا ٹائپ DATETIME مقرر کرنا ہوگی، تاکہ یہ معلوم کیا جا سکے کہ کس دن اور وقت کو اس کام کا آغاز ہوا، اور کس دن اور وقت کو اس کام کا اختتام ہوا تھا۔

ویسے عام طور پر ایسے وقت کو محفوظ کرنے کے لیے VARCHAR ڈیٹا ٹائپ استعمال کی جاتی ہے جس کی کیلکولیشن کے لیے ڈیٹابیس کا استعمال نہ کرنا ہو۔ یعنی ایسی فیلڈ کی ویلیو پروگرامنگ لینگویج مثلاً PHP میں حاصل کر کے اس کی مدد سے اس پر کیلکولیشنز کی جاتی ہیں۔ آپ شاید جانتے ہوں گے کہ کیلکولیشنز کے لیے پروگرامنگ لینگوئج استعمال کرنے کا فائدہ یہ ہوتا ہے کہ ڈیٹابیس پر اضافی بوجھ نہیں پڑتا۔

پی ایچ پی مائی ایڈمن میں ٹائم ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


DATETIME

ڈیٹا محفوظ کرنے کی گنجائش:

'1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'

ڈسک پر جگہ:
5 بائٹس + اعشاریہ کے بعد سیکنڈز والے حصے کے لیے 3 بائٹس تک

استعمال: اس میں ڈیٹا ٹائپ کی مدد سے کسی بھی وقوعے کی تاریخ اور وقت دونوں محفوظ کیے جاتے ہیں اور پھر ضرورت پڑنے پر صرف وقت، صرف تاریخ، یا پھر دونوں حاصل کر کے دکھائے جا سکتے ہیں۔ مثلاً‌ کوئی اکاؤنٹ کس دن اور کس وقت بنایا گیا تھا، یا کسی مضمون میں کس دن اور کس وقت تبدیلی کی گئی تھی، یا کوئی فلائیٹ کس دن اور کس وقت اپنی منزل پر پہنچی تھی، وغیرہ۔

فیلڈ ڈیفائن کرتے وقت ڈیفالٹ ویلیو کے طور پر CURRENT_TIMESTAMP بھی منتخب کی جا سکتی ہے۔ ایسا کرنے سے یہ ہوگا کہ ٹیبل میں نیا ریکارڈ داخل ہوتے وقت ڈیٹابیس خود ہی موجودہ وقت اور تاریخ اس فیلڈ میں محفوظ کر دے گی۔ لیکن اس میں یہ خیال رکھنے کی ضرورت ہے کہ آپ کو تاریخ اور وقت صارف کے ملک کے چاہئیں یا پھر اس ملک کے جہاں ڈیٹابیس سرور موجود ہے۔ کیونکہ عین ممکن ہے ویب ایپلی کیشن کا صارف امریکہ میں ہو جبکہ ڈیٹابیس سرور چائنہ میں موجود ہو۔ اگر آپ کو صارف کے ملک کی تاریخ اور وقت درکار ہیں تو پھر بذریعہ ایپلی کیشن صارف کے ٹائم زون کے مطابق یہ ویلیوز حاصل کرنا ہوں گی، اور پھر ایپلی کیشن اپنے اسکرپٹ کے ذریعے یہ ویلیوز ڈیٹابیس میں محفوظ کرے گی۔

اس ڈیٹا ٹائپ والی فیلڈ میں تاریخ اور وقت اس فارمیٹ میں محفوظ کیے جا سکتے ہیں 19:45:35 25-09-2014 یعنی بائیں طرف سے ویلیوز کی ترتیب یوں ہے: سال، مہینہ، دن، گھنٹہ، منٹ اور سیکنڈ۔اور آپ دیکھ سکتے ہیں کہ تاریخ کے اجزاء کی تقسیم کے لیے ڈیش، جبکہ وقت کے اجزاء کی تقسیم کے لیے کولن استعمال کیا جاتا ہے۔ جبکہ تاریخ اور وقت دونوں کے درمیان ایک اسپیس استعمال کی جاتی ہے۔

اس ڈیٹا ٹائپ پر مشتمل فیلڈ درج ذیل اسکرین شاٹ کے مطابق ڈیفائن کی جا سکتی ہے۔

پی ایچ پی مائی ایڈمن میں ٹائم اسٹیمپ ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ

تمام Date & Time کی ڈیٹا ٹائپس کے لیے یہاں کلک کریں۔


String یعنی عبارتیں محفوظ کرنے والی ڈیٹا ٹائپس


CHAR

ڈیٹا محفوظ کرنے کی گنجائش:

0 to 255

ڈسک پر جگہ: فیلڈ کا جو سائز مقرر کیا گیا ہو، اتنے بائٹس۔ اگر فیلڈ کا سائز 4 رکھا گیا ہے لیکن اس میں abc یعنی تین حروف کا ڈیٹا محفوظ کیا گیا ہے، تو ڈسک پر یہ ڈیٹا محفوظ ہونے کے لیے 4 بائٹس ہی جگہ لے گا۔

استعمال: اس ڈیٹا ٹائپ کا استعمال وہاں کرنا چاہیے جہاں یقینی طور پر معلوم ہو کہ فیلڈ میں ایک خاص تعداد میں حروف محفوظ کیے جائیں گے۔ اس ڈیٹا ٹائپ کا ایک استعمال جنس کے تعین کے لیے کیا جا سکتا ہے۔ یعنی فیلڈ کا سائز 1 رکھا جائے اور اس میں M یا F ویلیوز محفوظ کی جائیں۔ اس میں M سے مراد Male ہو اور F سے مراد Female ہو۔

پی ایچ پی مائی ایڈمن میں چار یعنی کیریکٹرز ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


VARCHAR

ڈیٹا محفوظ کرنے کی گنجائش:

0 to 65,535

ڈسک پر جگہ: جیسا کہ اس کے نام Variable Characters سے ظاہر ہے، اس ڈیٹا ٹائپ والی فیلڈ میں جتنا ڈیٹا محفوظ کیا جاتا ہے یہ ڈسک پر اسی اعتبار سے جگہ لیتا ہے۔ اگر فیلڈ کا سائز 255 سے کم رکھا گیا ہو اور اس میں abcd کے حروف محفوظ کیے جائیں تو یہ ڈسک پر 5 بائٹس جگہ لیں گے۔ ایک اضافی بائٹ کا مقصد اس ڈیٹا میں موجود حروف کی تعداد محفوظ کرنا ہے۔ اور اگر فیلڈ کا سائز 255 سے زیادہ رکھا گیا ہو اور اس میں abcd کے حروف محفوظ کیے جائیں، تو پھر یہ ڈسک پر 6 بائٹس جگہ لیں گے۔ یعنی اصل ڈیٹا کے ساتھ اس کے حروف کی تعداد محفوظ کرنے کے لیے دو اضافی بائٹس محفوظ کی جائیں گی۔

استعمال: یہ ڈیٹا ٹائپ غالباً‌ سب سے زیادہ استعمال کی جاتی ہے، کیونکہ اس میں ہر قسم کا عمومی ڈیٹا محفوظ کیا جاتا ہے۔ مثلاً‌ نام، ایڈریس، ای میل، پاس ورڈ، فون نمبر، اور وضاحتی عبارتیں وغیرہ۔ درج ذیل اسکرین شاٹ میں دیکھا جا سکتا ہے کہ دو مختلف فیلڈز کے لیے یہ ڈیٹا ٹائپ استعمال کی گئی ہے۔ ایک کے لیے زیادہ سے زیادہ ڈیٹا کی حد 100، جبکہ دوسری کے لیے 1000 مقرر کی گئی ہے۔

پی ایچ پی مائی ایڈمن میں وارچار یعنی ویری ایبل کیریکٹرز ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


TEXT

ڈیٹا محفوظ کرنے کی گنجائش:

0 to 65,535

ڈسک پر جگہ: محفوظ کیے گئے حروف کے بائٹس + 2 بائٹس۔

استعمال: اگرچہ اس ڈیٹا ٹائپ کی گنجائش VARCHAR کے برابر ہے، لیکن عام طور پر VARCHAR کو چھوٹی عبارتوں کے لیے استعمال کیا جاتا ہے، جبکہ بڑی عبارتوں مثلاً‌ پوسٹ یا مضمون وغیرہ کے لیے TEXT کو ترجیح دی جاتی ہے۔اس ڈیٹا ٹائپ کی حامل فیلڈ کی زیادہ سے زیادہ ڈیٹا کی حد مقرر نہیں کی جا سکتی۔ اسی طرح اگر بہت بڑی عبارتیں محفوظ کرنے کی ضرورت ہو جن کے لیے TEXT کی گنجائش ناکافی ہو، تو پھر حسب ضرورت MEDIUMTEXT یا پھر LONGTEXT ڈیٹا ٹائپ استعمال کی جا سکتی ہے۔

پی ایچ پی مائی ایڈمن میں ٹیکسٹ ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ


ENUM

ڈیٹا محفوظ کرنے کی گنجائش:

0 to 65,535 values

ڈسک پر جگہ: اس فیلڈ کا ڈیٹا ڈسک پر 1 یا 2 بائٹس جگہ لیتا ہے، جس کا انحصار فیلڈ میں محفوظ کی گئی ویلیوز پر ہے۔ اس فیلڈ کی ویلیوز محفوظ کرنے سے پہلے Integer میں تبدیل کی جاتی ہیں، اور ویلیوز حاصل کرنے پر دوبارہ String میں تبدیل کی جاتی ہیں۔

استعمال: اس ڈیٹا ٹائپ کی مدد سے فیلڈ کے لیے چند خاص ویلیوز متعین جا سکتی ہیں۔ مثلاً‌ اگر فیلڈ کے لیے Large, Medium, Smallکی ویلیوز متعین کر دی جائیں تو پھر اس فیلڈ میں انہی میں سے کوئی ویلیو محفوظ کی جا سکتی ہے، ان کے علاوہ کوئی اور ویلیو محفوظ نہیں کی جا سکتی۔

پی ایچ پی مائی ایڈمن میں اینم یعنی اینومریشن ڈیٹا ٹائپ والی فیلڈ بنانے کا طریقہ

تمام String ڈیٹا ٹائپس کے لیے یہاں کلک کریں۔

Categories: