- 1 ১. পরিচিতি
- 2 ২. MySQL এর মৌলিক অপারেশন (শুরুয়াতি-বন্ধু)
- 3 3. ডাটাবেস অপারেশনসমূহ
- 4 4. টেবিল অপারেশনসমূহ
১. পরিচিতি
MySQL হল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) গুলোর মধ্যে ব্যাপকভাবে ব্যবহৃত একটি ওপেন-সোর্স রিলেশনাল ডেটাবেস। এটি বিশেষত ওয়েব অ্যাপ্লিকেশন এবং এন্টারপ্রাইজ সিস্টেমে জনপ্রিয়। এই প্রবন্ধে আমরা গুরুত্বপূর্ণ MySQL কমান্ডগুলো বিস্তারিতভাবে ব্যাখ্যা করব এবং বিষয়বস্তু এমনভাবে গঠন করব যাতে নবীন থেকে মধ্যম স্তরের ব্যবহারকারীরা সহজে শিখতে পারেন।
১.১ MySQL কী?
MySQL হল একটি সফটওয়্যার যা রিলেশনাল ডেটাবেস (RDB) পরিচালনা করতে ব্যবহৃত হয়। ডেটা টেবিলে সংরক্ষিত হয়, এবং আপনি SQL (স্ট্রাকচার্ড কুয়েরি ল্যাঙ্গুয়েজ) ব্যবহার করে ডেটা ম্যানিপুলেট করেন। MySQL-এ নিম্নলিখিত বৈশিষ্ট্যগুলো রয়েছে:
- ওপেন-সোর্স এবং যে কেউ ব্যবহার করতে পারে এমন ফ্রি
- দ্রুত এবং হালকা পারফরম্যান্স
- বহু প্রোগ্রামিং ভাষার সাথে সামঞ্জস্যপূর্ণ (যেমন PHP, Python, এবং Java)
- বৃহৎ স্কেলের ডেটাবেস পরিচালনার জন্য উপযুক্ত
১.২ MySQL কমান্ড শিখার সুবিধা
MySQL কার্যকরভাবে ব্যবহার করতে হলে মৌলিক কমান্ডগুলো বোঝা গুরুত্বপূর্ণ। প্রধান সুবিধাগুলো হল:
- আরও কার্যকর ডেটা ম্যানেজমেন্ট : SQL কমান্ডে পারদর্শী হয়ে আপনি দ্রুত ডেটা রিট্রিভ, আপডেট এবং ডিলিট করতে পারেন
- ওয়ার্কফ্লো অটোমেশন : স্ক্রিপ্ট ব্যবহার করে আপনি ডেটাবেস অপারেশন স্বয়ংক্রিয় করতে পারেন
- স্মুথ ত্রুটি হ্যান্ডলিং : সমস্যার সময় আপনি উপযুক্ত SQL কমান্ড দিয়ে সমাধান করতে পারেন
১.৩ এই প্রবন্ধে আপনি কী শিখবেন
এই প্রবন্ধে নিম্নলিখিত বিষয়গুলো বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে:
- MySQL এর মৌলিক অপারেশন (শুরু করা, সংযোগ করা, এবং ডেটাবেস অপারেশন)
- ডেটা যোগ করা, রিট্রিভ করা, আপডেট করা এবং ডিলিট করা (CRUD অপারেশন)
- ইউজার ম্যানেজমেন্ট এবং প্রিভিলেজ সেটিংস
- উপযোগী কমান্ড এবং ট্রাবলশুটিং
পরবর্তীতে আমরা প্রতিটি সেকশন ক্রমানুসারে আলোচনা করব। চলুন MySQL এর মৌলিক অপারেশন দিয়ে শুরু করি।
২. MySQL এর মৌলিক অপারেশন (শুরুয়াতি-বন্ধু)
২.১ MySQL শুরু করা এবং সংযোগ করা
২.১.১ MySQL শুরু করা
MySQL একটি সার্ভার প্রোগ্রাম হিসেবে চলায়, প্রথমে আপনাকে সার্ভারটি চালু করতে হবে। স্টার্টআপ পদ্ধতি অপারেটিং সিস্টেমের উপর নির্ভর করে ভিন্ন হয়।
লিনাক্স / macOS-এ শুরু করা
লিনাক্স এবং macOS-এ, আপনি systemctl কমান্ড ব্যবহার করে MySQL চালু করতে পারেন।
sudo systemctl start mysql
MySQL চালু আছে কিনা পরীক্ষা করুন
sudo systemctl status mysql
যদি আপনি “active (running)” দেখেন, তবে MySQL স্বাভাবিকভাবে চালু আছে।
উইন্ডোজে শুরু করা
উইন্ডোজে, MySQL প্রায়শই একটি সার্ভিস হিসেবে চালানো হয়, তাই আপনি net start কমান্ড ব্যবহার করতে পারেন।
net start mysql
অথবা, যদি আপনি XAMPP ব্যবহার করেন, XAMPP কন্ট্রোল প্যানেল খুলে “MySQL” এর জন্য “Start” ক্লিক করুন।
২.১.২ MySQL-এ সংযোগ করা
MySQL-এ সংযোগ করতে mysql কমান্ড ব্যবহার করুন। মৌলিক সংযোগ কমান্ডটি নিম্নরূপ:
mysql -u username -p
রুট ইউজার হিসেবে সংযোগ
ডিফল্টভাবে, root ইউজারকে অ্যাডমিনিস্ট্রেটর হিসেবে কনফিগার করা থাকে। আপনি নিম্নলিখিত কমান্ড দিয়ে সংযোগ করতে পারেন:
mysql -u root -p
Enter চাপার পর, আপনাকে পাসওয়ার্ড দিতে বলা হবে। সঠিক পাসওয়ার্ড দিলে আপনি MySQL-এ লগইন করতে পারবেন।
নির্দিষ্ট হোস্টে সংযোগ
রিমোট MySQL সার্ভারে সংযোগ করতে -h অপশন ব্যবহার করুন।
mysql -h hostname -u username -p
উদাহরণস্বরূপ, 192.168.1.100 এ থাকা MySQL সার্ভারে সংযোগ করতে লিখুন:
mysql -h 192.168.1.100 -u root -p
পোর্ট নম্বর নির্দিষ্ট করে সংযোগ
ডিফল্ট MySQL পোর্ট হল 3306। যদি এটি পরিবর্তন করা হয়ে থাকে, আপনি -P অপশন দিয়ে নির্দিষ্ট করতে পারেন।
mysql -h 192.168.1.100 -P 3307 -u root -p
২.২ MySQL এর মৌলিক কমান্ড
MySQL-এ সংযুক্ত হওয়ার পর, কিছু মৌলিক কমান্ড চালিয়ে দেখুন।
২.২.১ MySQL সংস্করণ পরীক্ষা করা
আপনি বর্তমানে যে MySQL সংস্করণ ব্যবহার করছেন তা পরীক্ষা করতে নিম্নলিখিত কমান্ড চালান:
SELECT VERSION();
২.২.২ বর্তমান ডেটাবেস পরীক্ষা করা
বর্তমানে কোন ডেটাবেস সিলেক্টেড আছে তা দেখতে চালান:
SELECT DATABASE();
যদি কোনো ডেটাবেস সিলেক্টেড না থাকে, তবে NULL রিটার্ন হয়।
২.২.৩ উপলব্ধ ডেটাবেসের তালিকা
MySQL-এ বিদ্যমান ডেটাবেসের তালিকা পেতে ব্যবহার করুন:
SHOW DATABASES;
২.৩ সাধারণ ত্রুটি এবং সমাধান
২.৩.১ “Access denied” ত্রুটি
উদাহরণ ত্রুটি:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
কিভাবে ঠিক করবেন:
- পাসওয়ার্ড সঠিক কিনা যাচাই করুন
rootঅধিকারগুলি পরীক্ষা করুন এবং রিসেট করুনALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD'; FLUSH PRIVILEGES;
2.3.2 “‘localhost’ এ MySQL সার্ভারে সংযোগ করা যাচ্ছে না” ত্রুটি
উদাহরণ ত্রুটি:
ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
কিভাবে ঠিক করবেন:
- MySQL চালু আছে কিনা পরীক্ষা করুন (
systemctl status mysql) - MySQL পুনরায় চালু করুন
sudo systemctl restart mysql
2.4 সারাংশ
এই অংশে, আমরা কীভাবে MySQL শুরু করতে এবং এতে সংযোগ করতে হয় তা ব্যাখ্যা করেছি।
3. ডাটাবেস অপারেশনসমূহ
MySQL-এ, আপনি ডেটা পরিচালনার জন্য একটি ডাটাবেস তৈরি করেন, এবং তারপর তার মধ্যে টেবিল গুলি স্থাপন করে তথ্য সংগঠিত করেন। এই অংশে, আমরা ডাটাবেস তৈরি, নির্বাচন, তালিকাভুক্তি এবং মুছে ফেলা ইত্যাদি মৌলিক অপারেশনগুলো বিস্তারিতভাবে ব্যাখ্যা করব।
3.1 ডাটাবেস তৈরি করা
MySQL-এ ডাটাবেস তৈরি করতে, CREATE DATABASE কমান্ড ব্যবহার করুন।
3.1.1 একটি মৌলিক ডাটাবেস তৈরি করুন
নিম্নলিখিত SQL কমান্ড চালালে, আপনি my_database নামের একটি নতুন ডাটাবেস তৈরি করতে পারবেন।
CREATE DATABASE my_database;
সফলভাবে তৈরি হলে বার্তা
Query OK, 1 row affected (0.01 sec)
3.1.2 যখন আপনি ইতিমধ্যে বিদ্যমান একটি ডাটাবেস তৈরি করার চেষ্টা করেন
যদি ডাটাবেসটি ইতিমধ্যে থাকে, আপনি নিম্নরূপ একটি ত্রুটি দেখবেন:
ERROR 1007 (HY000): Can't create database 'my_database'; database exists
এই ত্রুটি এড়াতে, IF NOT EXISTS অপশন যোগ করা উপকারী।
CREATE DATABASE IF NOT EXISTS my_database;
আপনি যখন এই কমান্ড চালাবেন, ডাটাবেসটি শুধুমাত্র তখনই তৈরি হবে যদি তা আগে থেকে না থাকে।
3.2 ডাটাবেস তালিকাভুক্ত করা
বর্তমান MySQL সার্ভারে কোন ডাটাবেসগুলো আছে তা দেখতে, SHOW DATABASES কমান্ড ব্যবহার করুন।
SHOW DATABASES;
উদাহরণ আউটপুট:
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_database |
| mysql |
| performance_schema |
| sys |
+--------------------+
দ্রষ্টব্য: mysql এবং information_schema এর মতো সিস্টেম ডাটাবেসগুলো MySQL প্রশাসনের জন্য প্রয়োজনীয়।
3.3 ডাটাবেস নির্বাচন করা
MySQL-এ, আপনাকে যে ডাটাবেসটি ব্যবহার করতে চান তা নির্বাচন করতে হবে। ডাটাবেস নির্দিষ্ট করতে, USE কমান্ড চালান।
USE my_database;
সফল হলে বার্তা
Database changed
বর্তমানে কোন ডাটাবেস নির্বাচিত আছে তা নিশ্চিত করতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:
SELECT DATABASE();
উদাহরণ আউটপুট:
+------------+
| DATABASE() |
+------------+
| my_database |
+------------+
3.4 ডাটাবেস মুছে ফেলা
আপনি আর প্রয়োজন না এমন ডাটাবেস মুছে ফেলতে, DROP DATABASE কমান্ড ব্যবহার করুন।
DROP DATABASE my_database;
3.4.1 মুছে ফেলার আগে গুরুত্বপূর্ণ নোট
- সতর্ক থাকুন: ডাটাবেস মুছে ফেললে সব ডেটা মুছে যাবে!
- দুর্ঘটনাবশত ত্রুটি এড়াতে, আপনি
IF EXISTSযোগ করতে পারেন।DROP DATABASE IF EXISTS my_database;
ডাটাবেস my_database না থাকলেও এই কমান্ড কোনো ত্রুটি ছাড়াই শেষ হবে।
3.5 সাধারণ ত্রুটি এবং সমাধান
3.5.1 “ব্যবহারকারীর জন্য প্রবেশাধিকার অস্বীকৃত” ত্রুটি
উদাহরণ ত্রুটি:
ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
কিভাবে ঠিক করবেন
GRANTকমান্ড ব্যবহার করে অধিকার প্রদান করুনGRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost'; FLUSH PRIVILEGES;
3.5.2 “ডাটাবেস ড্রপ করা যাচ্ছে না” ত্রুটি
উদাহরণ ত্রুটি:
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
কিভাবে ঠিক করবেন
- MySQL পুনরায় চালু করুন
sudo systemctl restart mysql
- প্রথমে
my_databaseএর সব টেবিল মুছে ফেলুন, তারপরDROP DATABASEচালান।
3.6 সারাংশ
এই অংশে, আপনি কীভাবে ডাটাবেস তৈরি, নির্বাচন, তালিকাভুক্ত এবং মুছে ফেলতে হয় শিখেছেন।
4. টেবিল অপারেশনসমূহ
After creating a database, you need to create tables inside it to organize data. A table is like a grid for storing data, consisting of columns and rows (records).
এই বিভাগে, আমরা টেবিল তৈরি, পরীক্ষা, তালিকাভুক্ত এবং মুছে ফেলা সহ মৌলিক অপারেশনগুলি বিস্তারিতভাবে ব্যাখ্যা করব।
4.1 Creating a Table
একটি টেবিল তৈরি করতে, CREATE TABLE কমান্ড ব্যবহার করুন। যদি আপনি নিম্নলিখিত SQL চালান, এটি users নামের একটি টেবিল তৈরি করবে।
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4.1.1 Explanation of each element when creating a table
id INT AUTO_INCREMENT PRIMARY KEYidকলামটি একটি পূর্ণসংখ্যা (INT), স্বয়ংক্রিয়ভাবে বৃদ্ধি পায় (AUTO_INCREMENT), এবং প্রাইমারি কী (PRIMARY KEY) হিসেবে সেট করা হয়।name VARCHAR(50) NOT NULLnameকলামটি একটি স্ট্রিং (VARCHAR) যা সর্বোচ্চ ৫০ অক্ষর এবংNOT NULLএর কারণে এটি বাধ্যতামূলক।email VARCHAR(100) UNIQUE NOT NULLemailকলামটি সর্বোচ্চ ১০০ অক্ষরের একটি স্ট্রিং, এবংUNIQUEসীমাবদ্ধতা ডুপ্লিকেট ইমেইল ঠিকানা প্রতিরোধ করে।created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMPcreated_atকলামটি স্বয়ংক্রিয়ভাবে বর্তমান তারিখ/সময়কে ডিফল্ট মান হিসেবে সেট করে।
Message when successful
Query OK, 0 rows affected (0.02 sec)
4.2 Checking Table Structure
আপনি যে টেবিলটি তৈরি করেছেন তার গঠন পরীক্ষা করতে, DESC অথবা SHOW COLUMNS ব্যবহার করুন।
DESC users;
Or
SHOW COLUMNS FROM users;
Example output:
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| email | varchar(100) | NO | UNI | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+----------------+
4.3 Listing Tables
বর্তমান ডাটাবেসে বিদ্যমান টেবিলগুলি তালিকাভুক্ত করতে, SHOW TABLES কমান্ড চালান।
SHOW TABLES;
Example output:
+------------------+
| Tables_in_mydb |
+------------------+
| users |
| products |
| orders |
+------------------+
4.4 Deleting a Table
আপনি আর প্রয়োজন না এমন একটি টেবিল মুছে ফেলতে, DROP TABLE কমান্ড ব্যবহার করুন।
DROP TABLE users;
4.4.1 Important notes when deleting a table
- সতর্ক থাকুন: টেবিল মুছে ফেললে ডেটা স্থায়ীভাবে মুছে যায়!
- মুছে ফেলার সময় ত্রুটি এড়াতে,
IF EXISTSযোগ করুন।DROP TABLE IF EXISTS users;
Message when successful
Query OK, 0 rows affected (0.01 sec)
4.5 Resetting Table Data (Delete All Rows)
যদি আপনি টেবিলের গঠন রাখতে চান কিন্তু ভিতরের ডেটা মুছে ফেলতে চান, TRUNCATE TABLE ব্যবহার করুন।
TRUNCATE TABLE users;
Difference from DROP TABLE
DROP TABLEটেবিলটি নিজেই মুছে দেয়।TRUNCATE TABLEশুধুমাত্র ডেটা মুছে দেয় এবং টেবিলের গঠন বজায় রাখে।
4.6 Common Errors and Fixes
4.6.1 “Table already exists” error
Example error:
ERROR 1050 (42S01): Table 'users' already exists
How to fix
- Check existing tables
SHOW TABLES;
- Create the table with
IF NOT EXISTSCREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
4.6.2 “Unknown table” error
Example error:
ERROR 1051 (42S02): Unknown table 'users'
How to fix
SHOW TABLES;ব্যবহার করে টেবিলটি আছে কিনা যাচাই করুন- যদি না থাকে, তবে
IF EXISTSযোগ করুনDROP TABLE IF EXISTS users;
4.7 সারাংশ
এই অংশে, আমরা মৌলিক MySQL টেবিল অপারেশনগুলি কভার করেছি: টেবিল তৈরি, যাচাই, এবং মুছে ফেলা।


