phpMyAdmin - table - MYSQL
MySQL phpMyAdmin Create Table Tutorial
১. Introduction: phpMyAdmin-এ Table তৈরি করা বলতে কী বোঝায়?
phpMyAdmin হলো MySQL বা MariaDB database manage করার জন্য একটি web-based graphical tool। আগের ছবিতে আমরা phpMyAdmin-এর Databases page দেখেছি, যেখানে database list, create database option, collation এবং database privileges দেখা যায়।
Database তৈরি করার পর পরবর্তী গুরুত্বপূর্ণ কাজ হলো Table তৈরি করা। কারণ database নিজে শুধু একটি container বা box-এর মতো। আসল data table-এর ভিতরে row এবং column আকারে সংরক্ষিত হয়।
উদাহরণস্বরূপ, যদি আমরা একটি Student Management System তৈরি করি, তাহলে database-এর নাম হতে পারে
student_management_db এবং তার ভিতরে table হতে পারে students, courses,
teachers, marks ইত্যাদি।
২. Database এবং Table-এর সম্পর্ক
MySQL বা MariaDB-তে data সংরক্ষণ করার জন্য একটি structured system ব্যবহার করা হয়। এই structure সাধারণত নিচের মতো:
| Level | Example | ব্যাখ্যা |
|---|---|---|
| Database Server | localhost / 127.0.0.1 |
যেখানে MySQL বা MariaDB server চলছে। |
| Database | student_management_db |
একটি project-এর data রাখার container। |
| Table | students |
নির্দিষ্ট ধরনের data রাখার structure। |
| Column | id, name, email |
Table-এর field বা attribute। |
| Row | একজন student-এর সম্পূর্ণ information | Table-এর একটি record। |
৩. Table তৈরি করার আগে কী কী পরিকল্পনা করতে হবে?
phpMyAdmin-এ table তৈরি করার আগে কিছু বিষয় ঠিক করে নেওয়া উচিত। কারণ table design ভালো না হলে পরবর্তীতে application development, data entry, search এবং reporting কঠিন হয়ে যেতে পারে।
Table Design করার আগে ভাবার বিষয়
- Table-এর নাম কী হবে?
- এই table-এ কী ধরনের data রাখা হবে?
- কতগুলো column লাগবে?
- প্রতিটি column-এর data type কী হবে?
- কোন column Primary Key হবে?
- কোন column Auto Increment হবে?
- কোন column NULL হতে পারবে আর কোনটি বাধ্যতামূলক?
- কোন column unique হতে হবে?
- Table-এর storage engine কী হবে?
- Character set বা collation কী হবে?
৪. Example Project: Student Management System
এই tutorial-এ আমরা একটি example project ধরে table তৈরি করব। Project-এর নাম: Student Management System
ধরুন আমাদের database-এর নাম:
student_management_db
এই database-এর ভিতরে আমরা প্রথম table তৈরি করব:
students
Students Table-এর উদ্দেশ্য
students table-এ student-এর basic information রাখা হবে।
যেমন student ID, name, roll number, class, email, phone, address, gender, date of birth, admission date ইত্যাদি।
| Column Name | Purpose |
|---|---|
student_id |
প্রতিটি student-এর unique ID রাখার জন্য। |
student_name |
Student-এর নাম রাখার জন্য। |
roll_no |
Student-এর roll number রাখার জন্য। |
class_name |
Student কোন class-এ পড়ে তা রাখার জন্য। |
email |
Student-এর email address রাখার জন্য। |
phone |
Phone number রাখার জন্য। |
address |
Student-এর address রাখার জন্য। |
date_of_birth |
Student-এর জন্ম তারিখ রাখার জন্য। |
admission_date |
Student admission নেওয়ার date রাখার জন্য। |
created_at |
Record কখন তৈরি হয়েছে তা রাখার জন্য। |
৫. phpMyAdmin-এ Database Select করা
Table তৈরি করার আগে অবশ্যই একটি database select করতে হবে। কারণ table সবসময় কোনো না কোনো database-এর ভিতরে তৈরি হয়।
Step 1: phpMyAdmin খুলুন
Browser address bar-এ লিখুন:
localhost/phpmyadmin
XAMPP ব্যবহার করলে Apache এবং MySQL service চালু থাকতে হবে।
Step 2: Databases Tab-এ যান
উপরের menu থেকে Databases tab-এ click করুন। আগের ছবিতে এই Databases page-ই দেখা গিয়েছিল।
Step 3: Database Name-এ Click করুন
Database list থেকে আপনার database select করুন।
উদাহরণ:
student_management_db
যদি আগের ছবির মতো database থাকে, তাহলে mvc_database বা আপনার তৈরি করা অন্য database select করা যেতে পারে।
৬. phpMyAdmin-এ Create Table Screen
Database select করার পর phpMyAdmin সাধারণত একটি screen দেখায় যেখানে লেখা থাকে: Create table
এই screen-এ সাধারণত দুটি গুরুত্বপূর্ণ field থাকে:
| Field | ব্যাখ্যা | Example |
|---|---|---|
| Table name | যে table তৈরি করতে চান তার নাম লিখতে হয়। | students |
| Number of columns | Table-এ মোট কতগুলো column থাকবে তা লিখতে হয়। | 10 |
Step 1: Table Name লিখুন
Table name input box-এ লিখুন:
students
Step 2: Number of Columns লিখুন
Number of columns field-এ লিখুন:
10
Step 3: Create Button Click করুন
এরপর Create button click করুন। তারপর column design করার page open হবে।
৭. Table Name রাখার নিয়ম
Table name খুব গুরুত্বপূর্ণ। ভালো নাম দিলে database বুঝতে সুবিধা হয়। খারাপ নাম দিলে project বড় হলে confusion তৈরি হয়।
ভালো Table Name-এর নিয়ম
- Table name ছোট কিন্তু meaningful হওয়া উচিত।
- Space ব্যবহার করা উচিত নয়।
- Space-এর বদলে underscore ব্যবহার করা যায়।
- সব lowercase letter ব্যবহার করা ভালো।
- Table name দেখে বোঝা উচিত table-এ কী data আছে।
- Reserved keyword ব্যবহার করা উচিত নয়। যেমন
order,select,tableইত্যাদি।
| Bad Name | Good Name | Reason |
|---|---|---|
Student Data |
students |
Space নেই, simple এবং clear। |
tbl1 |
students |
tbl1 দেখে table-এর purpose বোঝা যায় না। |
STUDENTINFO |
student_info |
Lowercase এবং readable। |
৮. Column Design Page-এর গুরুত্বপূর্ণ Parts
Table name এবং column number দেওয়ার পর phpMyAdmin column design page দেখায়। এই page-এ প্রতিটি column-এর জন্য বিভিন্ন option থাকে।
| Option | কাজ |
|---|---|
| Name | Column-এর নাম লিখতে হয়। যেমন student_id, student_name |
| Type | Column-এ কী ধরনের data থাকবে তা নির্ধারণ করে। যেমন INT, VARCHAR, DATE |
| Length/Values | Data-এর maximum length নির্ধারণ করে। যেমন VARCHAR(100) |
| Default | কোন value না দিলে default value কী হবে তা নির্ধারণ করে। |
| Collation | Text data কীভাবে sort/compare হবে তা নির্ধারণ করে। |
| Attributes | Extra property দেওয়া যায়। যেমন UNSIGNED |
| Null | Column empty রাখা যাবে কিনা তা নির্ধারণ করে। |
| Index | Primary Key, Unique, Index ইত্যাদি set করা যায়। |
| A_I | Auto Increment। সাধারণত ID column-এর জন্য ব্যবহার করা হয়। |
| Comments | Column সম্পর্কে note লেখা যায়। |
৯. Column Name কীভাবে ঠিক করবেন?
Column name এমন হওয়া উচিত যাতে দেখে বোঝা যায় column-এ কী data রাখা হবে। Table design professional করার জন্য column naming convention follow করা গুরুত্বপূর্ণ।
Column Name রাখার Best Practices
- Column name lowercase হওয়া ভালো।
- Space ব্যবহার করবেন না।
- Multiple word হলে underscore ব্যবহার করুন। যেমন
student_name - অর্থহীন নাম ব্যবহার করবেন না। যেমন
col1,data1 - Reserved keyword ব্যবহার করা এড়িয়ে চলুন।
| Bad Column Name | Good Column Name |
|---|---|
Name |
student_name |
Phone Number |
phone_number |
DOB |
date_of_birth |
addr |
address |
১০. Data Type কী?
Data type নির্ধারণ করে একটি column-এ কী ধরনের data রাখা যাবে। যেমন number, text, date, time, decimal value, long text ইত্যাদি।
INT, student name-এর জন্য VARCHAR,
date of birth-এর জন্য DATE ব্যবহার করা যায়।
Common MySQL Data Types
| Data Type | ব্যবহার | Example |
|---|---|---|
INT |
পূর্ণ সংখ্যা রাখার জন্য। | 1, 25, 100 |
BIGINT |
বড় সংখ্যা রাখার জন্য। | Long ID, mobile-like numeric value |
VARCHAR |
ছোট বা medium text রাখার জন্য। | Rumman Ansari |
TEXT |
বড় text রাখার জন্য। | Address, description |
DATE |
শুধু date রাখার জন্য। | 2026-06-16 |
DATETIME |
Date এবং time একসাথে রাখার জন্য। | 2026-06-16 10:30:00 |
TIMESTAMP |
Record create/update time রাখার জন্য। | CURRENT_TIMESTAMP |
DECIMAL |
Exact decimal value রাখার জন্য। | Marks, price, salary |
ENUM |
নির্দিষ্ট কিছু value-এর মধ্যে একটি value রাখার জন্য। | 'Male', 'Female', 'Other' |
BOOLEAN |
True/False type value রাখার জন্য। | 1 বা 0 |
১১. Length/Values কী?
Length/Values হলো column-এ data-এর size বা limit নির্ধারণ করার জায়গা। phpMyAdmin-এ Type select করার পর Length/Values field-এ value দেওয়া হয়।
| Column | Data Type | Length/Values | ব্যাখ্যা |
|---|---|---|---|
student_id |
INT |
11 |
ID number রাখার জন্য। |
student_name |
VARCHAR |
100 |
Maximum 100 character পর্যন্ত name রাখা যাবে। |
email |
VARCHAR |
150 |
Email address রাখার জন্য। |
phone |
VARCHAR |
20 |
Phone number text হিসেবে রাখা ভালো, কারণ country code বা leading zero থাকতে পারে। |
gender |
ENUM |
'Male','Female','Other' |
নির্দিষ্ট value-এর মধ্যে একটি value select করা যাবে। |
INT না রেখে VARCHAR রাখা ভালো,
কারণ phone number গণনার জন্য নয় এবং এতে country code, plus sign বা leading zero থাকতে পারে।
১২. Primary Key কী?
Primary Key হলো table-এর এমন একটি column যা প্রতিটি row-কে uniquely identify করে। অর্থাৎ Primary Key value duplicate হতে পারে না এবং সাধারণত empty বা NULL হয় না।
Student table-এর জন্য student_id column-কে Primary Key করা ভালো।
| Primary Key Feature | ব্যাখ্যা |
|---|---|
| Unique | একই value দুইবার থাকতে পারে না। |
| Not Null | Primary Key empty রাখা যায় না। |
| Identifier | প্রতিটি row আলাদা করে চেনার জন্য ব্যবহার করা হয়। |
student_id একই হবে না।
তাই student_id Primary Key হিসেবে ভালো।
১৩. Auto Increment কী?
Auto Increment হলো এমন একটি feature যেখানে নতুন row insert করলে ID number automatically বাড়তে থাকে। যেমন প্রথম student-এর ID হবে 1, দ্বিতীয় student-এর ID হবে 2, তৃতীয় student-এর ID হবে 3।
phpMyAdmin-এ A_I checkbox দিয়ে Auto Increment set করা হয়।
| Record | student_id | student_name |
|---|---|---|
| First Record | 1 | Rahim |
| Second Record | 2 | Karim |
| Third Record | 3 | Sumaiya |
INT, PRIMARY KEY
এবং AUTO_INCREMENT ব্যবহার করা হয়।
১৪. NULL এবং NOT NULL কী?
NULL মানে হলো কোনো value নেই। phpMyAdmin-এ Null checkbox দিয়ে নির্ধারণ করা যায় কোনো column empty রাখা যাবে কিনা।
| Option | Meaning | Example |
|---|---|---|
NULL allowed |
Column empty রাখা যাবে। | address optional হতে পারে। |
NOT NULL |
Column empty রাখা যাবে না। | student_name mandatory হওয়া উচিত। |
Student Table-এ কোনগুলো NOT NULL হওয়া উচিত?
student_id— অবশ্যই থাকতে হবে।student_name— অবশ্যই থাকতে হবে।roll_no— সাধারণত থাকতে হবে।class_name— সাধারণত থাকতে হবে।admission_date— admission record-এর জন্য দরকার।
১৫. Default Value কী?
Default value হলো কোনো column-এ value না দিলে automatically যে value বসবে। phpMyAdmin-এ Default field ব্যবহার করে default value set করা যায়।
| Column | Default Value | ব্যবহার |
|---|---|---|
status |
Active |
নতুন student add করলে default status Active হবে। |
created_at |
CURRENT_TIMESTAMP |
Record create হওয়ার সময় automatically save হবে। |
admission_date |
None বা specific value | Manual date দেওয়া যেতে পারে। |
Active set করা যেতে পারে।
১৬. Index কী?
Index database search দ্রুত করতে সাহায্য করে। phpMyAdmin-এ Index column থেকে Primary, Unique, Index ইত্যাদি select করা যায়।
| Index Type | ব্যাখ্যা | Example |
|---|---|---|
PRIMARY |
Table-এর main unique identifier। | student_id |
UNIQUE |
Duplicate value allow করে না। | email |
INDEX |
Search দ্রুত করার জন্য ব্যবহার করা হয়। | roll_no, class_name |
FULLTEXT |
Long text search-এর জন্য ব্যবহার করা হয়। | Description বা article content |
১৭. Unique Key কী?
Unique Key এমন একটি constraint যা কোনো column-এ duplicate value allow করে না। Student table-এ email unique রাখা যেতে পারে, কারণ একই email দিয়ে দুইজন student register করা উচিত নয়।
| Column | Unique হওয়া উচিত? | কারণ |
|---|---|---|
student_id |
হ্যাঁ | Primary Key হিসেবে already unique। |
email |
হ্যাঁ | একই email duplicate হওয়া উচিত নয়। |
phone |
Project requirement অনুযায়ী | কখনও unique হতে পারে, কখনও shared number থাকতে পারে। |
student_name |
না | একই নামের একাধিক student থাকতে পারে। |
১৮. Collation কী এবং Table-এ কেন দরকার?
Collation text compare এবং sorting করার rule নির্ধারণ করে।
আগের ছবিতে database collation হিসেবে utf8mb4_general_ci দেখা গিয়েছিল।
Table তৈরি করার সময়ও collation গুরুত্বপূর্ণ, বিশেষ করে যদি বাংলা বা multilingual data রাখা হয়।
| Collation | ব্যবহার |
|---|---|
utf8mb4_general_ci |
সাধারণ multilingual data-এর জন্য ভালো এবং fast। |
utf8mb4_unicode_ci |
Unicode rules অনুযায়ী sorting/comparison-এর জন্য ভালো। |
latin1_swedish_ci |
পুরোনো default collation; বাংলা data-এর জন্য recommended নয়। |
utf8mb4 based charset/collation ব্যবহার করা উচিত।
১৯. Attributes কী?
Attributes column-এর additional property set করতে সাহায্য করে। phpMyAdmin-এ Type-এর পাশে Attributes option পাওয়া যায়।
| Attribute | ব্যাখ্যা | Example |
|---|---|---|
UNSIGNED |
Negative number allow করে না। শুধু positive number রাখে। | student_id, roll_no |
ZEROFILL |
Number-এর আগে zero fill করতে পারে। | কম ব্যবহার হয়। |
BINARY |
Text comparison case-sensitive করতে পারে। | Special cases |
UNSIGNED ব্যবহার করা যায়,
কারণ ID বা roll সাধারণত negative হয় না।
২০. Storage Engine কী?
Storage Engine নির্ধারণ করে MySQL table data কীভাবে store এবং manage করবে। phpMyAdmin-এ table create করার সময় নিচের দিকে Storage Engine option থাকতে পারে।
| Engine | ব্যাখ্যা |
|---|---|
InnoDB |
Modern MySQL-এর জন্য commonly used engine। Transaction, foreign key support করে। |
MyISAM |
পুরোনো engine। Foreign key support করে না। |
MEMORY |
Memory-তে data রাখে; temporary fast operation-এর জন্য। |
InnoDB ব্যবহার করা ভালো,
কারণ এটি Foreign Key এবং transaction support করে।
২১. Final Students Table Structure
এবার আমরা একটি complete students table structure তৈরি করব।
এই structure beginner এবং practical project উভয়ের জন্য useful।
| Column Name | Type | Length/Values | Null | Index | A_I | Purpose |
|---|---|---|---|---|---|---|
student_id |
INT |
11 |
No | Primary | Yes | Unique student ID |
student_name |
VARCHAR |
100 |
No | None | No | Student name |
roll_no |
INT |
11 |
No | Index | No | Roll number |
class_name |
VARCHAR |
30 |
No | Index | No | Class name |
email |
VARCHAR |
150 |
Yes | Unique | No | Email address |
phone |
VARCHAR |
20 |
Yes | None | No | Phone number |
address |
TEXT |
None | Yes | None | No | Student address |
date_of_birth |
DATE |
None | Yes | None | No | Date of birth |
admission_date |
DATE |
None | No | None | No | Admission date |
status |
ENUM |
'Active','Inactive' |
No | None | No | Student status |
created_at |
TIMESTAMP |
None | No | None | No | Record creation time |
২২. phpMyAdmin-এ এই Table Create করার Step-by-Step Process
Step 1: Database Open করুন
phpMyAdmin-এর left sidebar থেকে আপনার database select করুন।
Example:
student_management_db
Step 2: Create Table Form খুঁজুন
Database open করার পর Create table section দেখতে পাবেন।
Step 3: Table Name লিখুন
Table name box-এ লিখুন:
students
Step 4: Number of Columns দিন
আমাদের table-এ ১১টি column আছে। তাই number of columns লিখুন:
11
Step 5: Create Button Click করুন
Create button click করলে column details input page আসবে।
Step 6: প্রতিটি Column Fill করুন
উপরের table structure অনুযায়ী column name, type, length, null, index, auto increment fill করুন।
Step 7: Save Button Click করুন
সব column ঠিকভাবে fill করার পর নিচের দিকে থাকা Save button click করুন। Table successfully তৈরি হলে phpMyAdmin table structure দেখাবে।
২৩. SQL Query দিয়ে Students Table তৈরি করা
phpMyAdmin interface ছাড়াও SQL command ব্যবহার করে table তৈরি করা যায়। phpMyAdmin-এর উপরের menu থেকে SQL tab-এ গিয়ে নিচের query run করা যায়।
CREATE TABLE students (
student_id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
student_name VARCHAR(100) NOT NULL,
roll_no INT(11) UNSIGNED NOT NULL,
class_name VARCHAR(30) NOT NULL,
email VARCHAR(150) UNIQUE,
phone VARCHAR(20),
address TEXT,
date_of_birth DATE,
admission_date DATE NOT NULL,
status ENUM('Active','Inactive') NOT NULL DEFAULT 'Active',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
Query Explanation
| SQL Part | ব্যাখ্যা |
|---|---|
CREATE TABLE students |
students নামে নতুন table তৈরি করছে। |
student_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY |
ID column, positive number, automatic increment এবং primary key। |
student_name VARCHAR(100) NOT NULL |
Student name maximum 100 characters এবং empty রাখা যাবে না। |
email VARCHAR(150) UNIQUE |
Email duplicate হতে পারবে না। |
status ENUM('Active','Inactive') |
Status শুধু Active বা Inactive হতে পারবে। |
DEFAULT CURRENT_TIMESTAMP |
Record create হওয়ার সময় automatically save হবে। |
ENGINE=InnoDB |
InnoDB storage engine ব্যবহার করছে। |
CHARSET=utf8mb4 |
বাংলা ও Unicode text support করার জন্য। |
২৪. Table তৈরি হয়েছে কিনা কীভাবে Check করবেন?
Table create করার পর phpMyAdmin সাধারণত table structure দেখায়। তবে manually check করতে চাইলে কয়েকটি উপায় আছে।
Method 1: Left Sidebar Check
Database name expand করলে তার নিচে students table দেখা যাবে।
Method 2: Structure Tab Check
Table name click করলে Structure tab-এ সব columns দেখা যাবে।
Method 3: SQL Query দিয়ে Check
SHOW TABLES;
এই query selected database-এর সব table দেখাবে।
DESCRIBE students;
এই query students table-এর column structure দেখাবে।
২৫. Table-এ Data Insert করার Example
Table তৈরি করার পর data insert করা যায়। phpMyAdmin-এ Insert tab ব্যবহার করে form-এর মাধ্যমে data insert করা যায়। আবার SQL query দিয়েও insert করা যায়।
SQL Insert Example
INSERT INTO students
(student_name, roll_no, class_name, email, phone, address, date_of_birth, admission_date, status)
VALUES
('Rahim Ahmed', 101, 'Class 12', 'rahim@example.com', '01700000000', 'Dhaka, Bangladesh', '2008-05-10', '2026-01-15', 'Active');
Insert Query Explanation
| Part | ব্যাখ্যা |
|---|---|
INSERT INTO students |
students table-এ নতুন record insert করছে। |
| Column list | কোন কোন column-এ value insert হবে তা লিখেছে। |
VALUES |
প্রতিটি column-এর জন্য value দেওয়া হয়েছে। |
student_id দেওয়া হয়নি |
কারণ student_id Auto Increment, তাই automatically value তৈরি হবে। |
২৬. Table Data View করার Example
Data insert করার পর table-এর data দেখতে চাইলে phpMyAdmin-এ Browse tab click করতে হয়। SQL দিয়ে দেখতে চাইলে নিচের query run করা যায়:
SELECT * FROM students;
এই query students table-এর সব record দেখাবে।
Specific Columns দেখতে চাইলে
SELECT student_id, student_name, roll_no, class_name FROM students;
Condition দিয়ে Data দেখতে চাইলে
SELECT * FROM students WHERE class_name = 'Class 12';
২৭. Table Structure Modify করা
Table তৈরি করার পর যদি নতুন column add করতে হয়, existing column edit করতে হয় বা column delete করতে হয়, তাহলে phpMyAdmin-এর Structure tab ব্যবহার করা হয়।
Common Structure Operations
| Operation | phpMyAdmin Option | ব্যাখ্যা |
|---|---|---|
| Add Column | Add column option | নতুন column যোগ করা। |
| Change Column | Change | Column name, type, length modify করা। |
| Drop Column | Drop | Column delete করা। |
| Set Primary Key | Primary | Column-কে primary key করা। |
| Set Index | Index | Search improve করার জন্য index যোগ করা। |
২৮. SQL দিয়ে Table Modify করার Example
নতুন Column Add করা
ALTER TABLE students ADD guardian_name VARCHAR(100);
Column Type Change করা
ALTER TABLE students MODIFY phone VARCHAR(25);
Column Rename করা
ALTER TABLE students CHANGE student_name full_name VARCHAR(100) NOT NULL;
Column Delete করা
ALTER TABLE students DROP COLUMN guardian_name;
ALTER TABLE command ব্যবহার করার আগে table backup রাখা ভালো।
২৯. Table Empty করা, Drop করা এবং Difference
phpMyAdmin-এ table নিয়ে কাজ করার সময় Empty এবং Drop option দেখা যায়। অনেক beginner এই দুটি option confuse করে।
| Option | Meaning | Result |
|---|---|---|
Empty |
Table-এর সব data delete করে, কিন্তু table structure রাখে। | Table থাকবে, data থাকবে না। |
Drop |
পুরো table delete করে। | Table structure এবং data দুটোই delete হয়ে যায়। |
SQL Example
TRUNCATE TABLE students;
এই query table-এর data empty করে কিন্তু table রাখে।
DROP TABLE students;
এই query পুরো table delete করে।
৩০. Table Export এবং Backup নেওয়া
Table তৈরি করার পর backup নেওয়া professional practice। phpMyAdmin-এ table বা database export করে SQL file হিসেবে save করা যায়।
phpMyAdmin দিয়ে Table Export করার Steps
- Database select করুন।
- Table select করুন। যেমন
students - উপরের menu থেকে Export tab click করুন।
- Quick বা Custom export method select করুন।
- Format হিসেবে
SQLselect করুন। - Go button click করুন।
- SQL backup file download হবে।
৩১. Table Import করা
আগের backup বা অন্য project-এর SQL table import করার জন্য phpMyAdmin-এর Import tab ব্যবহার করা হয়।
Import Steps
- Target database select করুন।
- উপরের menu থেকে Import tab click করুন।
- SQL file choose করুন।
- Format হিসেবে SQL রাখুন।
- Go button click করুন।
৩২. Foreign Key Concept: Table Relation তৈরি করা
বড় project-এ একাধিক table থাকে এবং table-গুলোর মধ্যে relation তৈরি করতে হয়। এই relation তৈরি করতে Foreign Key ব্যবহার করা হয়।
উদাহরণস্বরূপ:
studentstable — student information রাখে।coursestable — course information রাখে।student_coursestable — কোন student কোন course নিয়েছে তা রাখে।
Simple Courses Table
CREATE TABLE courses (
course_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
course_name VARCHAR(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Relation Table Example
CREATE TABLE student_courses (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
student_id INT UNSIGNED NOT NULL,
course_id INT UNSIGNED NOT NULL,
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
InnoDB storage engine দরকার।
৩৩. Common Mistakes While Creating Table
| Common Mistake | Problem | Solution |
|---|---|---|
| Primary Key না দেওয়া | Record uniquely identify করা কঠিন হয়। | ID column primary key করুন। |
| সব data VARCHAR রাখা | Data validation এবং performance problem হতে পারে। | ঠিক data type ব্যবহার করুন। |
| Phone number INT রাখা | Leading zero বা country code problem হতে পারে। | Phone number VARCHAR রাখুন। |
| বাংলা data-এর জন্য latin1 ব্যবহার | বাংলা text ঠিকভাবে show নাও হতে পারে। | utf8mb4 ব্যবহার করুন। |
| Backup ছাড়া Drop করা | Permanent data loss হতে পারে। | Drop করার আগে Export করুন। |
| অপ্রয়োজনীয় বেশি index | Insert/update ধীর হতে পারে। | যেখানে দরকার শুধু সেখানে index দিন। |
| Reserved keyword column name হিসেবে ব্যবহার | SQL error হতে পারে। | Meaningful non-reserved name ব্যবহার করুন। |
৩৪. Best Practices for Table Design
- প্রতিটি table-এর জন্য একটি Primary Key রাখুন।
- ID column-এর জন্য Auto Increment ব্যবহার করুন।
- Column name meaningful রাখুন।
- যে data number নয়, সেটিকে শুধু number type দেবেন না। যেমন phone number।
- বাংলা বা multilingual data-এর জন্য
utf8mb4ব্যবহার করুন। - Required field-এ
NOT NULLব্যবহার করুন। - Duplicate data prevent করতে প্রয়োজন হলে Unique Key ব্যবহার করুন।
- Frequent search column-এ Index ব্যবহার করুন।
- Large text-এর জন্য
TEXTব্যবহার করুন। - Date data-এর জন্য
DATEবাDATETIMEব্যবহার করুন। - Table delete বা modify করার আগে backup নিন।
- Project বড় হলে table relation এবং normalization follow করুন।
৩৫. Studentদের জন্য Practice Activity
নিচের activity complete করলে phpMyAdmin create table concept ভালোভাবে clear হবে।
Activity 1: Library Management Table তৈরি করুন
একটি database তৈরি করুন:
library_db
একটি table তৈরি করুন:
books
| Column Name | Data Type | Requirement |
|---|---|---|
book_id |
INT |
Primary Key, Auto Increment |
book_title |
VARCHAR(150) |
NOT NULL |
author_name |
VARCHAR(100) |
NOT NULL |
isbn |
VARCHAR(30) |
UNIQUE |
price |
DECIMAL(10,2) |
Optional |
published_date |
DATE |
Optional |
Activity 2: SQL দিয়ে Books Table তৈরি করুন
CREATE TABLE books (
book_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
book_title VARCHAR(150) NOT NULL,
author_name VARCHAR(100) NOT NULL,
isbn VARCHAR(30) UNIQUE,
price DECIMAL(10,2),
published_date DATE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
৩৬. Quick Revision
| Topic | Short Explanation |
|---|---|
| Database | Data রাখার container। |
| Table | Row এবং column আকারে data রাখে। |
| Column | Table-এর field বা attribute। |
| Row | একটি complete record। |
| Primary Key | প্রতিটি row uniquely identify করে। |
| Auto Increment | ID value automatically বাড়ায়। |
| Data Type | Column-এ কী ধরনের data থাকবে তা নির্ধারণ করে। |
| NULL | Empty value allow করে। |
| NOT NULL | Empty value allow করে না। |
| Unique | Duplicate value prevent করে। |
| Index | Search faster করে। |
| Collation | Text sorting এবং comparison rule। |
| Engine | Table data কীভাবে store হবে তা নির্ধারণ করে। |
৩৭. Summary
এই article-এ আমরা phpMyAdmin ব্যবহার করে MySQL/MariaDB database-এর ভিতরে table তৈরি করার সম্পূর্ণ process শিখলাম। প্রথমে database select করতে হয়, তারপর table name এবং number of columns দিতে হয়। এরপর প্রতিটি column-এর name, data type, length, null option, index, auto increment, default value এবং collation ঠিক করতে হয়।
একটি ভালো table design-এর জন্য Primary Key, proper data type, correct collation, meaningful column name, required fields, unique constraints এবং proper indexing ব্যবহার করা জরুরি। Beginner students interface দিয়ে table create করা শিখতে পারে এবং পরে SQL query দিয়ে একই কাজ practice করলে concept আরও strong হয়।