তথ্য প্রকারের ভূমিকা
একটি কলামের ডেটা টাইপ নির্ধারণ করে যে কলামটি কী মান রাখতে পারে: পূর্ণসংখ্যা, অক্ষর, অর্থ, তারিখ এবং সময়, বাইনারি এবং আরও অনেক কিছু।
মাইএসকিউএল ডেটা টাইপস (সংস্করণ 8.0)
একটি ডাটাবেস টেবিলের প্রতিটি কলামের একটি নাম এবং একটি ডেটা টাইপ থাকতে হবে।
একটি টেবিল তৈরি করার সময়, একজন এসকিউএল ডেভেলপারকে অবশ্যই সিদ্ধান্ত নিতে হবে যে প্রতিটি কলামের মধ্যে কোন ধরনের ডেটা সংরক্ষণ করা হবে। প্রতিটি কলামের ভিতরে কী ধরনের ডেটা প্রত্যাশিত তা বোঝার জন্য একটি ডেটা টাইপ SQL এর জন্য একটি নির্দেশিকা এবং এটি সংরক্ষিত ডেটার সাথে SQL কীভাবে ইন্টারঅ্যাক্ট করবে তাও শনাক্ত করে।
MySQL-এ তিনটি প্রধান ডেটা প্রকার রয়েছে: স্ট্রিং, সংখ্যা এবং তারিখ এবং সময়।
স্ট্রিং ডেটা প্রকার
| ডেটা টাইপ | ব্যাখ্যা |
|---|---|
| CHAR(size) | একটি নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং (অক্ষর, সংখ্যা এবং বিশেষ অক্ষর থাকতে পারে)। আকারের প্যারামিটারটি অক্ষরে কলামের দৈর্ঘ্য নির্দিষ্ট করে - 0 থেকে 255 পর্যন্ত হতে পারে। ডিফল্ট হল 1 |
| VARCHAR(size) | একটি পরিবর্তনশীল দৈর্ঘ্যের স্ট্রিং (অক্ষর, সংখ্যা এবং বিশেষ অক্ষর থাকতে পারে)। আকারের প্যারামিটারটি অক্ষরে সর্বাধিক কলামের দৈর্ঘ্য নির্দিষ্ট করে - 0 থেকে 65535 পর্যন্ত হতে পারে |
| BINARY(size) | CHAR() এর মত, কিন্তু বাইনারি বাইট স্ট্রিং সঞ্চয় করে। সাইজ প্যারামিটার বাইটে কলামের দৈর্ঘ্য নির্দিষ্ট করে। ডিফল্ট হল 1 |
| VARBINARY(size) | VARCHAR() এর মত, কিন্তু বাইনারি বাইট স্ট্রিং সঞ্চয় করে। সাইজ প্যারামিটার বাইটে সর্বোচ্চ কলামের দৈর্ঘ্য নির্দিষ্ট করে। |
| TINYBLOB | BLOB-এর জন্য (বাইনারী বড় বস্তু)। সর্বোচ্চ দৈর্ঘ্য: 255 বাইট |
| TINYTEXT | সর্বাধিক 255 অক্ষরের দৈর্ঘ্য সহ একটি স্ট্রিং ধরে |
| TEXT(size) | সর্বাধিক 65,535 বাইটের দৈর্ঘ্য সহ একটি স্ট্রিং ধরে |
| BLOB(size) | BLOB-এর জন্য (বাইনারী বড় বস্তু)। 65,535 বাইট পর্যন্ত ডেটা ধারণ করে |
| MEDIUMTEXT | সর্বাধিক দৈর্ঘ্য 16,777,215 অক্ষরের একটি স্ট্রিং ধরে |
| MEDIUMBLOB | BLOB-এর জন্য (বাইনারী বড় বস্তু)। 16,777,215 বাইট পর্যন্ত ডেটা ধারণ করে |
| LONGTEXT | সর্বাধিক দৈর্ঘ্য 4,294,967,295 অক্ষরের একটি স্ট্রিং ধারণ করে৷ |
| LONGBLOB | BLOB-এর জন্য (বাইনারী বড় বস্তু)। 4,294,967,295 বাইট পর্যন্ত ডেটা ধারণ করে |
| ENUM(val1, val2, val3, ...) | একটি স্ট্রিং অবজেক্টে সম্ভাব্য মানের তালিকা থেকে নির্বাচিত শুধুমাত্র একটি মান থাকতে পারে। একটি ENUM তালিকা 65535 মান পর্যন্ত তালিকাভুক্ত করতে পারে। তালিকায় নেই এমন একটি মান সন্নিবেশ করা হলে, একটি খালি মান সন্নিবেশ করা হয়। মানগুলি আপনি যে ক্রমে লিখবেন সে অনুসারে সাজানো হয়েছে |
| SET(val1, val2, val3, ...) | একটি স্ট্রিং অবজেক্ট, যাতে 0 বা তার বেশি মান থাকতে পারে, সম্ভাব্য মানের তালিকা থেকে নির্বাচিত। একটি SET তালিকা 64টি মান পর্যন্ত তালিকাভুক্ত করতে পারে |
সংখ্যাসূচক তথ্য প্রকার
| ডেটা টাইপ | ব্যাখ্যা |
|---|---|
| BIT(size) | একটি বিট মান টাইপ. একটি মানের জন্য বিটের সংখ্যা স্কেলে নির্দিষ্ট করা হয়। আকারের প্যারামিটারটি 1 থেকে 64 পর্যন্ত একটি মান ধরে রাখতে পারে৷ আকারের জন্য ডিফল্ট মান হল 1৷ |
| TINYINT(size) | ক্ষুদ্রতম পূর্ণসংখ্যা। স্বাক্ষরিত পরিসর হল -128 থেকে 127৷ স্বাক্ষরবিহীন পরিসর হল 0 থেকে 255৷ আকারের প্যারামিটার সর্বাধিক প্রদর্শন প্রস্থ (যা 255) নির্দিষ্ট করে৷ |
| BOOL | শূন্যকে মিথ্যা, অশূন্য মানকে সত্য বলে মনে করা হয়। |
| BOOLEAN | BOOL এর সমান |
| SMALLINT(size) | একটি ছোট পূর্ণসংখ্যা। স্বাক্ষরিত পরিসর হল -32768 থেকে 32767৷ স্বাক্ষরবিহীন পরিসর হল 0 থেকে 65535৷ আকারের প্যারামিটার সর্বাধিক প্রদর্শন প্রস্থ (যা 255) নির্দিষ্ট করে৷ |
| MEDIUMINT(size) | একটি মাঝারি পূর্ণসংখ্যা। স্বাক্ষরিত পরিসর হল -8388608 থেকে 8388607৷ স্বাক্ষরবিহীন পরিসর হল 0 থেকে 16777215৷ আকারের প্যারামিটার সর্বাধিক প্রদর্শন প্রস্থ (যা 255) নির্দিষ্ট করে৷ |
| INT(size) | একটি মাঝারি পূর্ণসংখ্যা। স্বাক্ষরিত পরিসর হল -2147483648 থেকে 2147483647৷ স্বাক্ষরবিহীন পরিসর হল 0 থেকে 4294967295৷ আকারের প্যারামিটার সর্বোচ্চ প্রদর্শন প্রস্থ (যা 255) নির্দিষ্ট করে৷ |
| INTEGER(size) | INT(আকার) এর সমতুল্য। |
| BIGINT(size) | একটি বড় পূর্ণসংখ্যা। স্বাক্ষরিত পরিসর -9223372036854775808 থেকে 9223372036854775807। স্বাক্ষরবিহীন পরিসর হল 0 থেকে 18446744073709551615। আকারের প্যারামিটার সর্বোচ্চ প্রদর্শনের প্রস্থ নির্দিষ্ট করে (যা 5)। |
| FLOAT(size, d) | একটি ফ্লোটিং পয়েন্ট নম্বর। অঙ্কের মোট সংখ্যা স্কেলে নির্দেশিত হয়। d প্যারামিটারে দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করা আছে। এই সিনট্যাক্সটি MySQL 8.0.17-এ বাতিল করা হয়েছে এবং ভবিষ্যতে MySQL সংস্করণে সরানো হবে |
| FLOAT(p) | একটি ফ্লোটিং পয়েন্ট নম্বর। MySQL ফলস্বরূপ ডেটা টাইপের জন্য FLOAT বা DOUBLE ব্যবহার করবে কিনা তা নির্ধারণ করতে p মান ব্যবহার করে। যদি p 0 এবং 24-এর মধ্যে হয়, ডেটা টাইপ FLOAT() এ পরিবর্তিত হয়। যদি p 25 এবং 53 এর মধ্যে হয়, ডেটা টাইপ দ্বিগুণ হয়ে যায়() |
| DOUBLE(size, d) | একটি সাধারণ-আকারের ফ্লোটিং-পয়েন্ট সংখ্যা। অঙ্কের মোট সংখ্যা স্কেলে নির্দেশিত হয়। d প্যারামিটারে দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করা আছে |
| DOUBLE PRECISION(size, d) | |
| DECIMAL(size, d) | একটি নিখুঁত নির্দিষ্ট-বিন্দু সংখ্যা। অঙ্কের মোট সংখ্যা স্কেলে নির্দেশিত হয়। d প্যারামিটারে দশমিক বিন্দুর পরে অঙ্কের সংখ্যা নির্দিষ্ট করা আছে। আকারের জন্য সর্বাধিক সংখ্যা হল 65৷ d-এর জন্য সর্বাধিক সংখ্যা হল 30৷ আকারের জন্য ডিফল্ট মান হল 10৷ d-এর জন্য ডিফল্ট মান হল 0৷ |
| DEC(size, d) | DECIMAL(size,d) এর সমতুল্য। |
দ্রষ্টব্য:
সমস্ত সাংখ্যিক ডেটা প্রকারের একটি অতিরিক্ত বিকল্প থাকতে পারে: আনসাইনড বা জিরোফিল৷ আপনি যদি আনসাইনড বিকল্প যোগ করেন, মাইএসকিউএল কলামের জন্য নেতিবাচক মান নিষিদ্ধ করে। আপনি যদি ZEROFILL বিকল্পটি যোগ করেন, MySQL স্বয়ংক্রিয়ভাবে কলামে আনসাইনড অ্যাট্রিবিউট যোগ করে।
তারিখ এবং সময় ডেটা প্রকার
| ডেটা টাইপ | ব্যাখ্যা |
|---|---|
| DATE | একটি তারিখ। বিন্যাস: YYYY-MM-DD। সমর্থিত পরিসর হল '1000-01-01' থেকে '9999-12-31' |
| DATETIME(fsp) | একটি তারিখ এবং সময়ের সমন্বয়। বিন্যাস: YYYY-MM-DD hh:mm:ss। সমর্থিত পরিসর হল '1000-01-01 00:00:00' থেকে '9999-12-31 23:59:59'৷ স্বয়ংক্রিয় সূচনা পেতে এবং বর্তমান তারিখ এবং সময়ের জন্য আপডেট করার জন্য কলামের সংজ্ঞাতে ডিফল্ট এবং অন আপডেট যোগ করা হচ্ছে |
| TIMESTAMP(fsp) | একটি টাইম স্ট্যাম্প। ইউনিক্স যুগ ('1970-01-01 00:00:00' UTC) থেকে TIMESTAMP মানগুলি সেকেন্ডের সংখ্যা হিসাবে সংরক্ষণ করা হয়। বিন্যাস: YYYY-MM-DD hh:mm:ss। সমর্থিত পরিসর হল '1970-01-01 00:00:01' UTC থেকে '2038-01-09 03:14:07' UTC। বর্তমান তারিখ এবং সময়ের জন্য স্বয়ংক্রিয় সূচনা এবং আপডেট করা DEFAULT CURRENT_TIMESTAMP এবং ON UPDATE CURRENT_TIMESTAMP ব্যবহার করে কলামের সংজ্ঞায় উল্লেখ করা যেতে পারে। |
| TIME(fsp) | একটি সময় বিন্যাস: hh:mm:ss। সমর্থিত পরিসর হল '-838:59:59' থেকে '838:59:59' |
| YEAR | চার অঙ্কের বিন্যাসে একটি বছর। চার-সংখ্যার বিন্যাসে অনুমোদিত মান: 1901 থেকে 2155, এবং 0000৷ |
দ্রষ্টব্য:
MySQL 8.0 দুই-সংখ্যার বিন্যাসে বছর সমর্থন করে না।