📋 বিষয়সূচী (Table of Contents)

01

Data Type কেন দরকার?

⏱ ১৫ মিনিট
🧑‍🏫 কল্পনা করো

একটা স্কুলের অফিসে আলাদা আলাদা ড্রয়ার আছে — একটায় শিক্ষার্থীর আইডি কার্ড, একটায় বই, একটায় টাকা, একটায় সার্টিফিকেট রাখা হয়।

🪪
আইডি কার্ড
📚
বই
💵
টাকা
📜
সার্টিফিকেট

❓ সব কিছু কি একই ড্রয়ারে রাখা যায়?

রাখা যায়, কিন্তু তখন টাকার মধ্যে বই খুঁজে পাওয়া দুঃস্বপ্ন হয়ে যাবে।

❓ এতে কী সমস্যা হবে?

জিনিস হারিয়ে যাওয়া, ভুল জিনিস তুলে ফেলা, সময় নষ্ট হওয়া।

ঠিক এই একই কারণে, ডেটাবেজেও প্রতিটা কলামকে আগে থেকেই বলে দিতে হয় সেখানে কোন ধরনের তথ্য থাকবে — সংখ্যা, লেখা, তারিখ, নাকি হ্যাঁ/না। এটাই SQL Data Type

💡 বাস্তব সমস্যা যদি Data Type ঠিক না থাকে

একজন শিক্ষার্থীর নাম কি যোগ-বিয়োগ করা যায়? না। একটা ফোন নম্বরকে কি সংখ্যা হিসেবে গণনা করা উচিত? না, কারণ শুরুতে ০ থাকতে পারে। প্রতিটা ডেটার নিজস্ব প্রকৃতি অনুযায়ী সঠিক Data Type বেছে নিলে তবেই ডেটাবেজ নির্ভুল ও দ্রুত কাজ করে।

Real-world Data
Choose Data Type
Store Correctly
Reliable Database
02

Data Type কী?

⏱ ১৫ মিনিট

সংজ্ঞা: Data Type হলো একটা নিয়ম, যা নির্ধারণ করে একটা কলামে কী ধরনের তথ্য (সংখ্যা, লেখা, তারিখ ইত্যাদি) রাখা যাবে, তা কতটুকু জায়গা নেবে, এবং তার ওপর কী ধরনের অপারেশন (যোগ, তুলনা) করা যাবে।

কেন গুরুত্বপূর্ণ:

প্রভাবব্যাখ্যা
সংরক্ষণ (Storage)সঠিক Data Type কম জায়গা নেয়, ভুল টাইপ অপ্রয়োজনীয় জায়গা নষ্ট করে
গতি (Speed)সঠিক টাইপে খোঁজা ও হিসাব করা দ্রুত হয়
সঠিকতা (Accuracy)ভুল টাইপ ব্যবহার করলে ভুল হিসাব বা ভুল ফলাফল আসতে পারে
ডেটাসঠিক Data Typeকারণ
শিক্ষার্থীর নামVARCHARএটা লেখা, গণনা করার প্রয়োজন নেই
বয়সINTএটা পূর্ণসংখ্যা, হিসাব-নিকাশ করা যেতে পারে
GPADECIMAL/FLOATএটা দশমিক সংখ্যা
জন্মতারিখDATEএটা একটা নির্দিষ্ট বিন্যাসের তারিখ
ফি পরিশোধ হয়েছে কিনাBOOLEANএটা শুধু হ্যাঁ/না
03

সাংখ্যিক (Numeric) Data Type

⏱ ২৫ মিনিট

পূর্ণসংখ্যা (Integer) ধরনসমূহ

এদের মধ্যে পার্থক্য হলো এরা কত বড় সংখ্যা রাখতে পারে এবং কতটুকু জায়গা নেয়।

টাইপজায়গা নেয়মোটামুটি রেঞ্জ (ধারণাগত)বাস্তব উদাহরণ
TINYINTখুবই কমছোট সংখ্যা (০-২৫৫ এর কাছাকাছি)বয়স, ছোট কাউন্ট
SMALLINTকমমাঝারি ছোট সংখ্যাপ্রোডাক্ট কোয়ান্টিটি
MEDIUMINTমাঝারিমাঝারি সংখ্যাশহরের জনসংখ্যা
INTস্ট্যান্ডার্ডবড় সংখ্যাশিক্ষার্থী আইডি, সাধারণ গণনা
BIGINTবেশিঅত্যন্ত বড় সংখ্যাব্যাংক ট্রানজেকশন আইডি, জনসংখ্যা গণনা
💡 কখন কোনটা বেছে নেবো

শুধু "বয়স" রাখতে হলে TINYINT-ই যথেষ্ট (কারণ বয়স কখনো অনেক বড় সংখ্যা হয় না), কিন্তু একটা দেশের মোট জনসংখ্যা রাখতে হলে BIGINT দরকার হতে পারে। ছোট প্রয়োজনে বড় টাইপ ব্যবহার করলে অপ্রয়োজনীয় জায়গা নষ্ট হয়।

দশমিক সংখ্যা (Decimal Numbers)

টাইপবৈশিষ্ট্যউদাহরণ
FLOATআনুমানিক দশমিক মান, দ্রুত কিন্তা সামান্য অনির্ভুল হতে পারেবৈজ্ঞানিক পরিমাপ
DOUBLEFLOAT-এর চেয়ে বেশি নির্ভুল, কিন্তু বেশি জায়গা নেয়উচ্চ-নির্ভুলতার পরিমাপ
DECIMALসম্পূর্ণ নির্ভুল, টাকার হিসাবের জন্য সেরাপ্রোডাক্টের দাম, ব্যাংক ব্যালেন্স
⚠️ গুরুত্বপূর্ণ সতর্কতা: টাকার হিসাবে কখনো FLOAT ব্যবহার করা উচিত না, কারণ এটা মাঝে মাঝে সামান্য ভুল দশমিক মান দিতে পারে (যেমন ১০.০০ টাকার বদলে ৯.৯৯৯৯৯৯)। টাকার জন্য সবসময় DECIMAL ব্যবহার করা উচিত।
💡 উদাহরণ

প্রোডাক্টের দাম রাখতে DECIMAL(10,2) ব্যবহার হয় — এর মানে সর্বোচ্চ ১০ ডিজিট রাখা যাবে, যার মধ্যে ২টা দশমিকের পরে।

SQL উদাহরণ
price DECIMAL(10,2), gpa FLOAT, scientific_value DOUBLE
04

লেখা (String) Data Type

⏱ ২০ মিনিট
টাইপবৈশিষ্ট্যউদাহরণ
CHAR(n)ফিক্সড দৈর্ঘ্য — সবসময় n অক্ষরের জায়গা নেয়, কম লিখলেও বাকিটা ফাঁকা থাকেদেশের কোড (যেমন "BD")
VARCHAR(n)ভ্যারিয়েবল দৈর্ঘ্য — যতটুকু লেখা হয় ততটুকুই জায়গা নেয়, সর্বোচ্চ n পর্যন্তনাম, ঠিকানা
TEXTঅনেক বড় লেখার জন্য (কয়েক হাজার অক্ষর পর্যন্ত)প্রোডাক্ট বর্ণনা
LONGTEXTঅত্যন্ত বড় লেখার জন্য (কোটি অক্ষর পর্যন্ত)একটা সম্পূর্ণ বইয়ের লেখা

CHAR বনাম VARCHAR

💡 উপমা

CHAR অনেকটা একটা নির্দিষ্ট মাপের বাক্সের মতো — সবসময় একই আকার, ভেতরে কম জিনিস থাকলেও বাক্সের আকার বদলায় না। VARCHAR অনেকটা একটা প্রসারণযোগ্য ব্যাগের মতো — যতটুকু জিনিস, ততটুকুই জায়গা নেয়।

বিষয়CHARVARCHAR
দৈর্ঘ্যসবসময় নির্দিষ্টপ্রয়োজন অনুযায়ী পরিবর্তনশীল
জায়গা ব্যবহারনির্দিষ্ট মাপ, ছোট মান হলেও একই জায়গা নেয়প্রয়োজন অনুযায়ী জায়গা নেয়, সাধারণত সাশ্রয়ী
গতিনির্দিষ্ট দৈর্ঘ্যের ডেটায় সামান্য দ্রুত হতে পারেসাধারণ ব্যবহারে ভালো ভারসাম্য
উপযুক্ত ব্যবহারসবসময় একই দৈর্ঘ্যের ডেটা (যেমন দেশের কোড)পরিবর্তনশীল দৈর্ঘ্যের ডেটা (যেমন নাম)
SQL উদাহরণ
country_code CHAR(2), name VARCHAR(50), description TEXT
ইন্টারঅ্যাক্টিভ ল্যাব

CHAR vs VARCHAR — স্টোরেজ দেখো

টেক্সট লিখে CHAR(10) ও VARCHAR(10)-এ কীভাবে জায়গা নেয় তা তুলনা করো।

05

তারিখ ও সময় (Date & Time) Data Type

⏱ ১৫ মিনিট
টাইপরাখেবিন্যাসউদাহরণ
DATEশুধু তারিখYYYY-MM-DDজন্মতারিখ, পরীক্ষার তারিখ
TIMEশুধু সময়HH:MM:SSলগইন সময়
DATETIMEতারিখ ও সময় একসাথেYYYY-MM-DD HH:MM:SSঅর্ডার করার মুহূর্ত
TIMESTAMPতারিখ ও সময়, সাধারণত স্বয়ংক্রিয়ভাবে আপডেট হয়YYYY-MM-DD HH:MM:SSরেকর্ড শেষ কবে পরিবর্তিত হলো
YEARশুধু বছরYYYYপাসের সাল
💡 DATE vs DATETIME vs TIMESTAMP

জন্মতারিখের জন্য শুধু DATE যথেষ্ট (সময় জানার দরকার নেই)। কিন্তু একটা অর্ডার ঠিক কোন মুহূর্তে হয়েছে তা জানতে DATETIME বা TIMESTAMP দরকার। TIMESTAMP প্রায়ই স্বয়ংক্রিয়ভাবে "এই রেকর্ড শেষ কখন পরিবর্তন হয়েছে" তা ট্র্যাক করতে ব্যবহার হয়।

SQL উদাহরণ
date_of_birth DATE, login_time TIME, order_datetime DATETIME, last_updated TIMESTAMP, passing_year YEAR

🎂 জন্মদিন

DATE ব্যবহার করা উচিত

🔑 লগইন সময়

TIME বা DATETIME ব্যবহার করা উচিত

📝 পরীক্ষার তারিখ

DATE ব্যবহার করা উচিত

🛒 অর্ডার সময়

DATETIME ব্যবহার করা উচিত

06

অন্যান্য সাধারণ Data Type

⏱ ১০ মিনিট

✅ BOOLEAN

রাখে: শুধু TRUE/FALSE (হ্যাঁ/না)।

উদাহরণ

ফি পরিশোধ হয়েছে কিনা, অ্যাকাউন্ট সক্রিয় কিনা।

📋 ENUM

রাখে: আগে থেকে নির্ধারিত কয়েকটা নির্দিষ্ট মানের মধ্যে একটা।

উদাহরণ

লিঙ্গ ('Male', 'Female', 'Other'), সাইজ ('Small', 'Medium', 'Large')।

SQL উদাহরণ
gender ENUM('Male', 'Female', 'Other')

🖼️ BLOB (ধারণাগত)

রাখে: বাইনারি ডেটা, যেমন ছবি, অডিও বা ফাইল সরাসরি ডেটাবেজে।

উদাহরণ

শিক্ষার্থীর প্রোফাইল ছবি সরাসরি ডেটাবেজে সংরক্ষণ (যদিও বাস্তবে প্রায়ই আলাদা ফাইল স্টোরেজ ব্যবহার করা হয়)।

🗂️ JSON (ধারণাগত)

রাখে: কাঠামোবদ্ধ কিন্তু নমনীয় তথ্য, যেখানে প্রতিটা রেকর্ডে ভিন্ন ভিন্ন ফিল্ড থাকতে পারে।

উদাহরণ

একটা প্রোডাক্টের বিভিন্ন ধরনের অতিরিক্ত বৈশিষ্ট্য (রঙ, সাইজ, ওজন) একসাথে নমনীয়ভাবে রাখা।

07

সঠিক Data Type বেছে নেওয়া

⏱ ১৫ মিনিট
📖 গল্প

আমরা একটা Students টেবিল ডিজাইন করবো — প্রতিটা কলামের জন্য সঠিক Data Type বেছে নেবো।

কলামসঠিক Data Typeকারণ
Student IDINT (AUTO_INCREMENT)পূর্ণসংখ্যা, স্বয়ংক্রিয়ভাবে বাড়তে পারে
NameVARCHAR(50)পরিবর্তনশীল দৈর্ঘ্যের লেখা
GenderENUM('Male','Female','Other')নির্দিষ্ট কয়েকটা মানের একটা
Date of BirthDATEশুধু তারিখ, সময় দরকার নেই
GPADECIMAL(3,2)নির্ভুল দশমিক সংখ্যা (যেমন ৫.০০)
EmailVARCHAR(100)পরিবর্তনশীল দৈর্ঘ্যের লেখা
Phone NumberVARCHAR(15)শুরুতে ০ থাকতে পারে, গণনার প্রয়োজন নেই
Admission DateDATEশুধু তারিখ
IsActiveBOOLEANহ্যাঁ/না মান
সম্পূর্ণ SQL
CREATE TABLE Students ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, gender ENUM('Male', 'Female', 'Other'), date_of_birth DATE, gpa DECIMAL(3,2), email VARCHAR(100), phone VARCHAR(15), admission_date DATE, is_active BOOLEAN DEFAULT TRUE );
ইন্টারঅ্যাক্টিভ ল্যাব

Type Matcher — সঠিক Data Type বেছে নাও

প্রতিটা কলাম সিনারিওর জন্য সঠিক টাইপ ট্যাপ করো।

ইন্টারঅ্যাক্টিভ ল্যাব

Wrong-type Trap — ফোন নম্বর INT না VARCHAR?

ফোন নম্বর INT হিসেবে রাখলে কী ভেঙে যায়, নিজে চেষ্টা করে দেখো।

08

MySQL Workbench প্র্যাকটিক্যাল সেশন

⏱ প্র্যাকটিক্যাল

ধাপ ১: Database তৈরি

CREATE DATABASE SchoolDB; USE SchoolDB;

ধাপ ২: বিভিন্ন Data Type সহ Students টেবিল তৈরি

CREATE TABLE Students ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), gpa DECIMAL(3,2), admission_date DATE, is_active BOOLEAN );
আউটপুট
Query OK, 0 rows affected. (টেবিল তৈরি হয়েছে)

ধাপ ৩: নমুনা রেকর্ড যোগ করা

INSERT INTO Students (name, gpa, admission_date, is_active) VALUES ('নাবিলা', 4.85, '2026-01-15', TRUE);
আউটপুট
1 row inserted.

ধাপ ৪: টেবিলের কাঠামো দেখা

DESCRIBE Students;
আউটপুট
FieldType
student_idint
namevarchar(50)
gpadecimal(3,2)
admission_datedate
is_activetinyint(1)

ব্যাখ্যা: লক্ষ্য করো, MySQL-এ BOOLEAN আসলে ভেতরে ভেতরে tinyint(1) হিসেবে সংরক্ষিত হয় — TRUE মানে ১, FALSE মানে ০।

ধাপ ৫: ডেটা দেখা

SELECT * FROM Students;
আউটপুট
student_idnamegpaadmission_dateis_active
1নাবিলা4.852026-01-151
⚠️ সাধারণ শুরুর ভুল:
  • DECIMAL(3,2)-এ ৫.০০-এর বেশি মান দেওয়ার চেষ্টা করলে এরর আসতে পারে (সর্বোচ্চ ৩ ডিজিট, ২টা দশমিকের পরে)
  • তারিখ ভুল বিন্যাসে দেওয়া (যেমন 15-01-2026 এর বদলে সঠিক হলো 2026-01-15)
09

সাধারণ শুরুর ভুল

⏱ আলোচনা
❌ সবকিছুর জন্য VARCHAR ব্যবহার করা

✅ সমাধান: সংখ্যা, তারিখ, হ্যাঁ/না — প্রতিটার জন্য উপযুক্ত টাইপ বেছে নাও।

❌ টাকার হিসাবে FLOAT ব্যবহার করা

✅ সমাধান: টাকার জন্য সবসময় DECIMAL ব্যবহার করো।

❌ ভুল সাইজের Integer বেছে নেওয়া

✅ সমাধান: ডেটার সম্ভাব্য সর্বোচ্চ মান বিবেচনা করে TINYINT/INT/BIGINT বাছো।

❌ CHAR ও VARCHAR গুলিয়ে ফেলা

✅ সমাধান: নির্দিষ্ট দৈর্ঘ্যের ডেটায় CHAR, পরিবর্তনশীল দৈর্ঘ্যে VARCHAR ব্যবহার করো।

❌ তারিখ টেক্সট (VARCHAR) হিসেবে রাখা

✅ সমাধান: তারিখের জন্য DATE/DATETIME ব্যবহার করো, যাতে তারিখ নিয়ে হিসাব-নিকাশ সহজ হয়।

❌ অপ্রয়োজনে TEXT ব্যবহার করা

✅ সমাধান: ছোট লেখার জন্য VARCHAR-ই যথেষ্ট, শুধু অনেক বড় লেখার জন্য TEXT ব্যবহার করো।

❌ BOOLEAN ভুলভাবে ব্যবহার করা

✅ সমাধান: শুধু দুইটা সম্ভাব্য মান (হ্যাঁ/না) থাকলেই BOOLEAN ব্যবহার করো, তিন বা তার বেশি অপশন থাকলে ENUM ভাবো।

10

ইন্ডাস্ট্রি বেস্ট প্র্যাকটিস

⏱ আলোচনা

💾 স্টোরেজ অপ্টিমাইজেশন

প্রয়োজনের চেয়ে বড় Data Type ব্যবহার না করে জায়গা সাশ্রয় করা

⚡ পারফরম্যান্স অপ্টিমাইজেশন

সঠিক টাইপ ব্যবহার করলে খোঁজা ও হিসাব দ্রুত হয়

📈 স্কেলেবিলিটি

ভবিষ্যতে ডেটা বাড়লেও যেন সমস্যা না হয় তা মাথায় রেখে টাইপ বাছাই

👓 পঠনযোগ্যতা

টাইপ দেখেই বোঝা যাবে কলামে কী ধরনের তথ্য আছে

🛠️ ভবিষ্যৎ রক্ষণাবেক্ষণ

সঠিক টাইপ বেছে নিলে পরে পরিবর্তন করার প্রয়োজন কম পড়ে

11

ক্লাসরুম অ্যাক্টিভিটি

⏱ ইন্টারেক্টিভ
অ্যাক্টিভিটি ১ (সঠিক Data Type বাছাই): কিছু বিজনেস সিনারিও দাও ("একটা প্রোডাক্টের দাম", "একজন কাস্টমারের ইমেইল") এবং শিক্ষার্থীদের সঠিক Data Type বাছতে বলা।
অ্যাক্টিভিটি ২ (ভুল খুঁজে বের করা): একটা টেবিল দেখাও যেখানে ফোন নম্বরের জন্য INT, টাকার জন্য FLOAT ব্যবহার করা হয়েছে, শিক্ষার্থীদের ভুল চিহ্নিত করতে বলা।
অ্যাক্টিভিটি ৩ (টেবিল পুনঃডিজাইন): একটা খারাপভাবে ডিজাইন করা টেবিল দিয়ে শিক্ষার্থীদের সঠিক Data Type দিয়ে পুনর্গঠন করতে বলা।
অ্যাক্টিভিটি ৪ (মেলানো): Data Type ও বাস্তব উদাহরণের কার্ড আলাদাভাবে দিয়ে সঠিকভাবে মেলাতে বলা।
অ্যাক্টিভিটি ৫ (কুইজ): CHAR vs VARCHAR, INT vs BIGINT, DATE vs DATETIME নিয়ে দ্রুত কুইজ রাউন্ড।
12

রিভিশন ও প্রশ্নোত্তর

⏱ শেষ পর্যালোচনা

📌 দ্রুত রিভিশন নোট

  • Data Type ঠিক করে কোন কলামে কী ধরনের তথ্য থাকবে
  • Numeric: TINYINT থেকে BIGINT (পূর্ণসংখ্যা), FLOAT/DOUBLE/DECIMAL (দশমিক)
  • String: CHAR (ফিক্সড), VARCHAR (ভ্যারিয়েবল), TEXT/LONGTEXT (বড় লেখা)
  • Date & Time: DATE, TIME, DATETIME, TIMESTAMP, YEAR
  • অন্যান্য: BOOLEAN, ENUM, BLOB, JSON
  • টাকার জন্য সবসময় DECIMAL, কখনো FLOAT না

🧠 সম্পূর্ণ Data Type মাইন্ড ম্যাপ

SQL Data Types
NumericINT, FLOAT, DECIMAL
StringCHAR, VARCHAR, TEXT
Date & TimeDATE, DATETIME
BooleanTRUE/FALSE
Binary/BLOBছবি, ফাইল
JSONনমনীয় কাঠামো

🕰️ SQL Data Type-এর সংক্ষিপ্ত ইতিহাস

শুরুর দিকের ডেটাবেজ সিস্টেমে শুধু মৌলিক সংখ্যা ও লেখা টাইপ ছিলো। সময়ের সাথে ব্যবসার চাহিদা বাড়ায় (ছবি, ফাইল, নমনীয় কাঠামো সংরক্ষণের প্রয়োজন) আধুনিক ডেটাবেজে BLOB, JSON, XML-এর মতো টাইপ যুক্ত হয়েছে। আজকের SQL Data Type ব্যবস্থা এত বিস্তৃত যে প্রায় যেকোনো ধরনের বাস্তব-জগতের তথ্য যথাযথভাবে সংরক্ষণ করা সম্ভব।

📊 তুলনামূলক টেবিলসমূহ

বিষয়FLOATDOUBLEDECIMAL
নির্ভুলতাকমমাঝারি-বেশিসম্পূর্ণ নির্ভুল
জায়গাকমবেশিমাঝারি-বেশি
ব্যবহারবৈজ্ঞানিক আনুমানিক মানউচ্চ-নির্ভুলতার হিসাবটাকা, আর্থিক হিসাব
বিষয়DATEDATETIMETIMESTAMP
রাখেশুধু তারিখতারিখ+সময়তারিখ+সময়
স্বয়ংক্রিয় আপডেটনানাপ্রায়ই হ্যাঁ
ব্যবহারজন্মতারিখঅর্ডার সময়রেকর্ড পরিবর্তনের সময়
বিষয়TEXTLONGTEXT
ধারণক্ষমতাকয়েক হাজার অক্ষরকোটি অক্ষর পর্যন্ত
ব্যবহারপ্রোডাক্ট বর্ণনাসম্পূর্ণ বই/আর্টিকেলের লেখা

🛒 মিনি প্রজেক্ট: E-commerce Product টেবিল

CREATE TABLE Products ( product_id INT AUTO_INCREMENT PRIMARY KEY, product_name VARCHAR(100) NOT NULL, description TEXT, price DECIMAL(10,2) NOT NULL, stock_quantity SMALLINT DEFAULT 0, is_available BOOLEAN DEFAULT TRUE, category ENUM('Electronics', 'Clothing', 'Books', 'Other'), added_date DATE );

লক্ষ্য করো, প্রতিটা কলামে ডেটার প্রকৃতি অনুযায়ী সবচেয়ে উপযুক্ত টাইপ বেছে নেওয়া হয়েছে — দাম DECIMAL, বর্ণনা TEXT, ক্যাটাগরি ENUM।

👥 প্রফেশনাল ওয়ার্কফ্লো

Database Administrator
পারফরম্যান্স ও স্টোরেজ বিবেচনায় টাইপ নির্বাচনে পরামর্শ দেন
Data Engineer
টেবিল ডিজাইনে সঠিক Data Type প্রয়োগ করেন
Data Scientist
ডেটার টাইপ বুঝে সঠিক বিশ্লেষণ পদ্ধতি বেছে নেন

❓ ভাইভা প্রশ্ন

১. Data Type কী?
একটা কলামে কী ধরনের তথ্য থাকবে তা নির্ধারণ করার নিয়ম।
২. টাকার হিসাবে কোন Data Type ব্যবহার করা উচিত?
DECIMAL, কারণ এটা সম্পূর্ণ নির্ভুল।
৩. CHAR ও VARCHAR-এর মূল পার্থক্য কী?
CHAR ফিক্সড দৈর্ঘ্য, VARCHAR ভ্যারিয়েবল দৈর্ঘ্য।
৪. জন্মতারিখের জন্য কোন Data Type ব্যবহার করা উচিত?
DATE।
৫. ফোন নম্বরের জন্য INT কেন ব্যবহার করা উচিত না?
শুরুতে ০ থাকলে তা হারিয়ে যেতে পারে এবং গণনার প্রয়োজন নেই।

💼 ইন্টারভিউ প্রস্তুতি — টপ ৩০টি বিগিনার লেভেল প্রশ্ন

১. SQL Data Type কী?
একটা কলামে কী ধরনের ডেটা থাকবে তা নির্ধারণ করার নিয়ম।
২. INT ও BIGINT-এর পার্থক্য কী?
BIGINT আরও বড় সংখ্যা রাখতে পারে, বেশি জায়গা নেয়।
৩. FLOAT ও DECIMAL-এর পার্থক্য কী?
FLOAT আনুমানিক মান, DECIMAL সম্পূর্ণ নির্ভুল — টাকার জন্য DECIMAL ভালো।
৪. VARCHAR(50) মানে কী?
সর্বোচ্চ ৫০ অক্ষর পর্যন্ত লেখা রাখা যাবে, প্রয়োজন অনুযায়ী জায়গা নেবে।
৫. TEXT কখন ব্যবহার করা উচিত?
যখন লেখা VARCHAR-এর সীমার চেয়ে অনেক বড় হতে পারে, যেমন প্রোডাক্ট বর্ণনা।
৬. DATE ও DATETIME-এর পার্থক্য কী?
DATE শুধু তারিখ রাখে, DATETIME তারিখ ও সময় দুটোই রাখে।
৭. TIMESTAMP-এর একটা বিশেষ বৈশিষ্ট্য কী?
এটা প্রায়ই স্বয়ংক্রিয়ভাবে রেকর্ডের সর্বশেষ পরিবর্তনের সময় ট্র্যাক করে।
৮. BOOLEAN কী রাখে?
শুধু TRUE বা FALSE মান।
৯. ENUM কখন ব্যবহার করা হয়?
যখন একটা কলামে আগে থেকে নির্ধারিত কয়েকটা নির্দিষ্ট মানের একটাই থাকতে পারে।
১০. BLOB কী রাখে?
বাইনারি ডেটা, যেমন ছবি বা ফাইল।
১১. JSON Data Type কখন উপযোগী?
যখন প্রতিটা রেকর্ডে ভিন্ন ভিন্ন, নমনীয় কাঠামোর তথ্য রাখতে হয়।
১২. TINYINT সাধারণত কী ধরনের ডেটার জন্য ব্যবহার হয়?
খুব ছোট সংখ্যা, যেমন বয়স।
১৩. একটা প্রোডাক্টের দামের জন্য উপযুক্ত Data Type কোনটি?
DECIMAL(10,2)-এর মতো একটা DECIMAL টাইপ।
১৪. একটা ইমেইল ঠিকানার জন্য উপযুক্ত Data Type কোনটি?
VARCHAR।
১৫. কেন ভুল Data Type ব্যবহার সমস্যাজনক?
এতে জায়গা নষ্ট হতে পারে, ভুল হিসাব হতে পারে, এবং পারফরম্যান্স খারাপ হতে পারে।
১৬. DECIMAL(5,2)-এর অর্থ কী?
সর্বোচ্চ ৫টা ডিজিট, যার মধ্যে ২টা দশমিকের পরে থাকবে।
১৭. দেশের কোড (যেমন "BD") রাখতে কোন Data Type ভালো?
CHAR(2), কারণ এটা সবসময় নির্দিষ্ট দৈর্ঘ্যের।
১৮. একটা টেক্সট ফিল্ড হিসেবে তারিখ রাখলে কী সমস্যা হতে পারে?
তারিখ নিয়ে সঠিক হিসাব-নিকাশ (যেমন ২টা তারিখের ব্যবধান বের করা) কঠিন হয়ে যায়।
১৯. YEAR Data Type কী রাখে?
শুধু বছর, যেমন পাসের সাল।
২০. MySQL-এ BOOLEAN ভেতরে ভেতরে কীভাবে সংরক্ষিত হয়?
সাধারণত TINYINT(1) হিসেবে, যেখানে ১=TRUE, ০=FALSE।
২১. Data Type নির্বাচন কীভাবে পারফরম্যান্সকে প্রভাবিত করে?
সঠিক টাইপ দ্রুত খোঁজা ও কম জায়গা ব্যবহার নিশ্চিত করে।
২২. একটা প্রোডাক্ট বর্ণনা কেন VARCHAR-এর বদলে TEXT-এ রাখা ভালো হতে পারে?
কারণ বর্ণনা অনেক লম্বা হতে পারে, VARCHAR-এর সীমার বাইরে চলে যেতে পারে।
২৩. GPA-এর জন্য কোন Data Type সবচেয়ে উপযুক্ত?
DECIMAL, কারণ এটা নির্ভুল দশমিক মান রাখে।
২৪. Data Type বেছে নেওয়ার সময় স্কেলেবিলিটি কেন বিবেচনা করা উচিত?
ভবিষ্যতে ডেটার পরিমাণ বা রেঞ্জ বাড়লে যেন সমস্যা না হয়।
২৫. একটা Boolean-এর বদলে ENUM কখন ব্যবহার করা উচিত?
যখন দুইয়ের বেশি সম্ভাব্য মান থাকে (যেমন Small/Medium/Large)।
২৬. Data Engineer টেবিল ডিজাইনের সময় Data Type নিয়ে কী বিবেচনা করেন?
স্টোরেজ খরচ, পারফরম্যান্স, ও ভবিষ্যতের স্কেলেবিলিটি।
২৭. LONGTEXT সাধারণত কখন ব্যবহার হয়?
যখন অত্যন্ত বড়, প্রায় কোটি অক্ষর পর্যন্ত লেখা সংরক্ষণ করতে হয়।
২৮. আধুনিক ডেটাবেজে JSON টাইপ কেন যোগ করা হয়েছে?
নমনীয়, পরিবর্তনশীল কাঠামোর তথ্য সহজে সংরক্ষণ করার জন্য।
২৯. Data Type ভুল হলে ডেটা সায়েন্স বিশ্লেষণে কী সমস্যা হতে পারে?
সংখ্যাকে লেখা হিসেবে রাখলে হিসাব-নিকাশ ব্যর্থ হতে পারে বা ভুল ফলাফল আসতে পারে।
৩০. একটা টেবিল ডিজাইন করার সময় Data Type বাছাইয়ে সবচেয়ে গুরুত্বপূর্ণ প্রশ্ন কী?
"এই কলামে আসলে কী ধরনের তথ্য থাকবে, এবং তার ওপর কী ধরনের অপারেশন করা হবে?"

✅ MCQ প্র্যাকটিস

১. টাকার হিসাবে কোন Data Type সবচেয়ে উপযুক্ত?
(ক) FLOAT (খ) DECIMAL (গ) VARCHAR (ঘ) BOOLEAN
উত্তর: (খ) DECIMAL
২. নির্দিষ্ট দৈর্ঘ্যের ডেটার (যেমন দেশের কোড) জন্য কোনটি ব্যবহার করা উচিত?
(ক) VARCHAR (খ) TEXT (গ) CHAR (ঘ) BLOB
উত্তর: (গ) CHAR
৩. শুধু তারিখ (সময় ছাড়া) রাখতে কোনটি ব্যবহার হয়?
(ক) TIME (খ) DATE (গ) DATETIME (ঘ) YEAR
উত্তর: (খ) DATE
৪. দুইয়ের বেশি নির্দিষ্ট মানের একটা রাখতে কোনটি ব্যবহার হয়?
(ক) BOOLEAN (খ) ENUM (গ) INT (ঘ) FLOAT
উত্তর: (খ) ENUM
৫. MySQL-এ BOOLEAN ভেতরে ভেতরে কী হিসেবে সংরক্ষিত হয়?
(ক) VARCHAR (খ) TEXT (গ) TINYINT(1) (ঘ) DATE
উত্তর: (গ) TINYINT(1)

📝 হোমওয়ার্ক অ্যাসাইনমেন্ট

  1. একটা "Library Management System"-এর Books টেবিলের জন্য প্রতিটা কলামের সঠিক Data Type বেছে নাও (book_id, title, author, price, published_date, is_available)।
  2. Data Type মাইন্ড ম্যাপ (Numeric, String, Date & Time, Boolean, Binary/BLOB, JSON) নিজ হাতে এঁকে প্রতিটার নিচে একটা করে নিজের উদাহরণ লেখো।
  3. CHAR vs VARCHAR, FLOAT vs DECIMAL, DATE vs DATETIME — এই তিনটা পার্থক্য নিজের ভাষায় মোট ৬টা বাক্যে লেখো।