SQL (এসকিউএল)

Structured Query Language

এসকিউএল কি?

এসকিউএল(SQL) এর পূর্ণরূপ Structured Query Language. এটি একটি কুয়েরি ভাষা যার মাধ্যমে ডেটাবেজ তৈরি, ডেটাবেজ এ তথ্য সংযোজন, বিয়োজন, হালনাগাদ (আপডেট) ও ডেটা খুঁজে বের করা যায়। এসকিউএল কেস সেনসিটিভ নয়। অর্থাৎ, এসকিউএল ছোট হাতের অক্ষরে লিখলেও কাজ করে এবং বড় হাতের অক্ষরে লিখলেও কাজ করে।

টেবিল তৈরি করা

এসকিউএল এর মাধ্যমে টেবিল তৈরি করার জন্য CREATE TABLE স্ট্যাটমেন্ট ব্যবহার করা হয়।

CREATE TABLE স্ট্যাটমেন্ট সিনট্যাক্স:


CREATE TABLE Table Name(
    FieldName datatype(size),
    FieldName datatype(size),
    FieldName datatype(size)
);

CREATE TABLE এর পর টেবিলের নাম দিতে হয়। টেবিলের নামের পর প্রথম বন্ধনীর ভিতরে ফিল্ডগুলোর নাম এবং ফিল্ড সাইজ দিতে হয়। স্ট্যাটমেন্ট এর শেষে একটি সেমিকোলন দিতে হয়।

এখন আমরা এসকিউএল এর সাহায্যে Student Table নামে একটি ডেটা টেবিল তৈরি করবো । Student Table টেবিলে Roll, Name এবং Phone নামে ৩ টি ফিল্ড থাকবে।

উদাহরণ:


CREATE TABLE Student Table(
    Roll number(3),
    Name text(20),
    Phone number(11)
);

আউটপুট:

Student Table

Roll Name Phone



ব্যাখা: এখানে Student Table নামে টেবিল তৈরি করা হয়েছে তাই CREATE TABLE এর পর Student Table লেখা হয়েছে। টেবিলের নামের পর প্রথম বন্ধনীর ভিতরে ফিল্ডগুলোর নাম (Roll, Name, Phone) এবং ফিল্ড সাইজ দেওয়া হয়েছে। Roll ও Phone পূর্ণসংখ্যা তাই এদের ডেটা টাইপ int দেওয়া হয়েছে এবং Name এর ক্ষেত্রে text কিংবা varchar ডেটাটাইপ ব্যবহার করা হয়েছে। প্রথম বন্ধনীর ভিতরে ফিল্ড সাইজ দেওয় হয়েছে।

ফিল্ড সাইজ না দিলেও চলবে। অর্থাৎ, ফিল্ডসাইজ দেওয়া বাধ্যতামূলক না।

এছাড়া, DROP TABLE স্ট্যাটমেন্ট ব্যবহার করে একটি টেবিল মুছে ফেলা সম্ভব। এক্ষেত্রে, DROP TABLE স্ট্যাটমেন্ট এর পর টেবিলের নাম লিখতে হবে। আমরা যদি Student Table নামক একটি টেবিল মুছে ফেলতে চাই, এক্ষেত্রে নিচের কোডটুকু লিখতে হবে।

এসকিউএল কোড:


DROP TABLE Student Table;

DROP TABLE ব্যবহার করলে সকল রেকর্ড সহ টেবিল মুছে যাবে।

টেবিলে ফিল্ড যুক্ত করা/মুছে ফেলা

কোন ডেটা টেবিলের ফিল্ড সংযোজন কিংবা মুছে ফেলার জন্য ALTER TABLE স্ট্যাটমেন্ট ব্যবহার করা হয়। ডেটা টেবিলে ফিল্ড যুক্ত করার জন্য ALTER TABLE এর সাথে ADD স্ট্যাটমেন্ট ব্যবহার করা হয় এবং ডেটা টেবিলে ফিল্ড মুছে ফেলা / বাদ দেওয়ার জন্য ALTER TABLE এর সাথে DROP স্ট্যাটমেন্ট ব্যবহার করা হয়

টেবিলে ফিল্ড যুক্ত করার সিনট্যাক্স:


ALTER TABLE Table Name
ADD columnname datatype(size);

ধরা যাক, Student Information নামে একটি ডেটা টেবিলে Roll, Name, Class নামে ৩ টি ফিল্ড আছে। এখন এই টেবিলে Phone নামে একটি ফিল্ড যুক্ত করতে চাচ্ছি।

এসকিউএল কোড:


ALTER TABLE Student Table
ADD Phone int(11);

আউটপুট:

Student Table

Roll Name Class Phone




Student Table এ Phone নামে নতুন একটি ফিল্ড যুক্ত হয়েছে।

টেবিলে ফিল্ড মুছে ফেলার সিনট্যাক্স:


ALTER TABLE Table Name
DROP columnname;

এখন যদি আমরা Student Table থেকে Phone ফিল্ড মুছে ফেলতে চাই তাহলে ALTER TABLE এর সাথে DROP স্ট্যাটমেন্ট ব্যবহার করতে হবে।

এসকিউএল কোড:


ALTER TABLE Student Table
DROP Phone;

আউটপুট:

Student Table

Roll Name Class



Student Table টেবিল থেকে Phone নামের ফিল্ড মুছে ফেলা হয়েছে।

টেবিলে রেকর্ড এন্ট্রি করা

ডেটা টেবিলে রেকর্ড এন্ট্রি করার জন্য INSERT INTO স্ট্যাটমেন্ট ব্যবহার করা হয়। নিচের ডেটা টেবিলটি লক্ষ্য করুন:

INSERT INTO স্ট্যাটমেন্ট এর সিনট্যাক্স:


INSERT INTO Table Name(field1, field2, field3)
VALUES(Value1, Value2, Value3);

নিচের ডেটা টেবিলটি লক্ষ্য করুন:

Student Table

Roll Name Group
01 Shakib Science
02 Rajib Science
03 Rakib Science

এখন আমরা এই টেবিলে একটি রেকর্ড প্রবেশ করাবো। ধরা যাক, একজন শিক্ষার্থীর Roll: 01, Name: Raju, Group: Science

এসকিউএল কোড:


INSERT INTO Student Table(Roll, Name, Group)
VALUES('01', 'Raju', 'Science');

আউটপুট:

Student Table

Roll Name Group
01 Shakib Science
02 Rajib Science
03 Rakib Science
04 Raju Science

নতুন রেকর্ড যুক্ত হয়েছে।

শর্ত সাপেক্ষে ডেটা খুঁজে বের করা

শর্ত সাপেক্ষে ডেটা খুঁজে বের করার জন্য SELECT স্ট্যাটমেন্ট ব্যবহার করা হয়। নিচের Student Table থেকে এখন আমরা শর্ত সাপেক্ষে ডেটা খুঁজে বের করবো।

Student Table

Roll Name Group Result
01 Shakib Science A+
02 Sajid Arts A
03 Rajib Science A+
04 Sabbir Arts A+
05 Rakib Science A

যাদের গ্রুপ Science তাদের রেকর্ড দেখার SQL:


SELECT *
FROM Student Table
WHERE Group='Science';

ব্যাখা:
  • SELECT: এখানে ফিল্ড এর নাম লিখতে হয়। * চিহ্ন দ্বারা সকল ফিল্ড বুঝানো হয় ।
  • FROM: এখানে টেবিল এর নাম লিখতে হয়।
  • WHERE: এখানে শর্ত লিখতে হয়।

আউটপুট:

Student Table

Roll Name Group Result
01 Shakib Science A+
03 Rajib Science A+
05 Rakib Science A

যাদের রেজাল্ট A+ তাদের রোল ও নাম দেখার SQL:


SELECT Roll, Name
FROM Student Table
WHERE Result='A+';

ব্যাখা:
  • SELECT: এখানে ফিল্ড এর নাম লিখতে হয়। যেহেতু, আমরা রোল ও নাম দেখতে চাচ্ছি তাই এখানে SELECT Roll, Name লেখা হয়েছে।
  • FROM: এখানে টেবিল এর নাম লিখতে হয়।
  • WHERE: এখানে শর্ত লিখতে হয়। যারা A+ পেয়েছে আমরা তাদের রেকর্ড দেখবো তাই এখানে শর্ত লেখা হয়েছে: WHERE Result='A+'

আউটপুট:

Student Table

Roll Name
01 Shakib
03 Rajib
04 Sabbir