Table of Contents

    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 আকারে সংরক্ষিত হয়।

    সহজ ভাষায়: Database হলো একটি আলমারি, Table হলো সেই আলমারির ভিতরের ফাইল, Column হলো ফাইলের field, আর Row হলো প্রতিটি record।

    উদাহরণস্বরূপ, যদি আমরা একটি 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।
    Important Concept: Database-এর ভিতরে একাধিক table থাকতে পারে। আবার প্রতিটি table-এর ভিতরে একাধিক column এবং অনেক row থাকতে পারে।

    ৩. 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 কী হবে?
    Best Practice: Table তৈরি করার আগে paper বা notebook-এ table structure লিখে নেওয়া ভালো। এতে ভুল কম হয় এবং database design professional হয়।

    ৪. 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 করা যেতে পারে।

    Note: Database select না করলে table তৈরি করার option ঠিকভাবে পাওয়া যাবে না।

    ৬. 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 ইত্যাদি।

    Example: Student ID-এর জন্য 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 করা যাবে।
    Important: Phone number সাধারণত 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 আলাদা করে চেনার জন্য ব্যবহার করা হয়।
    Example: দুইজন student-এর নাম একই হতে পারে, কিন্তু 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
    Best Practice: Primary Key ID column-এর জন্য সাধারণত 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 দেওয়া যেতে পারে।
    Example: যদি student status না দেওয়া হয়, তাহলে default হিসেবে 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
    Note: অপ্রয়োজনীয় বেশি index দিলে insert/update operation ধীর হতে পারে। তাই যেখানে search বেশি হয় শুধু সেখানে index ব্যবহার করা ভালো।

    ১৭. 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 নয়।
    বাংলা data-এর জন্য: 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
    Student Table Tip: ID বা roll number-এর জন্য 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-এর জন্য।
    Best Practice: অধিকাংশ modern project-এর জন্য 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 যোগ করা।
    Warning: Existing table-এর column delete বা type change করার আগে backup নেওয়া উচিত। কারণ ভুল করলে data loss হতে পারে।

    ২৮. 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;
    Important: 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 করে।

    খুব গুরুত্বপূর্ণ: Drop Table করলে table এবং তার data মুছে যায়। তাই Drop করার আগে অবশ্যই Export/Backup নিতে হবে।

    ৩০. Table Export এবং Backup নেওয়া

    Table তৈরি করার পর backup নেওয়া professional practice। phpMyAdmin-এ table বা database export করে SQL file হিসেবে save করা যায়।

    phpMyAdmin দিয়ে Table Export করার Steps

    1. Database select করুন।
    2. Table select করুন। যেমন students
    3. উপরের menu থেকে Export tab click করুন।
    4. Quick বা Custom export method select করুন।
    5. Format হিসেবে SQL select করুন।
    6. Go button click করুন।
    7. SQL backup file download হবে।
    Best Practice: Table structure change করার আগে এবং বড় data operation করার আগে backup নেওয়া উচিত।

    ৩১. Table Import করা

    আগের backup বা অন্য project-এর SQL table import করার জন্য phpMyAdmin-এর Import tab ব্যবহার করা হয়।

    Import Steps

    1. Target database select করুন।
    2. উপরের menu থেকে Import tab click করুন।
    3. SQL file choose করুন।
    4. Format হিসেবে SQL রাখুন।
    5. Go button click করুন।
    Note: Import করার আগে একই নামের table already আছে কিনা check করুন। একই table থাকলে conflict হতে পারে।

    ৩২. Foreign Key Concept: Table Relation তৈরি করা

    বড় project-এ একাধিক table থাকে এবং table-গুলোর মধ্যে relation তৈরি করতে হয়। এই relation তৈরি করতে Foreign Key ব্যবহার করা হয়।

    উদাহরণস্বরূপ:

    • students table — student information রাখে।
    • courses table — course information রাখে।
    • student_courses table — কোন 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;
    Important: Foreign Key ব্যবহার করতে সাধারণত 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 হয়।

    Final Note: phpMyAdmin-এ table তৈরি করা DBMS শেখার সবচেয়ে গুরুত্বপূর্ণ practical skillগুলোর একটি। কারণ যেকোনো dynamic website, PHP project, Laravel application, WordPress site বা management system-এর core foundation হলো database table।