H2 Database এর মৌলিক ধারণা

Database Tutorials - এইচ২ ডাটাবেস (H2 Database)
235
235

H2 Database একটি Java ভিত্তিক রিলেশনাল ডেটাবেজ ম্যানেজমেন্ট সিস্টেম (RDBMS), যা মূলত SQL স্ট্যান্ডার্ডের উপর ভিত্তি করে তৈরি। এটি লাইটওয়েট, দ্রুত এবং বহুমুখী ডেটাবেজ সলিউশন, যা ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশন, প্রোটোটাইপ ডেভেলপমেন্ট, এবং টেস্টিংয়ের জন্য আদর্শ। H2 ডেটাবেজ এমবেডেড মোড এবং সার্ভার মোড উভয়ই সাপোর্ট করে, এবং এটি ইন-মেমরি ডেটাবেজ হিসাবে ব্যবহার করা যায়, যা ডেটা RAM-এ রাখে এবং দ্রুত অ্যাক্সেসের সুবিধা দেয়।

এই টিউটোরিয়ালে আমরা H2 Database এর কিছু মৌলিক ধারণা ও কার্যক্রম নিয়ে আলোচনা করব যা আপনাকে H2 ডেটাবেজ ব্যবহার করতে সাহায্য করবে।


H2 Database এর মৌলিক ধারণা

১. রিলেশনাল ডেটাবেজ

H2 একটি রিলেশনাল ডেটাবেজ (RDBMS), যা ডেটাকে টেবিল হিসেবে সংগঠিত করে এবং প্রতিটি টেবিলের মধ্যে সম্পর্ক স্থাপন করা হয়। H2 ডেটাবেজ SQL স্ট্যান্ডার্ড মেনে চলে, যা ডেটাবেজ অপারেশন যেমন SELECT, INSERT, UPDATE, এবং DELETE পরিচালনা করতে সহায়ক।

২. SQL স্ট্যান্ডার্ড সাপোর্ট

H2 ডেটাবেজ SQL ভাষা সমর্থন করে, যার মাধ্যমে আপনি ডেটা ম্যানিপুলেশন (DML), ডেটাবেজ স্কিমা ডিজাইন (DDL), এবং ডেটাবেজ পরিচালনা (DCL) করতে পারবেন। SQL স্ট্যান্ডার্ড মেনে চলার কারণে H2 ডেটাবেজে কাজ করা খুবই সহজ এবং অন্য কোনো SQL সমর্থিত ডেটাবেজের মতো কার্যকর।

৩. ডেটাবেজ এবং টেবিল

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

  • টেবিল: ডেটাবেজের মৌলিক একক।
  • কলাম: টেবিলের প্রতিটি তথ্যের ধরন বা বৈশিষ্ট্য।
  • রো: টেবিলের প্রতিটি রেকর্ড।

৪. ডেটা টাইপস

H2 ডেটাবেজ বিভিন্ন ধরনের ডেটা টাইপ সমর্থন করে, যেমন:

  • INT, BIGINT: পূর্ণসংখ্যা
  • VARCHAR, TEXT: স্ট্রিং
  • DATE, TIME, DATETIME: তারিখ এবং সময়
  • BOOLEAN: সত্য/মিথ্যা মান
  • BLOB, CLOB: বাইনারি ডেটা

৫. ডেটাবেজের বিভিন্ন মোড

H2 ডেটাবেজ এমবেডেড মোড এবং সার্ভার মোড উভয়েই কাজ করতে পারে:

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

৬. ইন-মেমরি ডেটাবেজ

H2 ইন-মেমরি ডেটাবেজ হিসাবে কাজ করতে পারে, যেখানে সমস্ত ডেটা RAM-এ রাখা হয় এবং ডিস্কে সংরক্ষিত হয় না। এটি বিশেষ করে টেস্টিং এবং প্রোটোটাইপ ডেভেলপমেন্টের জন্য উপকারী, কারণ এটি ডেটা অ্যাক্সেসের গতি অনেক বৃদ্ধি করে।

৭. H2 কনসোল

H2 Database একটি ওয়েব কনসোল প্রদান করে, যার মাধ্যমে আপনি ডেটাবেজ পরিচালনা এবং SQL কুয়েরি চালাতে পারবেন। এটি ব্যবহার করা অত্যন্ত সহজ এবং ডেটাবেজের জন্য বিভিন্ন অপারেশন সম্পাদন করতে সাহায্য করে। H2 কনসোলটি সাধারণত http://localhost:8082 এ অ্যাক্সেস করা যায়।

৮. জেনেরাল-purpose রিলেশনাল ডেটাবেজ

H2 মূলত একটি জেনেরাল-পারপাস (General-Purpose) ডেটাবেজ, যা বিভিন্ন ধরণের অ্যাপ্লিকেশন যেমন ডেস্কটপ অ্যাপ্লিকেশন, ওয়েব অ্যাপ্লিকেশন, এবং প্রোটোটাইপ অ্যাপ্লিকেশনে ব্যবহার করা যেতে পারে।


H2 Database এর কার্যকলাপ

ডেটাবেজ এবং টেবিল তৈরি করা

H2 Database-এ ডেটাবেজ তৈরি করার জন্য সাধারণ SQL স্টেটমেন্ট ব্যবহার করা হয়:

CREATE DATABASE mydb;

এবং টেবিল তৈরি করতে:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT
);

ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন

H2 ডেটাবেজে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন করার জন্য SQL কুয়েরি ব্যবহার করা হয়। যেমন:

  • ডেটা নির্বাচন (SELECT):
SELECT * FROM employees;
  • ডেটা ইনসার্ট (INSERT):
INSERT INTO employees (id, name, age) VALUES (1, 'John Doe', 30);
  • ডেটা আপডেট (UPDATE):
UPDATE employees SET age = 31 WHERE id = 1;
  • ডেটা মুছে ফেলা (DELETE):
DELETE FROM employees WHERE id = 1;

H2 Database এর প্রধান উপকারিতা

  • দ্রুত এবং লাইটওয়েট: H2 ডেটাবেজ খুব দ্রুত কাজ করে এবং এটি মাত্র 1MB আকারে আসে, যা দ্রুত ইনস্টলেশন এবং ব্যবহার উপযোগী।
  • এমবেডেড এবং সার্ভার মোড সমর্থন: H2 সরাসরি অ্যাপ্লিকেশনের মধ্যে এমবেড করা যায় অথবা সার্ভার মোডে একাধিক ক্লায়েন্ট সংযোগ করতে পারে।
  • SQL সমর্থন: এটি SQL স্ট্যান্ডার্ড অনুসরণ করে, যার ফলে SQL সম্পর্কে জানা ডেভেলপারদের জন্য এটি খুবই সহজ।
  • টেস্টিং এবং ডেভেলপমেন্ট: ইন-মেমরি মোড এবং এমবেডেড মোডের কারণে এটি ছোট অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং টেস্টিংয়ের জন্য একটি চমৎকার পছন্দ।
  • পোর্টেবল: Java ভিত্তিক হওয়ার কারণে এটি প্ল্যাটফর্ম নিরপেক্ষ এবং যেকোনো প্ল্যাটফর্মে ব্যবহার করা যায়।

H2 ডেটাবেজের মৌলিক ধারণা পরিষ্কারভাবে বুঝে নিতে আপনাকে এই বৈশিষ্ট্যগুলো এবং তাদের কার্যকর ব্যবহার জানতে হবে। H2 Database এর সিম্পল সেটআপ এবং SQL স্ট্যান্ডার্ড মেনে চলার কারণে এটি অত্যন্ত জনপ্রিয় এবং সহজে ব্যবহৃত একটি ডেটাবেজ সিস্টেম।

common.content_added_by

ডেটাবেজ এবং টেবিল তৈরি করা

247
247

H2 Database ব্যবহার করার সময়, আপনাকে প্রথমে একটি ডেটাবেজ তৈরি করতে হবে এবং তারপর সেই ডেটাবেজে টেবিল তৈরি করতে হবে। এটি SQL কুয়েরি বা H2 Console এর মাধ্যমে সহজেই করা যায়। নিচে H2 ডেটাবেজ এবং টেবিল তৈরি করার পদ্ধতি ধাপে ধাপে ব্যাখ্যা করা হয়েছে।


ডেটাবেজ তৈরি করা

H2 Database-এ ডেটাবেজ তৈরি করা বেশ সহজ। সাধারণত ডেটাবেজ তৈরি করতে CREATE DATABASE কমান্ড ব্যবহার করা হয়, তবে H2 Console-এ আপনি ডেটাবেজের জন্য একটি নির্দিষ্ট JDBC URL ব্যবহার করে সরাসরি কানেক্টও করতে পারেন।

H2 Console ব্যবহার করে ডেটাবেজ তৈরি

  1. H2 Console চালু করুন:
    যদি আপনি H2 Console ব্যবহার করছেন, তাহলে প্রথমে h2.bat (Windows) বা h2.sh (Linux/macOS) ফাইল রান করে H2 Console ওপেন করুন।
  2. JDBC URL সেট করুন:
    H2 Console-এ JDBC URL এর মাধ্যমে ডেটাবেজ তৈরি করতে হবে। সাধারণভাবে, H2 এর ডিফল্ট JDBC URL এর ফর্ম্যাট হবে:

    jdbc:h2:~/test
    

    এখানে test হলো ডেটাবেজের নাম। যদি আপনি একটি নতুন ডেটাবেজ তৈরি করতে চান, তাহলে test এর পরিবর্তে আপনার পছন্দমতো ডেটাবেজ নাম দেবেন। যেমন:

    jdbc:h2:~/mydatabase
    
  3. কানেক্ট করুন:
    এরপর "Connect" বাটনে ক্লিক করুন। আপনি যদি সফলভাবে কানেক্ট করতে পারেন, তবে H2 Console এর মাধ্যমে ডেটাবেজ তৈরি হয়ে যাবে।

SQL কুয়েরি ব্যবহার করে ডেটাবেজ তৈরি

H2 ডেটাবেজে ডেটাবেজ তৈরি করতে SQL কুয়েরি ব্যবহার করতে পারেন:

CREATE DATABASE mydatabase;

এটি mydatabase নামে একটি নতুন ডেটাবেজ তৈরি করবে। H2 Console এ কুয়েরি চালানোর পর, আপনি এটি দেখতে এবং ব্যবহার করতে পারবেন।


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

ডেটাবেজ তৈরি করার পর, আপনি সেই ডেটাবেজে টেবিল তৈরি করতে পারবেন। H2 Database-এ CREATE TABLE কুয়েরি ব্যবহার করে টেবিল তৈরি করা হয়। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো:

টেবিল তৈরি করার উদাহরণ

ধরা যাক, আমরা একটি users নামক টেবিল তৈরি করতে চাই, যার মধ্যে তিনটি কলাম থাকবে: id, name, এবং email। এটির SQL কুয়েরি হবে:

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    email VARCHAR(255)
);

এটি একটি টেবিল তৈরি করবে যেখানে:

  • id একটি ইনটিজার (integer) হিসেবে থাকবে এবং এটি প্রাইমারি কী হবে।
  • name এবং email দুটি টেক্সট (VARCHAR) ফিল্ড হবে, যার সর্বাধিক দৈর্ঘ্য 255 ক্যারেক্টার।

H2 Console-এ টেবিল তৈরি

  1. H2 Console তে লগইন করুন:
    H2 Console চালু করার পর, ডেটাবেজের সঙ্গে কানেক্ট করুন।
  2. SQL কুয়েরি রান করুন:
    H2 Console এর SQL উইন্ডোতে উপরোক্ত CREATE TABLE কুয়েরিটি লিখুন এবং "Run" বাটনে ক্লিক করুন।
  3. টেবিল তৈরি হবে:
    কুয়েরি সফলভাবে রান হলে, আপনার ডেটাবেজে users নামে একটি নতুন টেবিল তৈরি হবে।

টেবিলের জন্য অন্যান্য অপশনসমূহ

H2 ডেটাবেজে টেবিল তৈরি করার সময় আপনি আরো কিছু অপশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

নট-নাল কলাম যুক্ত করা

যদি আপনি চান যে কোনো কলাম NULL না হতে পারে, তাহলে আপনি NOT NULL কনস্ট্রেইন্ট ব্যবহার করতে পারেন। যেমন:

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL
);

এতে name এবং email কলামে NULL মান রাখা যাবে না।

ফরেন কী (Foreign Key) কনস্ট্রেইন্ট

আপনি অন্য একটি টেবিলের সাথে সম্পর্ক (relationship) তৈরি করতে ফরেন কী কনস্ট্রেইন্ট ব্যবহার করতে পারেন। উদাহরণ:

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

এতে orders টেবিলের user_id কলামটি users টেবিলের id কলামের সাথে সম্পর্কিত হবে।


উপসংহার

H2 Database-এ ডেটাবেজ এবং টেবিল তৈরি করা খুবই সহজ। H2 Console বা SQL কুয়েরি ব্যবহার করে আপনি দ্রুত ডেটাবেজ এবং টেবিল তৈরি করতে পারবেন। আপনি যদি আরও জটিল টেবিল তৈরি করতে চান, তাহলে কনস্ট্রেইন্ট, ইনডেক্স, এবং অন্যান্য SQL ফিচার ব্যবহার করতে পারেন।

common.content_added_by

H2 Database এর সাথে JDBC সংযোগ

231
231

JDBC (Java Database Connectivity) হল একটি Java API যা ডেটাবেসের সাথে সংযোগ স্থাপন এবং SQL কুয়েরি চালানোর জন্য ব্যবহৃত হয়। H2 Database একটি ইন-মেমরি ডেটাবেস এবং রিলেশনাল ডেটাবেস সিস্টেম, যা Java অ্যাপ্লিকেশনগুলির সাথে খুবই সহজে ইন্টিগ্রেট করা যায়। JDBC ব্যবহার করে আপনি H2 ডেটাবেসে সংযোগ স্থাপন করতে পারেন, এবং ডেটাবেসের সাথে CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন।

এখানে H2 Database এর সাথে JDBC সংযোগ করার জন্য প্রয়োজনীয় ধাপগুলি দেওয়া হলো।


১. H2 Database JDBC ড্রাইভার যোগ করা

প্রথমে আপনার প্রকল্পে H2 JDBC ড্রাইভার অন্তর্ভুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনাকে pom.xml ফাইলে H2 ডিপেনডেন্সি যোগ করতে হবে।

Maven Dependency (pom.xml)

<dependencies>
    <!-- H2 Database JDBC Dependency -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.200</version>
    </dependency>
</dependencies>

Gradle Dependency (build.gradle)

dependencies {
    implementation 'com.h2database:h2:1.4.200'
}

২. H2 Database JDBC সংযোগ তৈরি করা

H2 Database এর সাথে JDBC সংযোগ তৈরি করার জন্য, আপনাকে JDBC URL, username, এবং password প্রয়োজন হবে। সাধারণত, H2 ডিফল্টভাবে sa নামক ইউজার এবং খালি পাসওয়ার্ড ব্যবহার করে থাকে।

এখানে একটি সাধারণ JDBC সংযোগ উদাহরণ দেওয়া হলো:

Java কোডে H2 JDBC সংযোগ

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class H2DatabaseExample {

    public static void main(String[] args) {
        // H2 Database URL, username এবং password কনফিগারেশন
        String url = "jdbc:h2:~/test";  // এটি ইন-মেমরি ডেটাবেসের জন্য পরিবর্তন করতে হবে
        String username = "sa";         // ডিফল্ট ইউজারনেম
        String password = "";           // ডিফল্ট পাসওয়ার্ড (খালি)

        // সংযোগ স্থাপন
        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            if (connection != null) {
                System.out.println("H2 Database connected successfully.");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • jdbc:h2:~/test: এটি H2 ডেটাবেসের URL। ~/test হল ডেটাবেস ফাইলের অবস্থান (উদাহরণস্বরূপ, এটি হোম ডিরেক্টরিতে test.mv.db ফাইল তৈরি করবে)। আপনি যদি ইন-মেমরি ডেটাবেস ব্যবহার করতে চান, তাহলে URL হতে হবে jdbc:h2:mem:testdb.
  • sa: এটি H2 ডেটাবেসের ডিফল্ট ইউজারনেম।
  • পাসওয়ার্ড খালি থাকে, যদি না আপনি এটি কাস্টমাইজ করেন।

৩. H2 Database এ SQL কুয়েরি চালানো

JDBC ব্যবহার করে H2 ডেটাবেসে SQL কুয়েরি চালানো যায়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি টেবিল তৈরি করা হচ্ছে এবং তাতে ডেটা ইনসার্ট করা হচ্ছে।

SQL কুয়েরি চালানোর উদাহরণ

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class H2DatabaseExample {

    public static void main(String[] args) {
        String url = "jdbc:h2:~/test";
        String username = "sa";
        String password = "";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            // SQL statement to create a table
            String createTableSQL = "CREATE TABLE IF NOT EXISTS Users (id INT PRIMARY KEY, name VARCHAR(255))";

            // Statement object to execute SQL queries
            Statement statement = connection.createStatement();

            // Execute the query to create the table
            statement.execute(createTableSQL);
            System.out.println("Table created successfully.");

            // SQL statement to insert data into the table
            String insertDataSQL = "INSERT INTO Users (id, name) VALUES (1, 'John Doe')";

            // Execute the insert query
            statement.executeUpdate(insertDataSQL);
            System.out.println("Data inserted successfully.");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • প্রথমে CREATE TABLE SQL কুয়েরি ব্যবহার করে Users টেবিল তৈরি করা হচ্ছে।
  • তারপর INSERT INTO SQL কুয়েরি ব্যবহার করে ডেটা ইনসার্ট করা হচ্ছে।

৪. ডেটা রিড এবং আপডেট করা

এখন, SQL কুয়েরি ব্যবহার করে ডেটা রিড এবং আপডেট করার উদাহরণ দেওয়া হলো:

SQL কুয়েরি ব্যবহার করে ডেটা রিড করা

import java.sql.*;

public class H2DatabaseExample {

    public static void main(String[] args) {
        String url = "jdbc:h2:~/test";
        String username = "sa";
        String password = "";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            // SQL statement to select data
            String selectSQL = "SELECT * FROM Users";

            // Execute the query
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(selectSQL);

            // Loop through the result set and print data
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • SELECT কুয়েরি ব্যবহার করে Users টেবিল থেকে ডেটা রিড করা হচ্ছে।
  • resultSet.getInt("id") এবং resultSet.getString("name") ব্যবহার করে রিটার্ন করা ডেটা প্রাপ্ত হচ্ছে।

SQL কুয়েরি ব্যবহার করে ডেটা আপডেট করা

import java.sql.*;

public class H2DatabaseExample {

    public static void main(String[] args) {
        String url = "jdbc:h2:~/test";
        String username = "sa";
        String password = "";

        try (Connection connection = DriverManager.getConnection(url, username, password)) {
            // SQL statement to update data
            String updateSQL = "UPDATE Users SET name = 'Jane Doe' WHERE id = 1";

            // Execute the update query
            Statement statement = connection.createStatement();
            int rowsUpdated = statement.executeUpdate(updateSQL);
            System.out.println("Rows updated: " + rowsUpdated);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • UPDATE কুয়েরি ব্যবহার করে Users টেবিলের name ফিল্ড আপডেট করা হচ্ছে।

৫. ডেটাবেস সংযোগ বন্ধ করা

JDBC ব্যবহার করার পরে, সর্বদা নিশ্চিত করুন যে আপনি ডেটাবেস সংযোগ বন্ধ করছেন, এটি রিসোর্সের অপচয় থেকে রক্ষা করবে।

connection.close();

সারাংশ

H2 Database-এর সাথে JDBC সংযোগ করা খুবই সহজ এবং Java অ্যাপ্লিকেশনগুলিতে ডেটাবেস অপারেশন চালানোর জন্য একটি শক্তিশালী পদ্ধতি। JDBC ব্যবহার করে আপনি H2 ডেটাবেসে সংযোগ স্থাপন করতে পারবেন এবং SQL কুয়েরি চালিয়ে ডেটা ইনসার্ট, আপডেট, রিড, এবং ডিলিট করতে পারবেন। H2 ডেটাবেস in-memory বা disk-based মোডে কাজ করতে পারে এবং Java অ্যাপ্লিকেশনের সাথে খুবই সহজে একীভূত করা যায়।

common.content_added_by

SQL Syntax এবং H2 এর ব্যবহার

217
217

H2 Database SQL স্ট্যান্ডার্ড অনুসরণ করে, এবং এতে সাধারণ SQL সিনট্যাক্স ব্যবহৃত হয়। H2 ডেটাবেজে SQL কুয়েরি ব্যবহার করা অত্যন্ত সহজ এবং এর সাথে বিভিন্ন উন্নত ফিচার যেমন JOIN, GROUP BY, SUBQUERY ইত্যাদি কাজ করে। নিচে H2 ডেটাবেজে SQL ব্যবহার করার জন্য মৌলিক সিনট্যাক্স এবং কিছু গুরুত্বপূর্ণ কুয়েরি অপারেশন নিয়ে আলোচনা করা হলো।


SQL Syntax এর মৌলিক ধারণা

১. SELECT কুয়েরি

SQL এ ডেটা নির্বাচন করার জন্য SELECT কুয়েরি ব্যবহৃত হয়।

SELECT column1, column2 FROM table_name;
  • column1, column2: আপনি যে কলামগুলি দেখতে চান।
  • table_name: ডেটাবেজের টেবিলের নাম।

উদাহরণ:

SELECT name, age FROM users;

এটি users টেবিল থেকে name এবং age কলামগুলি নির্বাচন করবে।

২. WHERE ক্লজ

WHERE ক্লজ ব্যবহার করে নির্দিষ্ট শর্তের অধীনে ডেটা নির্বাচন করা হয়।

SELECT column1, column2 FROM table_name WHERE condition;

উদাহরণ:

SELECT name, age FROM users WHERE age > 18;

এটি users টেবিল থেকে শুধুমাত্র সেই রেকর্ডগুলি ফিরিয়ে দেবে যেখানে age ১৮ এর বেশি।

৩. INSERT INTO কুয়েরি

নতুন ডেটা টেবিলে যুক্ত করতে INSERT INTO ব্যবহার করা হয়।

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

উদাহরণ:

INSERT INTO users (name, age) VALUES ('Alice', 25);

এটি users টেবিলে নতুন name এবং age যুক্ত করবে।

৪. UPDATE কুয়েরি

অথবা তথ্য আপডেট করতে UPDATE কুয়েরি ব্যবহার করা হয়।

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

উদাহরণ:

UPDATE users SET age = 26 WHERE name = 'Alice';

এটি users টেবিলে name 'Alice' এর age আপডেট করবে ২৬ এ।

৫. DELETE কুয়েরি

ডেটা মুছে ফেলতে DELETE কুয়েরি ব্যবহার করা হয়।

DELETE FROM table_name WHERE condition;

উদাহরণ:

DELETE FROM users WHERE name = 'Alice';

এটি users টেবিল থেকে 'Alice' নামক রেকর্ডটি মুছে ফেলবে।


H2 Database-এ SQL এর ব্যবহার

H2 Database SQL এর বিভিন্ন ফিচার সমর্থন করে। H2-তে আপনি নিম্নলিখিত কিছু গুরুত্বপূর্ণ SQL অপারেশন ব্যবহার করতে পারেন।

১. JOIN অপারেশন

H2 এ JOIN অপারেশন ব্যবহার করে একাধিক টেবিল থেকে ডেটা একত্রিত করা যায়।

  • INNER JOIN: শুধুমাত্র উভয় টেবিলের মিলে যাওয়া রেকর্ডগুলি ফিরিয়ে আনে।
SELECT users.name, orders.order_id
FROM users
INNER JOIN orders ON users.user_id = orders.user_id;

এটি users এবং orders টেবিলকে user_id দ্বারা যুক্ত করবে এবং মিলিত রেকর্ডগুলি ফিরিয়ে দেবে।

  • LEFT JOIN: বাম টেবিলের সব রেকর্ড এবং ডান টেবিলের মিলিত রেকর্ডগুলি ফিরিয়ে আনে।
SELECT users.name, orders.order_id
FROM users
LEFT JOIN orders ON users.user_id = orders.user_id;

এটি users টেবিলের সব রেকর্ড দেখাবে, এবং যদি orders টেবিলের সাথে মিল পাওয়া যায়, তবে ঐ রেকর্ডও দেখাবে।

২. GROUP BY এবং HAVING

GROUP BY ব্যবহার করে ডেটাকে গ্রুপ করা হয় এবং HAVING শর্ত প্রয়োগ করা হয় গ্রুপকৃত ডেটার উপর।

SELECT COUNT(*), department
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;

এটি employees টেবিলের department অনুযায়ী গ্রুপ করে এবং এমন সব ডিপার্টমেন্ট দেখাবে যেখানে ৫টির বেশি কর্মী আছে।

৩. ORDER BY

ORDER BY কুয়েরি ডেটা সাজানোর জন্য ব্যবহার করা হয়।

SELECT name, age FROM users ORDER BY age DESC;

এটি users টেবিলের age কলাম অনুযায়ী ডেটাকে DESC (ডিসেনডিং) অর্ডারে সাজাবে।

৪. SUBQUERY (Nested Query)

H2 এ SUBQUERY বা নেস্টেড কুয়েরি ব্যবহার করে একটি কুয়েরির ভিতরে আরেকটি কুয়েরি লেখা যায়।

SELECT name FROM users WHERE age = (SELECT MAX(age) FROM users);

এটি users টেবিল থেকে সর্বোচ্চ বয়সের ব্যবহারকারীর নাম নির্বাচন করবে।

৫. LIMIT

LIMIT কুয়েরি ব্যবহার করে ডেটার সংখ্যা সীমিত করা যায়।

SELECT name FROM users LIMIT 5;

এটি users টেবিল থেকে প্রথম ৫টি নাম দেখাবে।


H2 Database-এ SQL ফিচার সমূহ

H2 Database SQL স্ট্যান্ডার্ড ফলো করে, কিন্তু এতে কিছু উন্নত ফিচারও রয়েছে:

  1. CROSS JOIN: দুটি টেবিলের প্রতিটি রেকর্ডের সাথে অন্য টেবিলের প্রতিটি রেকর্ড মিলিয়ে দেখায়।
  2. LIKE এবং REGEXP: টেক্সট ফিল্টারিংয়ের জন্য LIKE এবং নিয়মিত এক্সপ্রেশন (REGEXP) সমর্থিত।
  3. INDEXES: H2-তে আপনি টেবিলের কলামগুলোর জন্য ইন্ডেক্স তৈরি করে পারফরম্যান্স উন্নত করতে পারেন।
  4. TRANSACTIONS: H2 ACID (Atomicity, Consistency, Isolation, Durability) প্রপার্টিজ সমর্থন করে, যা ট্রানজেকশন ম্যানেজমেন্টে সাহায্য করে।
  5. Temporary Tables: অস্থায়ী টেবিল তৈরি করতে পারেন যা শুধুমাত্র বর্তমান সেশনে ব্যবহার করা হবে।

H2 Database SQL-এ একাধিক উদাহরণ

  1. একটি নতুন টেবিল তৈরি করা:
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    name VARCHAR(255),
    age INT
);
  1. ডেটা ইনসার্ট করা:
INSERT INTO users (user_id, name, age) VALUES (1, 'Alice', 25);
  1. ডেটা আপডেট করা:
UPDATE users SET age = 26 WHERE user_id = 1;
  1. ডেটা মুছে ফেলা:
DELETE FROM users WHERE user_id = 1;

উপসংহার

H2 Database SQL এর স্ট্যান্ডার্ড সাপোর্টের কারণে SQL সিনট্যাক্স এবং কুয়েরি অপারেশন খুবই সহজ এবং দ্রুত ব্যবহৃত হয়। H2-তে JOIN, GROUP BY, ORDER BY, এবং অন্যান্য SQL ফিচার ব্যবহার করে ডেটাবেজ পরিচালনা এবং কার্যকর ডেটা ম্যানিপুলেশন করা সম্ভব। H2 Database তার সহজতর কনফিগারেশন এবং দ্রুত পারফরম্যান্সের জন্য জনপ্রিয়, বিশেষ করে ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনগুলির জন্য।

common.content_added_by

Basic SQL Operations: SELECT, INSERT, UPDATE, DELETE

254
254

SQL (Structured Query Language) ডেটাবেজ পরিচালনার জন্য ব্যবহৃত একটি স্ট্যান্ডার্ড ভাষা। SQL-এর সাহায্যে আপনি ডেটাবেজে ডেটা নির্বাচন, যোগ করা, আপডেট করা এবং মুছে ফেলা সহ বিভিন্ন কাজ করতে পারেন। এই টিউটোরিয়ালে আমরা SQL এর বেসিক অপারেশনসমূহ (SELECT, INSERT, UPDATE, DELETE) নিয়ে আলোচনা করবো।


1. SELECT (ডেটা নির্বাচন)

SELECT স্টেটমেন্টটি ডেটাবেজ থেকে ডেটা নির্বাচন করার জন্য ব্যবহৃত হয়। আপনি কোন টেবিল থেকে ডেটা চান তা নির্দিষ্ট করতে SELECT ব্যবহার করেন।

Syntax:

SELECT column1, column2, ... FROM table_name;

উদাহরণ:

SELECT name, age FROM students;

এই কুয়েরি students টেবিল থেকে name এবং age কলামের ডেটা নির্বাচন করবে।

অন্য কিছু SELECT অপশন:

  • সব কলাম নির্বাচন:

    SELECT * FROM students;
    

    এখানে * ব্যবহার করা হয়েছে, যা সব কলাম নির্বাচনের জন্য ব্যবহৃত হয়।

  • WHERE ক্লজ ব্যবহার করে শর্ত দিয়ে ডেটা নির্বাচন:

    SELECT name, age FROM students WHERE age > 18;
    

    এটি students টেবিল থেকে এমন ছাত্রদের নাম এবং বয়স নির্বাচন করবে যাদের বয়স ১৮ বছরের বেশি।


2. INSERT (ডেটা যোগ করা)

INSERT স্টেটমেন্টটি ডেটাবেজে নতুন রেকর্ড (ডেটা) যোগ করার জন্য ব্যবহৃত হয়।

Syntax:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

উদাহরণ:

INSERT INTO students (name, age) VALUES ('John', 20);

এই কুয়েরি students টেবিলে নতুন একটি রেকর্ড যোগ করবে, যেখানে name কলামে John এবং age কলামে 20 থাকবে।

একাধিক রেকর্ড ইনসার্ট করা:

INSERT INTO students (name, age) VALUES 
('Alice', 22),
('Bob', 25),
('Charlie', 21);

এই কুয়েরি students টেবিলে একসাথে তিনটি রেকর্ড ইনসার্ট করবে।


3. UPDATE (ডেটা আপডেট করা)

UPDATE স্টেটমেন্টটি ডেটাবেজে বিদ্যমান রেকর্ডগুলোর ডেটা পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি বিশেষত শর্তযুক্ত (conditional) আপডেট করতে ব্যবহৃত হয়।

Syntax:

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

উদাহরণ:

UPDATE students SET age = 23 WHERE name = 'John';

এই কুয়েরি students টেবিলে name কলামে John থাকা রেকর্ডটির age আপডেট করবে এবং সেটি ২৩ করে দিবে।

সব রেকর্ড আপডেট করা (সাবধানতা অবলম্বন করতে হবে):

UPDATE students SET age = 30;

এই কুয়েরি students টেবিলের সব রেকর্ডের age কলামকে ৩০ করে দেবে।


4. DELETE (ডেটা মুছে ফেলা)

DELETE স্টেটমেন্টটি ডেটাবেজ থেকে এক বা একাধিক রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়।

Syntax:

DELETE FROM table_name WHERE condition;

উদাহরণ:

DELETE FROM students WHERE name = 'John';

এই কুয়েরি students টেবিল থেকে name কলামে John থাকা রেকর্ডটি মুছে ফেলবে।

সব রেকর্ড মুছে ফেলা (সাবধানতা অবলম্বন করতে হবে):

DELETE FROM students;

এই কুয়েরি students টেবিলের সব রেকর্ড মুছে ফেলবে। সতর্ক থাকুন, কারণ এটি সব তথ্য মুছে ফেলবে।


উল্লেখযোগ্য বিষয়সমূহ

  • WHERE ক্লজ: SELECT, UPDATE, এবং DELETE স্টেটমেন্টগুলিতে WHERE ক্লজ ব্যবহার করে আপনি শর্তের ভিত্তিতে ডেটা নির্বাচন, আপডেট বা মুছতে পারেন। এর মাধ্যমে নির্দিষ্ট শর্তে থাকা রেকর্ডগুলো পরিবর্তন বা মুছে ফেলা যায়।
  • বিকল্প (NULL) ব্যবহার: যদি আপনি কোন কলামে NULL মান দিতে চান, তবে তা NULL দিয়ে উল্লেখ করতে হবে। উদাহরণ:

    UPDATE students SET age = NULL WHERE name = 'John';
    

এই ছিল SELECT, INSERT, UPDATE, এবং DELETE এর মূল ধারণা এবং ব্যবহার। SQL-এ এই চারটি অপারেশন হল ডেটাবেজ ম্যানিপুলেশনের ভিত্তি, এবং এগুলি ডেটাবেজের সঙ্গে কাজ করতে অত্যন্ত গুরুত্বপূর্ণ।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion