Sql টিউটোরিয়াল, পর্ব – ৬ (ডাটাবেজ দেখা ও ডিলেট করা, টেবিল তৈরি করা ও দেখা)

এই সিরিজের পূর্বের টিউটোরিয়াল গুলঃ

  1. sql টিউটোরিয়াল – ১ (সূচনা পর্ব)
  2. Sql টিউটোরিয়াল, পর্ব – ২ (সার্ভার পাসওয়ার্ড পরিবর্তন করা)
  3. Sql টিউটোরিয়াল, পর্ব – ৩ (ডাটাবেজ তৈরি করা ও দেখা)
  4. sql টিউটোরিয়াল, পর্বঃ – ৪ (ডাটা টাইপ, ইন্টেজার)
  5. Sql টিউটোরিয়াল, পর্ব – ৫ (ডাটা টাইপ)

সবাইকে আরো একবার শুভেচ্ছা ও স্বাগতম sql টিউটোরিয়াল পর্বে। আজকে আমরা ষ্টুডেন্টদের জন্য লেজার বুক অর্থাৎ ডাটাবেজে টেবিল তৈরি করব যেখানে এক বা একাধিক ফিল্ড থাকবে। একটি লেজার বুকে সাধারনত এক বা একাধিক ঘর থাকে তেমনি একটি ডাটাবেজ টেবিলেও এক বা একাধিক টেবিল থাকে। মনে করুন স্টুডেন্টদের ইনফরমেশন লেজারে যে সব ঘর থাকে তাহলঃ- আইডি নাম্বার, নাম, জন্ম তারিখ, পিতার নাম, মাতার নাম, ফোন নাম্বার, ঠিকানা। চলুন শুরু করি।

1Show Databases: গত পর্বে আমরা ডাটাবেজ তৈরি করেছিলাম। ষ্টুডেন্ডদের সাথে সম্পৃক্ত লেজার বুক গুল সাধারনত ষ্টুডেন্টদের লেজারের আলমারিতেই রাখা হয়। তেমনি  ষ্টুডেন্টদের ইনফরমেশন রাখার জন্য ষ্টুডেন্টদের ডাটাবেসে আমরা একটি লেজার বুক তথা টেবিল তৈরি করব। এজন্য আমাদেরকে ষ্টুডেন্টদের ডাটাবেস নির্বাচন করতে হবে। ডাটাবেস নির্বাচন করার পূর্বে একবার আমরা দেখেনেই আমাদের সার্ভারে কি কি ডাটাবেস রয়েছে। সার্ভারে যে সকল ডাটাবেজ রয়েছে তা দেখার জন্য sql সাইন্টেক্স হচ্ছে-

Show Databases

cmd তে “Show Databases;” লিখে এন্টার প্রেস করুন। সার্ভারে যে সমস্ত ডাটাবেস রয়েছে যা দেখাবে। উল্লেখ্য থাকে যে, mysql নিয়ে যে কোন কাজ করার সময় অবশ্যই আপনাকে mysql লগিন করতে হবে। ফলাফল দেখাবে নিচের ১ নং ছবির মত।

5DELETE DATABASE: কখন ডাটাবেজ Delete করার প্রয়োজন হয়। আপনি চাইলে sql syntax ব্যবহার করে ডাটাবেজ সার্ভার থেকে ডিলেট করে দিতে পারেন। চলুন দেখি কিভাবে একটি ডাটাবেজ sql syntax এর মাধ্যমে Delete করা যায়।

প্রথমে আমরা একটি ডাটাবেজ তৈরি করব যার নাম “temp” । কিভাবে ডাটাবেজ তৈরি করতে হয় তা পূর্বের পর্বে আলোচনা করা হয়েছিল। “temp” নামের ডাটাবেজ তৈরি করার জন্য mysql এ লগিন করুন এবং cmd তে লিখুন CREATE DATABASE temp;  । সার্ভার রিটার্ন করবে “query OK ….”  পুনরায় cmd তে লিখুন FLUSH PRIVILEGES; সার্ভার পুনরায় রিটার্ন করবে “query OK ….” । “FLUSH PRIVILEGES” কেন করা হয় তা পূর্বের অধ্যয় গুলতে আলোচনা করা হয়েছে। প্রথমে আমরা ডাটাবেজ সফল ভাবে তৈরি হয়েছে কিনা তা দেখব SHOW DATABASES সাইন্টেক্স এর মাধ্যমে। এখন আমরা “temp” নামের ডাটাবেজটি Delete করব। ডাটাবেজ ডিলেট করার জন্য sql syntax হচ্ছে-

DROP DATABASE database_name;

6আমরা যেহেতু “temp” নামে ডাটাবেজটি Delete করব সেহেতু “temp” নামের ডাটাবেজটি ডিলেট করার জন্য sql syntax হবে DROP DATABASE temp; । cmd তে লিখুন DROP DATABASE temp; এবং এন্টার প্রেস করুন। সার্ভার রিটার্ন করবে  “query OK ….” ।পুনরায় আমরা SHOW DATABASES সাইন্টেক্স এর মাধ্যমে দেখে নিব ডাটাবেজটি সফল ভাবে Delete হয়েছে কিনা। সবটুক বিষয় দেখাবে নিচের db1, db2 ছবির ন্যায়।

Use Database: আপনি যখন টেবিল তৈরি করবেন তখন অবশ্যই আপনাকে একটি নিদিষ্ট ডাটাবেজের অধীনে টেবিল তৈরি করতে হবে। কোন ডাটাবেজ এর অধীনে টেবিল তৈরি করা হবে তা নির্বাচন করার জন্য sql সাইনটেক্স হচ্ছে-

USE database_name;

2সার্ভার রিটার্ন করবে “Database changed”

এখানে student_info ডাটাবেজে আমরা ষ্টুডেন্টদের ইনফরমেশন রাখার জন্য টেবিল তৈরি করব। তাহলে আমাদের sql সাইনটেক্স হবে “USE student_info”. সার্ভার রিটার্ন করবে “Database Changed”। ঠিক  ২নং ছবির মত।

CREATE TABLE: একটি টেবিল এক বা একাধিক ফিল্ডের সমষ্টি। গঠনের দিক থেকে ডাটাবেজ কে চিন্তা করলে সজ্ঞা গুল এমন হবে-

  • ডাটাবেজঃ এক বা একাধিক টেবিলের সমষ্টিতে একটি ডাটাবেজ তৈরি হয়। একটি পরিপূর্ন ডাটাবেজে এক বা একাধিক টেবিল অবশ্যই থাকবে। কিন্তু টেবিল ছাড়াও ডাটাবেজ তৈরি করা সম্ভাব।
  • টেবিলঃ এক বা একাধিক ফিল্ডের সমষ্টি এবং একটি ডাটাবেজের আন্ডারে তৈরি হয় এক বা একাধিক টেবিল। একটি টেবিল তৈরি করার জন্য অবশ্যই নূন্যতম একটি ফিল্ডের প্রয়োজন হবে।
  • ফিল্ডঃ যা এক বা একাধিক ছোট ছোট ডাটার সম্নবয়ে গঠিত হয় তাই ফিল্ড। একটি ফিল্ড অবশ্যই একটি টেবিলের আন্ডারে হয়ে থাকে।

dbগঠন থেকে দেখা যাচ্ছে যে একটি টেবিল অবশ্যই নূন্যতম একটি টেবিল থাকা প্রয়োজন। চলুন একটি টেবিল তৈরি করি। টেবিল তৈরি করার জন্য sql syntax হচ্ছে-

CREATE TABLE table_name (fild_name data_type(data_length) extra_, fild_name data_type(datalength),……,………, );

3Syntax Explain: উপরক্ত syntax এর “CREATE TABLE” পর্যন্ত হচ্ছে sql এর টেবিল তৈরি করার ফাংশন। এর পর যে নামে টেবিল তৈরি করা হবে তার নাম। উপরের syntax এ table_name এর স্থানে টেবিলের নাম হবে। এর পর () মধ্যে হচ্ছে উক্ত উক্ত ফাংশনের আরগুমেন্ট বা প্যারামিটার। একটি ফাংশনে এক বা একাধিক প্যারামিটার থাকতে পারে। একের অধিক প্যারামিটার হলে প্রতিটি প্যারামিটারকে আলাদা করার জন্য ক্লোন (,) ব্যবহার করা হয়। “CREATE TABLE” ফাংশনের প্যারামিটারে ফিল্ডের নাম ও ডাটা টাইপ লিখা হয়। উপরের syntax এ “fild_name” এর স্থানে ফিল্ড এর নাম হবে। এর পর স্পেস এর পর “data_type”  ফাংশন । “data_type”  এর স্থানে হবে প্রথম যে ফিল্ডটি আপনি তৈরি করতে চান তা কোন ডাটা টাইপের (integer, varchar) ইত্যাদি ডাটা টাইপ নিয়ে ……………….. আলোচনা করা হয়েছে। এবং “data_type ” ফাংশনের আরগুমেন/প্যারামিটার হচ্ছে “data_length” । “data_length” উক্ত ফিল্ডের লেন্থ। এর পর আপনি এই ফিল্ডের কি কি বৈশিষ্ট থাকবে তা নির্বাচন করতে হবে। কোন বৈশিষ্ট না থকলে কিছুই লিখার প্রয়োজন নেই। এর পর কমা দিয়ে আপনার ২য় ফিল্ড তৈরি করবেন।

db1চলুন একটি তৈরি করে ফেলি। “info”  নামের একটি টেবিল তৈরি করাব।  যার ৩ টি ফিল্ড থাকবে। যথা “ID”, “Name” ও “Email” । উক্ত ফিল্ড গুলোর মধ্যে “ID” এর কিছু বিশেষ কিছু বৈশিষ্ট থাকবে। এক নজরে দেখে নেওয়া যাক sql এ একটি ফিল্ডের সাধারনত কি কি কমন বৈশিষ্ট থাকতে পারে। প্রথমে আমরা টেবিল তৈরি করি syntax explain বিস্তারিত আলোচনা করা হবে। সুতারং আমাদের টেবিল তৈরি করার syntax হবে-

CREATE TABLE info (ID INTEGER(10) NUT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Email VARCHAR(30));

উক্ত syntax টি cmd তে mysql এ লগিন ও “studen_info” ডাটাবেজটি নির্বাচন করার পর পেষ্ট করে এন্টার প্রেস করুন। সার্ভার রিটার্ন করবে  “query OK…..” যা  ৩ নম্বার ছবিটির অনূরুপ।

Syntax Explain: (“CREATE TABLE info”): উক্ত syntax এ Create table() ফাংশন ব্যবহার করা হয়েছে এবং “info” হচ্ছে আমরা যে নামে টেবিল তৈরি করতে চায় তার নাম।

(“ID INTEGER(10) NUT NULL AUTO_INCREMENT PRIMARY KEY”): dfgdfgdfgউক্ত ফাংশনের প্রথম আরগুমেন্ট এর “ID” হচ্ছে ফিল্ড এর নাম। “INTEGER” হচ্ছে উক্ত “ID” নামের ফিল্ডের ডাটা টাইপ ফাংশন। “ID” ফিল্ড “INTEGR” ডাটা টাইপের হবে এবং উক্ত “INTEGER()” ফাংশনের আরগুমেন্ট হিসেবে “10” দেওয়া আছে। এর মানে হচ্ছে উক্ত “ID” ফিল্ডের লেন্থ সর্বচ্চ ১০ টি সংখ্যা হতে পারবে। এর পর একটি স্পেস এর পর “NUT NULL” পুনরায় স্পেস এর পর “AUTO_INCREMENT” পুনরায় স্পেস এর পর “PRIMARY KEY” । এই ৩ টি  “NUT NULL”, “AUTO_INCREMENT” ও “PRIMARY KEY” হচ্ছে “ID” নামের ফিল্ডের এক্সটা বৈশিষ্ট। দেখা যাক এই আলাদা বৈশিষ্ট ৩ টির কাজ কি কি-

  • NUL NULL: এই বৈশিষ্ট এর অর্থ হচ্ছে এই ফিল্ডটি কখন Null(শূন্য) থকবেনা। যদি এই ফিল্ডটি Null রেখে অন্য ফিল্ড গুলতে ডাটা যোগ করা সম্ভাব নয় অথবা এই ফিল্ডিটি একক ভাবে এই ফিল্ডটিতে Null ডাটা যোগ করা সম্ভাব নয়। Error দেখাবে।
  • AUTO_INCREMENT: এই বৈশিষ্টটি সাধারনত integer টাইপ ফিল্ডের জন্য ব্যবহার করা হয়। উক্ত ফিল্ডটিতে যখন Null ডাটা যোগ করা হবে তখন সর্বশেষ উক্ত ফিল্ডটিতে   যে ভ্যলুটি যোগ করা হয়েছিল তার সাথে এক যোগ হয়ে বর্তমান ডাটাটি যোগ হবে। পরে উদাহরন দেওয়া হবে।
  • PRIMARY KEY: এর অর্থ হচ্ছে এই ফিল্ডের ডাটা গুল ইউনিক। অর্থাৎ একবার এই ফিল্ডে যে ডাটা যোগ করা হবে। হুবাহুব ঐ ডাটা আর ২য় বার ঐ ফিল্ডে যোগ হবেনা। যোগ করতে চাইলে Error দেখাবে।

(Name VARCHAR(20)): এটি উক্ত টেবিলের ২য় প্যারামিটার। যাতে “Name” নামের একটি ফিল্ড এর কথা বলা হয়েছে। VARCHAR(20) হচ্ছে ডাটা টাইপ ফাংশন। উক্ত ডাটা টাইপ ফাংশনের মাধ্যমে বলে দেওয়া হয়েছে “Name” নামের যে ফিল্ডটি তৈরি হবে তাতে শুধু মাত্র VARCHAR টাইপ ডাটা যোগ করা যাবে এবং ডাটার সর্বচ্চ লেন্থ হবে ২০ যা VARCHAR ফাংশনের প্যারামিটারের মধ্যে বলে দেওয়া হয়েছে।

(Email VARCHAR(30)): উক্ত টেবিলের  ৩য় ও সর্বশেষ প্যারামিটারটি উক্ত টেবিলের ২য় প্যারামিটারের ন্যায়। শুধু মাত্র ডাটা লেন্থ ৩০ ।

DESCRIBE TABLE: একটি টেবিলে কি কি ফিল্ড রয়েছে, উক্ত ফিল্ড গুল কি ধরনের ডাটা টাইপের, ডাটা লেন্থ কতটুক, কোন ফিল্ড এর কি কি আলাদা বৈশিষ্ট রয়েছে এক কথায় একটি টেবিলের গঠন দেখার জন্য এই syntax ব্যবহার করা হয়। এই syntax এর গঠন হচ্ছে।

DESCRIBE table_name;

4আমরা আমাদের সদ্য তৈরি করা টেবিলটির গঠন দেখব।(একটি বিষয় অবশ্যই মনে রাওখতে হবে। আপনি যেহেতু mysql নিয়ে কাজ করবেন সেহেতু আপনাকে অবশ্যই mysql সার্ভারে লগিন করতে হবে এবং এবং কাজ করার জন্য একটি ডাটাবেজ নির্বাচন করতে হবে। সার্ভারে লগিন ও ডাটাবেজ নির্বাচন সহ অনন্য বিষয় গুল নিয়ে পূর্বের পর্ব গুলতে অনেকবার ও বর্তমান পর্বতেও আলোচনা করা হয়েছে। সুতারাং কোন পাঠকের যদি এই পর্যন্ত লিখা sql টিউটরিয়াল গুলোর কোন অংশে বুঝতে সমস্যা হয় তাহলে বুগত পর্ব গুল পড়ে নিবেন অথবা কমেন্টের মাধ্যমে জানাবেন।) এর জন্য যে syntax টি দরকার হবে তাহল-

DESCRIBE info;

উপরের কোড টুক cmd তে পেষ্ট করুন অথবা টাইপ করুন এবং এন্টার প্রেস করুন। সার্ভার উক্ত “info” টেবিলের স্ট্রাকচার/গঠন দেখাবে। যা ৪ নম্বার ছবির ন্যায়।

আসছে নভেম্বর মাস থেকে শুরু হবে সি++ , সি#, php with mysql ও ভিএস টিউটোরিয়াল সাথে থাকছে ডেক্সটপ ডাটাবেজ এপ্লিকেশন ডেভেলপমেন্ট। হোষ্ট হিসেবে থাকছি আমি ইমরান ও সাপোর্টে থকবে টিউটোহোষ্ট। দেখা হবে শুধুমাত্র টিউটোরিয়ালবিডিতে আজকের মত বিদায় সবাই ভাল থাকুন, সুস্থ থাকুন ও টিউটোরিয়ালবিডির সাঙ্গেই থাকুন।