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';
আউটপুট:
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+';
আউটপুট:
Student Table
| Roll | Name |
|---|---|
| 01 | Shakib |
| 03 | Rajib |
| 04 | Sabbir |
