Skill

Database Tutorials SQL এর মৌলিক ধারণা গাইড ও নোট

592

SQL (Structured Query Language) একটি ভাষা যা ব্যবহৃত হয় রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমে (RDBMS) ডেটা পরিচালনা করার জন্য। SQL এর মৌলিক ধারণাগুলো বুঝতে পারা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি SQL এর কার্যকারিতা এবং কার্যপ্রণালীর ভিত্তি গঠন করে। নিচে SQL এর মৌলিক ধারণাগুলো বিস্তারিতভাবে আলোচনা করা হলো:


১. ডেটাবেস (Database)

ডেটাবেস হল একটি সিস্টেম যা সংগঠিতভাবে ডেটা সংরক্ষণ এবং পরিচালনা করে। এটি একটি বা একাধিক টেবিলের সমন্বয়ে গঠিত। উদাহরণস্বরূপ, একটি কোম্পানির ডেটাবেসে কর্মচারীদের তথ্য, পণ্যসমূহ এবং বিক্রির তথ্য থাকতে পারে।

  • ডেটাবেসের উপাদান:
    • টেবিল (Tables): তথ্য সংরক্ষণের জন্য রিলেশনাল ডেটাবেসের মূল ইউনিট। প্রতিটি টেবিলের মধ্যে বিভিন্ন কলাম থাকে, যেগুলো বিভিন্ন ধরনের ডেটা ধারণ করে।
    • স্কিমা (Schema): টেবিলের কাঠামো এবং সম্পর্কগুলির একটি ধারণা। এটি একটি ডেটাবেসের অর্গানাইজেশন।

২. টেবিল (Table)

টেবিল হল ডেটাবেসের মূল সংরক্ষণস্থান যেখানে ডেটা সারি (Rows) এবং কলাম (Columns) আকারে সংগঠিত থাকে। টেবিলের প্রতিটি কলাম একটি নির্দিষ্ট ডেটাটাইপ ধারণ করে (যেমন: Integer, Varchar, Date)। প্রতিটি সারি একটি একক রেকর্ড ধারণ করে।

  • উদাহরণ: একটি কর্মচারী টেবিলের মধ্যে কলামগুলো হতে পারে: Employee_ID, Name, Age, Department, ইত্যাদি।

৩. স্কিমা (Schema)

স্কিমা হল ডেটাবেসের অবকাঠামো যা টেবিল, ভিউ, ইনডেক্স, এবং অন্যান্য ডেটাবেস অবজেক্টগুলোর গঠন নির্ধারণ করে। এটি ডেটাবেসের কাঠামো এবং সম্পর্ককে বর্ণনা করে। এটি মূলত ডেটাবেসের পরিকল্পনা বা ডিজাইন।


৪. প্রাইমারি কী (Primary Key)

প্রাইমারি কী হল এমন একটি কলাম বা কলামগুলির সমন্বয় যা টেবিলের প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে। একটি প্রাইমারি কী কলাম NULL হতে পারে না এবং এর মান অনন্য হতে হবে।

  • উদাহরণ: কর্মচারী টেবিলে Employee_ID কলামটি প্রাইমারি কী হতে পারে, কারণ প্রতিটি কর্মচারীর একটি অনন্য আইডি থাকে।

৫. ফরেন কী (Foreign Key)

ফরেন কী হল এমন একটি কলাম বা কলামগুলির সমন্বয় যা একটি টেবিলের প্রাইমারি কী বা অন্য টেবিলের কী এর সাথে সম্পর্ক স্থাপন করে। এটি ডেটাবেসে বিভিন্ন টেবিলের মধ্যে সম্পর্ক গঠন করে।

  • উদাহরণ: একটি Department টেবিলের Department_ID প্রাইমারি কী হতে পারে, এবং Employee টেবিলে এটি একটি ফরেন কী হিসেবে থাকবে।

৬. NULL এবং NOT NULL

  • NULL: NULL মানটি বোঝায় যে একটি ক্ষেত্র বা কলামটি 'অনুপস্থিত' বা 'অজানা'। এটি একটি বৈধ মান, কিন্তু এটি তথ্যের অভাব নির্দেশ করে।
  • NOT NULL: NOT NULL কনস্ট্রেইন্ট একটি কলামে NULL মানের উপস্থিতি নিষিদ্ধ করে। এই কনস্ট্রেইন্টের মাধ্যমে ডেটাবেসে তথ্য থাকা নিশ্চিত করা হয়।

৭. ডেটা টাইপ (Data Types)

SQL এ বিভিন্ন ধরনের ডেটা টাইপ রয়েছে, যার মাধ্যমে আমরা প্রতিটি কলামে কী ধরনের ডেটা সংরক্ষণ করতে চাই তা নির্ধারণ করি। কিছু সাধারণ ডেটা টাইপ হলো:

  • INTEGER: পূর্ণসংখ্যা (যেমন: 1, 100, -45)।
  • VARCHAR: অক্ষরের স্ট্রিং (যেমন: "John", "Manager")।
  • DATE: তারিখ (যেমন: "2023-01-01")।
  • BOOLEAN: সত্য (True) বা মিথ্যা (False) মান।

৮. SQL Statements

SQL এর মাধ্যমে ডেটাবেসে কার্যক্রম পরিচালনা করা হয় বিভিন্ন SQL স্টেটমেন্ট ব্যবহার করে। SQL স্টেটমেন্টের মধ্যে কয়েকটি গুরুত্বপূর্ণ স্টেটমেন্ট হল:

  • SELECT: ডেটা খুঁজে পাওয়া বা পুনরুদ্ধারের জন্য ব্যবহৃত হয়।
  • INSERT: নতুন ডেটা যোগ করার জন্য ব্যবহৃত হয়।
  • UPDATE: বিদ্যমান ডেটা পরিবর্তন করার জন্য ব্যবহৃত হয়।
  • DELETE: ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

৯. CRUD অপারেশন (Create, Read, Update, Delete)

CRUD অপারেশনগুলি হল ডেটাবেস ম্যানিপুলেশনের মৌলিক কাজগুলো:

  • Create: নতুন রেকর্ড তৈরি করা (INSERT)।
  • Read: ডেটা পড়া বা পুনরুদ্ধার করা (SELECT)।
  • Update: বিদ্যমান রেকর্ড আপডেট করা (UPDATE)।
  • Delete: রেকর্ড মুছে ফেলা (DELETE)।

১০. SQL Query এবং Clauses

SQL কিউরিগুলি ব্যবহার করা হয় ডেটাবেসে তথ্য অনুসন্ধান এবং পরিচালনা করার জন্য। কিছু গুরুত্বপূর্ণ Clause হল:

  • WHERE: ডেটাকে শর্তানুসারে ফিল্টার করতে ব্যবহৃত হয়।
  • ORDER BY: ডেটা সাজাতে ব্যবহৃত হয়।
  • GROUP BY: ডেটাকে গ্রুপ করতে ব্যবহৃত হয়।
  • HAVING: গ্রুপ করা ডেটায় শর্ত প্রয়োগ করতে ব্যবহৃত হয়।

এই মৌলিক ধারণাগুলি SQL এর কাঠামো এবং কার্যপ্রণালী বুঝতে সাহায্য করবে। SQL শিখতে এবং দক্ষ হতে এই ধারণাগুলি প্রয়োজনীয় ভিত্তি তৈরি করে।

Content added By

Database, Table, এবং Schema এর ধারণা

389

SQL এবং রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমে (RDBMS) ডেটাবেস, টেবিল, এবং স্কিমা এর বিভিন্ন ধারণা রয়েছে, যা ডেটা সংরক্ষণ এবং সংগঠন করার জন্য ব্যবহৃত হয়। এই ধারণাগুলি ডেটাবেসের কাঠামো এবং ডেটা ম্যানিপুলেশন প্রক্রিয়ার মূল উপাদান।

চলুন, এগুলোর প্রতিটির বিস্তারিত ব্যাখ্যা করি:


১. ডেটাবেস (Database)

ডেটাবেস একটি সংগঠিত ডেটার সংগ্রহ, যেখানে সম্পর্কিত ডেটা সংরক্ষিত হয় এবং সেই ডেটা গুলির উপরে বিভিন্ন ধরনের অপারেশন করা যায় (যেমন: যোগ করা, আপডেট করা, মুছে ফেলা এবং অনুসন্ধান করা)। এটি একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) দ্বারা পরিচালিত হয়, যা ডেটা সংরক্ষণ, পুনরুদ্ধার এবং ম্যানিপুলেশন করার জন্য বিভিন্ন টুলস এবং কমান্ড প্রদান করে।

ডেটাবেসের মূল বৈশিষ্ট্য:

  • ডেটা সংরক্ষণ: সমস্ত সম্পর্কিত ডেটা একটি ডেটাবেসে সংরক্ষিত থাকে, যা একটি নির্দিষ্ট অ্যাপ্লিকেশন বা ব্যবস্থার জন্য প্রয়োজনীয় হতে পারে।
  • সুরক্ষা: ডেটাবেসে সাধারণত প্রবেশাধিকার নিয়ন্ত্রণ করা হয় এবং এটি সাধারণত পাসওয়ার্ড বা অন্যান্য নিরাপত্তা ব্যবস্থা দ্বারা সুরক্ষিত থাকে।
  • এডমিনিস্ট্রেশন: ডেটাবেসের তথ্য পরিচালনা এবং কনফিগারেশন করার জন্য একজন ডেটাবেস অ্যাডমিনিস্ট্রেটর (DBA) থাকে।

উদাহরণ:

CREATE DATABASE CompanyDB;

উপরের SQL কমান্ডটি একটি নতুন ডেটাবেস CompanyDB তৈরি করবে।


২. টেবিল (Table)

টেবিল হল ডেটাবেসের একটি গঠনমূলক উপাদান, যেখানে ডেটা সংরক্ষিত থাকে। একটি টেবিল সাধারণত রো এবং কলাম দিয়ে গঠিত। প্রতিটি কলাম একটি নির্দিষ্ট ধরনের ডেটা ধারণ করে (যেমন: সংখ্যা, টেক্সট, তারিখ ইত্যাদি), এবং প্রতিটি রো একটি একক রেকর্ডের প্রতিনিধিত্ব করে।

টেবিলের বৈশিষ্ট্য:

  • কলাম: প্রতিটি কলাম ডেটার একটি নির্দিষ্ট ধরন বা বৈশিষ্ট্য ধারণ করে (যেমন: নাম, বয়স, ফোন নম্বর ইত্যাদি)।
  • রো: একটি রো একক ডেটা রেকর্ড, যা বিভিন্ন কলামের ডেটা ধারণ করে।

উদাহরণ:

CREATE TABLE Employees (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Position VARCHAR(100)
);

উপরের SQL কমান্ডটি একটি Employees টেবিল তৈরি করবে, যেখানে ID, Name, Age, এবং Position নামে কলাম থাকবে।


৩. স্কিমা (Schema)

স্কিমা হল একটি ডেটাবেসের কাঠামো বা গঠন। এটি একটি কন্টেইনার হিসেবে কাজ করে যা টেবিল, ভিউ, ইনডেক্স, স্টোরড প্রোসিজার, এবং অন্যান্য ডেটাবেস অবজেক্টগুলির মধ্যে সম্পর্ক তৈরি করে। স্কিমা ডেটাবেসের একটি লজিক্যাল ভিউ প্রদান করে, যা ডেটা সংরক্ষণ এবং পরিচালনা করার জন্য ডেটাবেস অবজেক্টগুলির মধ্যে সম্পর্ক এবং সীমা নির্ধারণ করে।

স্কিমার বৈশিষ্ট্য:

  • গঠন: স্কিমা ডেটাবেসের সমস্ত টেবিল, ভিউ, এবং অন্যান্য অবজেক্টের সংগঠন নির্ধারণ করে।
  • অধিকার নির্ধারণ: স্কিমা ব্যবহৃত হয়ে ডেটাবেসে বিভিন্ন ব্যবহারকারীর অনুমতি এবং অধিকার নির্ধারণ করা যেতে পারে।

উদাহরণ:

CREATE SCHEMA Sales;

এটি একটি নতুন স্কিমা Sales তৈরি করবে, যার মধ্যে টেবিল এবং অন্যান্য অবজেক্ট তৈরি করা যাবে।


ডেটাবেস, টেবিল এবং স্কিমার মধ্যে সম্পর্ক:

  • ডেটাবেস হল একটি বড় কাঠামো, যার মধ্যে টেবিল থাকে।
  • স্কিমা একটি লজিক্যাল কাঠামো, যা ডেটাবেসের মধ্যে অবজেক্টগুলি (টেবিল, ভিউ, ইন্ডেক্স) সংগঠিত এবং সাজিয়ে রাখে।

সারাংশ:

  • ডেটাবেস: ডেটার সমষ্টি, যেখানে সমস্ত সম্পর্কিত তথ্য সংরক্ষিত থাকে।
  • টেবিল: ডেটাবেসের একটি গঠনমূলক অংশ যেখানে ডেটা রো এবং কলাম আকারে সংরক্ষিত হয়।
  • স্কিমা: একটি ডেটাবেসের কাঠামো এবং টেবিলসহ অন্যান্য অবজেক্টের সন্নিবেশস্থল, যা ডেটাবেসের কাঠামোগত সংগঠন নির্ধারণ করে।

এই ধারণাগুলি ডেটাবেস ডিজাইন এবং পরিচালনায় অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলি ডেটার সঠিক সংরক্ষণ এবং পরিচালনায় সহায়তা করে।

Content added By

Primary Key এবং Foreign Key এর ভূমিকা

913

Primary Key এবং Foreign Key হল রিলেশনাল ডেটাবেস ডিজাইনের দুটি গুরুত্বপূর্ণ উপাদান, যেগুলি টেবিলগুলির মধ্যে সম্পর্ক এবং ডেটার অখণ্ডতা নিশ্চিত করতে সাহায্য করে। এগুলি ডেটাবেসের সংগঠন এবং তথ্য সঠিকভাবে সংরক্ষণ করার ক্ষেত্রে অপরিহার্য ভূমিকা পালন করে।


Primary Key (প্রাইমারি কী)

Primary Key হলো একটি কলাম (বা কলামগুলোর সমষ্টি) যা টেবিলের প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে। অর্থাৎ, এটি একটি টেবিলের প্রতিটি সারির জন্য একটি একক এবং অনন্য মান প্রদান করে। Primary Key এর মাধ্যমে ডেটাবেস নিশ্চিত করে যে একই মান দুটি বার থাকবে না।

Primary Key এর ভূমিকা:

  1. ডেটা অখণ্ডতা: প্রাইমারি কী একটি টেবিলের রেকর্ডগুলিকে অনন্য করে তোলে, যাতে কোনও রেকর্ডের পুনরাবৃত্তি না হয়। এটি ডুপ্লিকেট রেকর্ড তৈরি হওয়া রোধ করে।
  2. ইনডেক্সিং এবং পারফরম্যান্স: সাধারণত, প্রাইমারি কী কলামটি অটোমেটিক্যালি ইনডেক্স করা হয়, যা ডেটা অনুসন্ধানের গতি বাড়ায়।
  3. অবশ্যই মান থাকা: প্রাইমারি কী কলামে NULL মান থাকতে পারে না। প্রতিটি রেকর্ডে এই কলামের মান অবশ্যই উপস্থিত থাকতে হবে, এবং এটি অনন্য হবে।
  4. টেবিলের জন্য বিশেষ সনাক্তকরণ: একটি টেবিলের প্রতিটি রেকর্ডকে একে অপরের থেকে আলাদা করতে প্রাইমারি কী ব্যবহৃত হয়।

প্রাইমারি কী উদাহরণ:

ধরা যাক, একটি Students নামক টেবিল আছে যেখানে প্রতিটি শিক্ষার্থীর একটি অনন্য আইডি রয়েছে:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,  -- Primary Key
    FirstName VARCHAR(50),
    LastName VARCHAR(50)
);

এখানে StudentID হলো Primary Key, যা প্রতিটি শিক্ষার্থীর রেকর্ডকে অনন্যভাবে চিহ্নিত করে।


Foreign Key (ফরেন কী)

Foreign Key হলো একটি কলাম (বা কলামগুলোর সমষ্টি) যা অন্য একটি টেবিলের প্রাইমারি কী কলামের সাথে সম্পর্কিত থাকে। অর্থাৎ, ফরেন কী ব্যবহার করে একটি টেবিলের রেকর্ড অন্য একটি টেবিলের রেকর্ডের সাথে সম্পর্কিত হয়। এটি দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়।

Foreign Key এর ভূমিকা:

  1. ডেটাবেসে সম্পর্ক স্থাপন: ফরেন কী ব্যবহার করে দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করা হয়। এটি রিলেশনাল ডেটাবেসের অন্যতম মূল ধারণা, যেখানে ডেটা টেবিলের মধ্যে যুক্ত থাকে।
  2. ডেটা অখণ্ডতা বজায় রাখা: ফরেন কী সম্পর্কিত টেবিলের মধ্যে ডেটা একযোগভাবে পরিবর্তিত হয়, যা ডেটার অখণ্ডতা নিশ্চিত করে। অর্থাৎ, ফরেন কী ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে, সম্পর্কিত রেকর্ডগুলি ঠিক আছে (যেমন: যদি একটি টেবিলের রেকর্ড মুছে ফেলা হয়, তবে অন্য টেবিলের সম্পর্কিত রেকর্ডটি মুছে ফেলা বা পরিবর্তন করা হবে)।
  3. নাল মানের অনুমতি: ফরেন কী কলামে NULL মান থাকতে পারে, কিন্তু তা তখনই হবে যখন সম্পর্কিত টেবিলের রেকর্ড উপস্থিত না থাকে।
  4. ডেটাবেস নরমালাইজেশন: ফরেন কী রিলেশনাল ডেটাবেসে নরমালাইজেশন প্রক্রিয়ার অংশ হিসেবে ব্যবহৃত হয়, যেখানে ডেটা ডুপ্লিকেশন কমানো এবং ডেটার কার্যকর ব্যবস্থাপনা করা হয়।

ফরেন কী উদাহরণ:

ধরা যাক, আপনার একটি Courses টেবিল এবং একটি Enrollments টেবিল আছে, যেখানে শিক্ষার্থীরা কোর্সে ভর্তি হয়। Enrollments টেবিলের StudentID ফরেন কী হিসেবে Students টেবিলের StudentID কলামের সাথে যুক্ত থাকবে:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY,  -- Primary Key
    FirstName VARCHAR(50),
    LastName VARCHAR(50)
);

CREATE TABLE Enrollments (
    EnrollmentID INT PRIMARY KEY,
    StudentID INT,
    CourseName VARCHAR(50),
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID)  -- Foreign Key
);

এখানে Enrollments টেবিলের StudentID কলামটি Students টেবিলের StudentID কলামের সাথে সম্পর্কিত, যা ফরেন কী হিসেবে কাজ করছে।


সারসংক্ষেপ:

  • Primary Key: একটি টেবিলের প্রতিটি রেকর্ডকে অনন্যভাবে চিহ্নিত করে এবং এটি টেবিলের জন্য অপরিহার্য।
  • Foreign Key: দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করে এবং ডেটার অখণ্ডতা বজায় রাখে।

Primary Key এবং Foreign Key এর সঠিক ব্যবহার ডেটাবেস ডিজাইনকে আরও কার্যকর এবং তথ্য সঠিকভাবে সংরক্ষিত রাখতে সহায়তা করে।

Content added By

ডেটা টাইপস (Integer, Varchar, Date ইত্যাদি)

518

SQL ডেটাবেসে ডেটা সঠিকভাবে সংরক্ষণ এবং পরিচালনা করার জন্য বিভিন্ন ধরনের ডেটা টাইপ ব্যবহার করা হয়। প্রতিটি ডেটা টাইপ নির্ধারণ করে যে কোন ধরণের ডেটা একটি ফিল্ডে সংরক্ষিত হবে এবং সেই ডেটার সাথে কোন অপারেশন করা যাবে। SQL ডেটাবেসে সাধারণত তিনটি প্রধান ধরনের ডেটা টাইপ রয়েছে:

  1. Numeric Types (সংখ্যার ডেটা টাইপ)
  2. Character Types (অক্ষরের ডেটা টাইপ)
  3. Date and Time Types (তারিখ এবং সময়ের ডেটা টাইপ)

নিচে কিছু সাধারণ ডেটা টাইপের বিস্তারিত আলোচনা করা হল:


১. Numeric Types (সংখ্যার ডেটা টাইপ)

এই ডেটা টাইপগুলি সংখ্যাসংক্রান্ত তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।

  • INT (Integer)
    • ব্যবহার: পূর্ণসংখ্যা (যেমন 1, 50, -200, ইত্যাদি) সংরক্ষণ করার জন্য।
    • সাইজ: সাধারণত 4 বাইট।
    • উদাহরণ: CREATE TABLE example (id INT);
  • DECIMAL (বা NUMERIC)
    • ব্যবহার: দশমিক সহ সংখ্যা, যেমন অর্থনৈতিক হিসাব বা পরিমাণ, সংরক্ষণ করতে।
    • সিনট্যাক্স: DECIMAL(p, s) যেখানে p হলো পজিশনের সংখ্যা (মোট ডিজিট) এবং s হলো দশমিকের পরের সংখ্যা (স্কেল)।
    • উদাহরণ: CREATE TABLE example (price DECIMAL(10, 2));
    • উদাহরণ মান: 12345678.90 (10 ডিজিট, তার মধ্যে 2 ডিজিট দশমিকের পর)
  • FLOAT
    • ব্যবহার: দশমিক সহ ভাসমান পয়েন্ট সংখ্যা, যেমন গাণিতিক হিসাব সংরক্ষণ করার জন্য।
    • উদাহরণ: CREATE TABLE example (height FLOAT);
  • BIGINT
    • ব্যবহার: বড় পূর্ণসংখ্যা (যেমন 9223372036854775807)।
    • সাইজ: 8 বাইট।
    • উদাহরণ: CREATE TABLE example (population BIGINT);

২. Character Types (অক্ষরের ডেটা টাইপ)

এই ডেটা টাইপগুলি অক্ষর বা স্ট্রিং সংরক্ষণের জন্য ব্যবহৃত হয়।

  • CHAR (Character)
    • ব্যবহার: স্থির দৈর্ঘ্যের স্ট্রিং সংরক্ষণ করতে।
    • সাইজ: 1 থেকে 255 ক্যারেক্টার।
    • উদাহরণ: CREATE TABLE example (name CHAR(50));
  • VARCHAR (Variable Character)
    • ব্যবহার: পরিবর্তনশীল দৈর্ঘ্যের স্ট্রিং সংরক্ষণ করতে। সাধারণত এটি CHAR এর তুলনায় বেশি ব্যবহার করা হয় কারণ এতে স্টোরেজ কম লাগে।
    • সাইজ: 1 থেকে 65,535 ক্যারেক্টার।
    • উদাহরণ: CREATE TABLE example (address VARCHAR(255));
  • TEXT
    • ব্যবহার: বড় স্ট্রিং বা টেক্সট ডেটা সংরক্ষণ করতে, যখন স্ট্রিংয়ের দৈর্ঘ্য অপরিচিত বা খুব বড় হয়।
    • সাইজ: প্রায় 65,535 ক্যারেক্টার পর্যন্ত।
    • উদাহরণ: CREATE TABLE example (description TEXT);
  • BLOB (Binary Large Object)
    • ব্যবহার: বাইনারি ডেটা (যেমন ছবি, ভিডিও, বা অডিও) সংরক্ষণ করতে।
    • সাইজ: প্রায় 65,535 বাইট।
    • উদাহরণ: CREATE TABLE example (image BLOB);

৩. Date and Time Types (তারিখ এবং সময়ের ডেটা টাইপ)

এই ডেটা টাইপগুলি তারিখ এবং সময় সংরক্ষণ করতে ব্যবহৃত হয়।

  • DATE
    • ব্যবহার: তারিখ সংরক্ষণ করতে (শুধু দিন, মাস, এবং বছর)।
    • সিনট্যাক্স: YYYY-MM-DD
    • উদাহরণ: CREATE TABLE example (birthdate DATE);
  • DATETIME
    • ব্যবহার: তারিখ এবং সময় সংরক্ষণ করতে।
    • সিনট্যাক্স: YYYY-MM-DD HH:MM:SS
    • উদাহরণ: CREATE TABLE example (created_at DATETIME);
  • TIMESTAMP
    • ব্যবহার: সময়ের নির্দিষ্ট মুহূর্ত সংরক্ষণ করতে (যেমন ডেটাবেস এন্ট্রির সময়)।
    • সিনট্যাক্স: YYYY-MM-DD HH:MM:SS
    • উদাহরণ: CREATE TABLE example (updated_at TIMESTAMP);
  • TIME
    • ব্যবহার: সময়ের মান (ঘণ্টা, মিনিট, সেকেন্ড) সংরক্ষণ করতে।
    • সিনট্যাক্স: HH:MM:SS
    • উদাহরণ: CREATE TABLE example (event_time TIME);
  • YEAR
    • ব্যবহার: বছর সংরক্ষণ করতে।
    • সিনট্যাক্স: YYYY
    • উদাহরণ: CREATE TABLE example (year_of_birth YEAR);

৪. Boolean Types

  • BOOLEAN
    • ব্যবহার: সত্য/মিথ্যা মান (True/False) সংরক্ষণ করতে।
    • উদাহরণ: CREATE TABLE example (is_active BOOLEAN);
    • যত্ন নিন: MySQL বা PostgreSQL এ, BOOLEAN একটি TINYINT(1) হিসেবে সংরক্ষিত হতে পারে, যেখানে 1 অর্থ "True" এবং 0 অর্থ "False"।

৫. NULL এবং NOT NULL

  • NULL: একটি ফিল্ডের মান নেই বা অনুপস্থিত।
  • NOT NULL: ডেটা থাকতে হবে (এই ফিল্ডে NULL মান রাখা যাবে না)।

উদাহরণ:

CREATE TABLE example (
  id INT NOT NULL, 
  name VARCHAR(50) NOT NULL, 
  email VARCHAR(100) NULL
);

উপসংহার

SQL ডেটা টাইপগুলি বিভিন্ন ধরনের তথ্য সংরক্ষণ এবং পরিচালনার জন্য গুরুত্বপূর্ণ। ডেটাবেসের কাঠামো ডিজাইন করার সময় সঠিক ডেটা টাইপ নির্বাচন করা প্রয়োজন, যাতে ডেটা সঠিকভাবে সংরক্ষিত হয় এবং কার্যকরীভাবে পরিচালনা করা যায়।

Content added By

NULL এবং NOT NULL কনসেপ্ট

365

NULL এবং NOT NULL SQL-এর মৌলিক ধারণাগুলির মধ্যে অন্যতম, যা ডেটাবেসে ডেটা সংরক্ষণ এবং পরিচালনায় গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি মূলত একটি কলামের মানের অবস্থা নির্দেশ করে এবং ডেটা ম্যানিপুলেশনের সময় একে সঠিকভাবে ব্যবহার করা অত্যন্ত জরুরি।


NULL কী?

NULL হলো একটি বিশেষ মান যা একটি কলামে অজ্ঞাত, অনুপস্থিত, বা অব্যাখ্যাত মান নির্দেশ করে। এটি কেবল একটি "অনুপস্থিত মান" বা "অজানা তথ্য" বোঝায়, এবং এটি সংখ্যাগত শূন্য (0) বা খালি স্ট্রিং ("") এর থেকে আলাদা।

এটি সাধারণত ব্যবহার করা হয় যখন কোনো ডেটার মান জানা নেই বা এটি ডেটাবেসে উপস্থিত না থাকে। একটি NULL মান বলে যে কলামের জন্য কোনো মান সরবরাহ করা হয়নি, বা সেটি অনুপস্থিত।

NULL-এর ব্যবহার উদাহরণ:

SELECT * FROM employees WHERE phone_number IS NULL;

এই কুয়েরি employees টেবিলের সমস্ত রেকর্ড ফেরত দেবে যাদের ফোন নম্বর NULL (অর্থাৎ, অনুপস্থিত)।

NULL সম্পর্কে কিছু মূল পয়েন্ট:

  • NULL মানটি ডেটাবেসে যে কোনো টাইপের ডেটাতে থাকতে পারে (যেমন: INT, VARCHAR, DATE ইত্যাদি)।
  • NULL মানটি সংখ্যা বা টেক্সট নয়, এটি বিশেষ একটি মান।
  • NULL কিভাবে পরিচালনা করতে হয়, তা বোঝার জন্য IS NULL বা IS NOT NULL ব্যবহার করা হয়, যেমন:

    SELECT * FROM employees WHERE phone_number IS NOT NULL;
    
  • NULL মানের সাথে সাধারণ গাণিতিক বা তুলনা অপারেশন (যেমন: =, >, <) করা সম্ভব নয়, কারণ এর ফলাফল ঠিক হবে না। এজন্য IS NULL বা IS NOT NULL ব্যবহার করা হয়।

NOT NULL কী?

NOT NULL হলো একটি কনস্ট্রেইন্ট (constraint) যা একটি কলামের জন্য নির্দিষ্ট করে দেয় যে ওই কলামের মান কখনও NULL হতে পারবে না। এটি নিশ্চিত করে যে ডেটাবেসে কোনো রেকর্ডের ক্ষেত্রে ওই কলামে মান থাকতে হবে এবং সে মানটি শূন্য বা অজ্ঞাত হতে পারবে না।

NOT NULL কনস্ট্রেইন্ট এর উদাহরণ:

CREATE TABLE employees (
  employee_id INT NOT NULL,
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  phone_number VARCHAR(15)
);

এখানে, employee_id, first_name, এবং last_name কলামগুলোর মান NULL হতে পারবে না, কিন্তু phone_number কলামে NULL মান থাকতে পারে, অর্থাৎ এটি ঐচ্ছিক।

NOT NULL এর উপকারিতা:

  • ডেটার এককতা নিশ্চিতকরণ: যখন একটি কলামে NULL মানের অনুমতি দেওয়া হয় না, তখন তা ডেটাবেসের এককতা এবং সঠিকতা বজায় রাখে।
  • ডেটার পূর্ণতা: কিছু ক্ষেত্রে এটি গুরুত্বপূর্ণ হতে পারে যে ডেটা অবশ্যই উপস্থিত থাকতে হবে। উদাহরণস্বরূপ, যদি কোনো কর্মচারীর প্রথম নাম বা শেষ নাম NULL না থাকে, তবে এটি নিশ্চিত করা যাবে যে ওই কলামে সবসময় মান থাকবে।

NULL এবং NOT NULL এর মধ্যে পার্থক্য

বৈশিষ্ট্যNULLNOT NULL
সংজ্ঞা"অনুপস্থিত" বা "অজানা" মান।একটি কলামে মান থাকতে হবে, NULL থাকতে পারে না।
মানNULL মান হলো বিশেষ একটি অবস্থা।মান থাকা আবশ্যক, এটি NULL হতে পারে না।
অপারেশনNULL এর সাথে তুলনা করতে IS NULL বা IS NOT NULL ব্যবহার করতে হয়।সাধারণত তুলনা অপারেশন সরাসরি ব্যবহার করা যায়।
ডিফল্ট আচরণএকটি কলাম যদি NULL হতে পারে, তবে এটি কোন মান গ্রহণ করতে পারে না।একটি কলাম যেটিতে NOT NULL কনস্ট্রেইন্ট রয়েছে, সেখানে কোনো রেকর্ডে NULL থাকবে না।

NULL এবং NOT NULL এর সাথে সম্পর্কিত অন্যান্য ধারণা

  1. NULL এবং অ্যাগ্রিগেট ফাংশন:

    • NULL মানগুলিকে অ্যাগ্রিগেট ফাংশনগুলির (যেমন COUNT, AVG, SUM) দ্বারা উপেক্ষা করা হয়, অর্থাৎ তারা NULL মানগুলি গণনা করে না। তবে, COUNT(*) সব রেকর্ড গননা করবে, COUNT(column_name) শুধুমাত্র NULL ছাড়া মান গননা করবে।
    SELECT COUNT(phone_number) FROM employees;
    

    এই কুয়েরি শুধুমাত্র ফোন নম্বরের সাথে সংশ্লিষ্ট (NULL নয়) রেকর্ডগুলি গননা করবে।

  2. NULL এবং গাণিতিক অপারেশন:
    NULL-এর সাথে কোনো গাণিতিক অপারেশন করলে ফলাফল সর্বদা NULL হবে, যেমন:

    SELECT salary + bonus FROM employees;
    

    যদি salary বা bonus কলামে কোনো মান NULL হয়, তবে পুরো ফলাফল NULL হবে।

  3. NULL এবং Joins:
    যখন দুটি টেবিলের মধ্যে JOIN করা হয়, তখন NULL মানের কারণে কিছু ফলাফল হারানো বা বিভিন্ন আচরণ দেখা দিতে পারে, তাই আপনাকে সচেতন থাকতে হবে।

উপসংহার

NULL এবং NOT NULL SQL-এ ডেটার গুরুত্ব এবং পূর্ণতার ধারণাকে ব্যাখ্যা করে। NULL বিশেষভাবে একটি অনুপস্থিত বা অজানা মান নির্দেশ করে, এবং NOT NULL কনস্ট্রেইন্ট ডেটাবেসে নিশ্চিত করে যে একটি কলামে মান অবশ্যই থাকতে হবে। SQL কোড লেখার সময় এগুলির সঠিক ব্যবহার ডেটার সঠিকতা এবং কার্যকারিতা নিশ্চিত করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...