পিএইচপি ৫ ফর্ম রিকোয়ার্ড ফিল্ডস (PHP 5 Forms – Required Fields)

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


<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
                                          /*ডাটা পোস্ট করা হবে*/
 
 Name: <input type="text" name="name">    /*একটি নামের ফিল্ড*/
 <span class="error">* <?php echo $nameErr;?></span>
                            /*যদি ফাকা রেখে সাবমিট করা হয় তাহলে পিএইচপি এর মাধ্যমে 
                            এররর মেসেজ দেখাবে এই span id এর ভিতরে*/
 <br><br>
 E-mail:
 <input type="text" name="email">
 <span class="error">* <?php echo $emailErr;?></span>
 <br><br>
 Website:
 <input type="text" name="website">                    
 <span class="error"><?php echo $websiteErr;?></span>
                    /*যদি ফাকা রেখে সাবমিট করা হয় 
                      তাহলে পিএইচপি এর মাধ্যমে এররর 
                      মেসেজ দেখাবে এই span id এর ভিতরে*/
 <br><br>
 <label>Comment: <textarea name="comment" rows="5" cols="40"></textarea>
 <br><br>
 Gender:
 <input type="radio" name="gender" value="female">Female
 <input type="radio" name="gender" value="male">Male
 <span class="error">* <?php echo $genderErr;?></span>
                  /*যদি ফাকা রেখে সাবমিট করা হয় তাহলে পিএইচপি 
                    এর মাধ্যমে এররর মেসেজ দেখাবে এই span id এর ভিতরে*/
 <br><br>
 <input type="submit" name="submit" value="Submit">
                 /*সমস্ত ডাটাগুলো লেখার পর পোস্ট বাটন এ ক্লিক করলে 
                   ডাটাগুলো পিএইচপি পরবে তার জন্য আমরা এখন কোড লিখব*/ 
 
 </form>

 

ফাংশন


 < ?php
       // ফাকা ডাটা বা variable গুলো চিহ্নিত করার জন্য।
 $nameErr = $emailErr = $genderErr = $websiteErr = "";
 $name = $email = $gender = $comment = $website = "";
 if ($_SERVER["REQUEST_METHOD"] == "POST")
        /*যদি পোস্ট নামের বাটন এ ক্লিক করা হয়ে থাকে তাহলে 
          পরবর্তী ভিতরের অংশ কাজ করবে।*/
   {
     if (empty($_POST["name"]))
         /*চেক করবে এই ফিল্ডের এর ডাটা ইউজার ইনপুট করেছিল 
           কিনা যদি না করে থাকে তাহলে span id এর ভিতরে 
           এইচটিএমএল পার্ট এর ভিতরে যেখানে আমরা লিখেছিলাম সেইখানে ডিসপ্লে করবে*/
       {
         $nameErr = "Name is required";
 /*এই টেক্সট টি নাম ফিল্ড ফাকা থাকলে তার পাসে দেখাবে*/
      }
        else { 
          $name = test_input($_POST["name"]);
            /*অথবা যদি পোস্ট করে থাকে তাহলে এই কোড 
              এর মাধ্যমে পিএইচপি দতা টা পরবে*/
         }
         if (empty($_POST["email"]))
            /*চেক করবে এই ফিল্ডের এর ডাটা ইউজার ইনপুট করেছিল কিনা যদি না করে
              থাকে তাহলে span id এর ভিতরে এইচটিএমএল পার্ট এর ভিতরে যেখানে
              আমরা লিখেছিলাম সেইখানে ডিসপ্লে করবে*/
          {
            $emailErr = "Email is required";
          }
         else 
          { 
            $email = test_input($_POST["email"]);
          }
         if (empty($_POST["website"]))
             /*চেক করবে এই ফিল্ডের এর ডাটা ইউজার ইনপুট করেছিল কিনা
               যদি না করে থাকে তাহলে span id এর ভিতরে এইচটিএমএল পার্ট
               এর ভিতরে যেখানে আমরা লিখেছিলাম সেইখানে ডিসপ্লে করবে*/
         {
           $website = "";
         }
         else 
         {
           $website = test_input($_POST["website"]);
         }
           if (empty($_POST["comment"]))
               /*চেক করবে এই ফিল্ডের এর ডাটা ইউজার ইনপুট করেছিল কিনা
                 যদি না করে থাকে তাহলে span id এর ভিতরে এইচটিএমএল পার্ট
                 এর ভিতরে যেখানে আমরা লিখেছিলাম সেইখানে ডিসপ্লে করবে*/
         {
           $comment = "";
         }
         else {
           $comment = test_input($_POST["comment"]);
         }
         if (empty($_POST["gender"]))
               /*চেক করবে এই ফিল্ডের এর ডাটা ইউজার ইনপুট করেছিল কিনা
                 যদি না করে থাকে তাহলে span id এর ভিতরে এইচটিএমএল পার্ট
                 এর ভিতরে যেখানে আমরা লিখেছিলাম সেইখানে ডিসপ্লে করবে*/
         {
           $genderErr = "Gender is required";
         }
         else {
           $gender = test_input($_POST["gender"]);
         }
     }
 ?>

 

PHP Form Validation Example


* required field.

* Name: * E-mail:

* Website:

Comment:

Gender:
Female
Male


AngularJS References

AngularJS References
parijat biswas
student of CSE
university of Asia Pacific

AngularJS Directives
যেসব AngularJS Directives এই টিউটোরিয়ালে ব্যবহৃত হয়ছেঃ
Directive বর্ণনা ব্যাখ্যা
ng-app একটি অ্যাপ্লিকেশন এর মূল উপাদান সংজ্ঞায়িত করার জন্য ব্যবহৃত Directives
ng-bind HTML element এর innerHTML এপ্লিকেশন ডাটাতে যুক্ত করে । Introduction
ng-click একটি উপাদান ক্লিক করা হলে আচরণ সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় । HTML Events

ng-controller একটি অ্যাপ্লিকেশনের object control করার জন্য ব্যবহৃত হয় । Controllers

ng-disabled HTML disabled attribute এ এপ্লিকেশন ডাটা যুক্ত করে । HTML DOM

ng-hide html উপাদান hide বা show করে । HTML DOM
ng-include একটি অ্যাপ্লিকেশন মধ্যে html যুক্ত করে । Includes

ng-init একটি অ্যাপ্লিকেশনের জন্য প্রাথমিক মান সংজ্ঞায়িত করার জন্য ব্যবহৃত Directives

ng-model এপ্লিকেশন ডাটাতে html control এর মান যুক্ত করে । Directives

ng-repeat প্রতিটি ডাটার জন্য একটি টেমপ্লেট সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় । Directives

ng-show html উপাদান show অথবা hide করে । HTML DOM

AngularJS Filters
AngularJS Filters

যেসব AngularJS Filters এই টিউটোরিয়ালে ব্যবহৃত হয়ছেঃ
Filter বর্ণনা
Currency একটি নাম্বারকে currency format এ রূপান্তর করে ।

Filter একটি array থেকে subset নির্বাচন করে ।

Lowercase একটি string কে lower case এ রুপান্তর (format) করে ।

orderBy expression এর মাধ্যমে একটি array কে order করে ।

uppercase একটি string কে upper case এ রুপান্তর (format) করে ।

পিএইচপি – মাইএসকিউএল এ একাধিক রেকর্ড প্রবেশ করানো (PHP – Insert Multiple Records Into MySQL in Bangla)

মোঃ আরিফুল ইসলাম

MySQLi এবং PDO ব্যবহার করে মাইএসকিউএল এর মধ্যে একাধিক ডাটা রেকর্ডস প্রবেশ করান

একাধিক SQL statements কে executed (উদ্দিপ্ত) করার জন্য mysqli_multi_query() function (ফাংশন) ব্যাবহার করতে হবে।

নিম্নলিখিত উদাহরণগুলি “MyGuests” টেবিল এ তিনটি নতুন রেকর্ড যোগ করাবে:

MySQLi Object-oriented এর উদাহরণ-


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";

if ($conn->multi_query($sql) === TRUE) {
    echo "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

 

MySQLi Procedural এর উদাহরণ-


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";

if (mysqli_multi_query($conn, $sql)) {
    echo "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

 

PDO এর উপায়টা সামান্য একটু ভিন্ন-

PDO এর উদাহরণ-


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // begin the transaction
    $conn->beginTransaction();
    // our SQL statememtns
    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('John', 'Doe', 'john@example.com')");
    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Mary', 'Moe', 'mary@example.com')");
    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Julie', 'Dooley', 'julie@example.com')");

    // commit the transaction
    $conn->commit();
    echo "New records created successfully";
    }
catch(PDOException $e)
    {
    // roll back the transaction if something failed
    $conn->rollback();
    echo "Error: " . $e->getMessage();
    }

$conn = null;
?>

 

চিফ মার্কেটিং কর্মকর্তা হিসেবে যে আটটি এসইও ট্রেন্ড সম্পর্কে আপনাকে জানতেই হবে . 8 SEO Trends Your CMO Needs to Know for 2015

শেখ মাহ্ফুজুর রহমান

 

২০১৫ সালের বাজেট ও স্ট্র্যাটেজি তৈরির সময় বিবেচনায় রাখার মতো সেরা আটটি এসইও ট্রেন্ড

বছরের এই সময়টিই, যখন বাৎষরিক মার্কেটিং বাজেট এবং সিদ্ধান্তগুলো নেয়া হয়, আগামী বছরের লাভ-লোকসানের ভিত্তি তৈরি করে। এখন শুধু প্ল্যানিং, অ্যাকাউন্টিং এবং প্রশাসন ব্যবস্থাপনাই যথেষ্ট নয়, ব্র্যান্ড মার্কেটারদের বজায় রাখতে হয় সর্বশেষ স্ট্র্যাটেজি এবং কৌশলকে যা অর্গ্যানিক সার্চের (যেখানে পরিবর্তনই হলো স্থীতিশীলতা) ক্রমোন্নতিকে গতিশীল করবে।

অবশ্য, চিফ মার্কেটিং অফিসাররা সার্চ এলগরিদমের ছোটখাটো পরিবর্তন নিয়ে মাথা না ঘামিয়ে ইন্ডাস্ট্রির বড় ধরণের ট্রেন্ডগুলোর দিকে দৃষ্টিপাত করেই সার্চের নতু নতুন পরিবর্তনের কৌশল নির্ধারণ করতে পারেন। “2015 Enterprise Buyer’s Guide to SEO” থেকে নেয়া সেরা আটটি অর্গ্যানিক সার্চ ট্রেন্ড নিয়ে আজকের আলোচনাটি সাজানো হয়েছে যা সিএমও (চিফ মার্কেটিং অফিসার) এবং মার্কেটিং অর্গ্যানাইজেশনগুলো ২০১৫ সালের পরিকল্পনা তৈরির সময় বিবেচনায় রাখতে পারে।

১) ট্রুলি আর্নড লিংকের সংখ্যার ক্রমবৃদ্ধি

দীর্ঘকাল ধরেই ইনবাউন্ড বা ব্যাক লিংকগুলো সার্চ ইঞ্জিনগুলোর কাছে মূল্য, বিশ্বাস ও আস্থার প্রাথমিক অফ-সাইট ইন্ডিকেটর হিসেবে বিবেচিত হয়ে আসছিল এবং তা এখনো রয়েছে।

ব্র্যান্ডেড কন্টেন্ট সাইটেশন অর্জনের লক্ষ্যে অর্গ্যানিক সার্চ চ্যানেল নিয়ে চিন্তিত সিএমও’দের উচিত মূল্যবান কন্টেন্ট তৈরি করা এবং তা নির্দিষ্ট শ্রোতাদের কাছে প্রমোট করা। এগুলো শুধু মাত্র প্রোডাক্ট পেজের প্রতি কতগুলো টেক্সট লিংক না হয়ে হাই কোয়ালিটি ব্র্যান্ডেড কন্টেন্টের প্রতি উদৃতি ও লিংক হওয়া বাঞ্চনীয়।

যা হলো কর্তৃত্বস্থানীয় পাবলিশার অথবা ইনফ্লুয়েন্সারের কাছ থেকে প্রাসঙ্গিক সাইটেশন বা উল্লেখ এসইও, ব্র্যান্ড অ্যাওয়ারনেস, অনলাইন সেইল, লিড জেনারেশন, শ্রোতার বৃদ্ধি এবং অন্যান্য সব দূর্লভ ও অত্যন্ত মূলবান মার্কেটিং বা বিপণন সূচককে প্রভাবিত করে– তাই এসইও’র জন্য এই স্ট্র্যাটেজিটিকে কেন ব্যবহার করবেননা?

২) মোবাইলের অব্যাহত গুরুত্ব বৃদ্ধি

২০১৪ সালটি ছিল মার্কেটিং এর জন্য একটি স্মারক বর্ষ যখন মোবাইল ইন্টারনেটের ব্যবহার ডেস্কটপ ইন্টারনেটের ব্যবহারকে ছাড়িয়ে গিয়েছিল। এই ঘটনাটি কনজ্যুমার বা ভোক্তার আচরণের একটি মৌলিক পরিবর্তনকে চিহ্নিত করে যা সার্চ এবং সার্চ ইঞ্জিন অপটিমাইজেশনের একটি বড় নিহিতার্থকে প্রকাশ করে।

মোবাইল সার্চ এলগরিদম ডেস্কটপের থেকে ভিন্নতর উৎকৃষ্ট পথকে নির্দেশ করে, তাই মার্কেটিং ব্যয়কে সঠিকভাবে পরিচালিত করার জন্য সিএমও’দের মোবাইল সার্চের দিকগুলো বুঝা অত্যন্ত গুরুত্বপূর্ণ। একটি ব্র্যান্ডের দ্রুততার সাথে কার্যকরভাবে উচ্চমানের মোবাইল এক্সপেরিয়েন্স সরবারহ করার সক্ষমতাই নিশ্চিতভাবে একটি প্রতিযোগিতামূলক সুযোগ তৈরি করে দেবে।

৩) প্লাটফর্ম, ডিভাইস, চ্যানেল অনুসারে সার্চকে বিভক্ত করা

সার্চ কোয়ারিগুলো শুধু লং টেইল কিওয়ার্ডেই বিভক্ত হচ্ছেনা সেগুলো প্লাটফর্ম ও চ্যানেল অনুযায়ীও বিভক্ত করে। অনলাইন সার্ভিস প্রোভাইডার, মোবাইল ডিভাইস এবং সফটওয়্যার অ্যাপ্লিকেশনগুলো তাদের শ্রোতাদের ভালো সেবা দেয়ার জন্য ইন্টারনাল সার্চ ফাংশন গড়ে তুলছে– এবং এর মানে হলো ওয়েব ব্রাওজার সার্চ ইঞ্জিনের থেকে সার্চ ভল্যুম সেখানে চলে যাচ্ছে।

২০১৫ সালে, সিএমও’দের উচিত গুগল ছাড়াও আমাজন, উইকিপিডিয়া, ইয়েল্প এবং মোবাইল অ্যাপ্লিকেশনের মতো প্লাটফর্মগুলোর সার্চে ব্র্যান্ড এর উপস্থিতিকে অপটিমাইজ করার দিকে নজর দেয়া।

৪) সোশ্যাল এঙ্গেজম্যান্টের সাথে থট লিডারশিপের সমন্বয়

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

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

৫) লং-টেইল সার্চ ট্রাফিকের ক্রমবর্ধনশীল গুরুত্ব

এক-দুই শব্দের কি ফ্রেজ (key phrase) দিয়ে সার্চে র‍্যাংক পাওয়া কষ্টসাধ্য এবং তা পুরোপুরি কভার করেনা। সেই তুলনায়, লং-টেইল কিওয়ার্ড কোয়ারিগুলো অনেক বেশি প্রাসঙ্গিক হয়ে থাকে এবং উচ্চমাত্রায় কনভার্ট হয়ে থাকে এর নির্দিষ্টতার জন্য, পরিণামে উদ্দেশ্যের সফলতা অর্জিত হয়। যেসব ব্র্যান্ড লং-টেইল কোয়ারিগুলোর শক্তি ও প্রভাবকে যুথবদ্ধ করতে পারবে সেগুলোই ২০১৫ সালে সূচাগ্র পার্থক্য দেখতে পাবে।

২০১২ সালের একটি গবেষণা এটি নির্দেশ করে যে দৈনন্দিন কোয়ারির ১৬ থেকে ২০ ভাগ পূর্বে দেখাই যায়নি। এই পরিস্থিতির আরও বেশি উন্নতি ঘটছে যখন মোবাইল ডিভাইসগুলোতে ভোকাল সার্চের অ্যাপ্লিকেশনগুলো প্রকাশিত হচ্ছে এবং সার্চ ইঞ্জিনগুলো লং-টেইল কিওয়ার্ড বুঝার ক্ষেত্রে আরও দক্ষ হয়ে উঠছে। যদিও লং-টেইল সার্চ ট্রাফিক পেতে ব্যাপক সময় লাগবে, তবে এটি দীর্ঘপথযাত্রায় যথার্থ ভালো ফল দেবে।

৬) সার্চ রেজাল্ট দৃশ্যপটের পরিবর্তন

যখন গুগল একটি লক্ষ্যস্থানে পরিণত হতে চাইছে তখন আমরা আরও বেশি খেলাধুলার স্কোর, আবহাওয়ার খবর এবং খুচরা বিক্রেতাদের সম্পর্কিত ইন-স্ট্রিম আন্সার বা উত্তর প্রত্যাশা করতে পারি। কাস্টমাররা যেভাবে সার্চ রেজাল্টকে দেখে ও ইন্টারেক্ট করে সে অনুযায়ী গুগলের নলেজ গ্রাফ এবং কারোজাল ফিচারগুলোর মৌলিক পরিবর্তন ঘটছে। সিএমও’দের সার্চ স্পেসে তাদের ব্র্যান্ড কেমনভাবে উপস্থাপিত হয় সে সম্পর্কে অবশ্যই সচেতন হতে হবে যেহেতু গুগল একটি ইনফর্মেশন ইঞ্জিনকে নলেজ ইঞ্জিনে রূপান্তরিত করছে।

৭) কিওয়ার্ড ও র‍্যাঙ্কিং এর গুরুত্ব হ্রাস

গুগলের কিওয়ার্ড সার্চ ডাটার এনক্রিপশন নিকট ভবিষ্যতে কি অপেক্ষা করছে তাই নির্দেশ করেছিল। যতই প্লাটফর্ম, চ্যানেল, ডিভাইস এবং অ্যাপ্লিকেশনে তথ্যের ব্যবহার বিভক্ত হয়ে যাবে ততই কিওয়ার্ড ও র‍্যাংকিং এর সাথে সার্চ ইঞ্জিন অপটিমাইজশনের সম্পর্ক হ্রাস পাবে। সিএমও’দের উচিত বহুবিধ প্রপার্টিতে ব্রান্ডের দৃশ্যমানতা এবং ডিজিটাল স্পেসের প্রতিটি কোনায়, যেখানে ভাগ্য ও ক্রেতা আছে, এর উপস্থিকেই সার্চ অপটিমাইজেশন হিসেবে দেখতে শেখা।

৮) পারসোনালাইজেশনের প্রয়োজনীয়তা বৃদ্ধি

যতই সার্চ প্রক্রিয়াগুলো জটিল হচ্ছে কাস্টমাররা ততই উচ্চতর পর্যায়ের পারসোনালাইজেশনের অন্তর্ভূক্ত হচ্ছে। একই কোয়ারির জন্য অঞ্চল, সাওইকোগ্রাফিক এবং ডেমোগ্রাফিক ডাটা অনুসারে, যেগুলো পূর্ববর্তী ব্যবহারের উপর সংগ্রহ করা হয়েছে, প্রত্যেক ব্যক্তি আলাদা আলাদা রেজাল্ট পেতে পারে। কনভার্সান ঐ ব্র্যান্ডগুলোর দিকেই যাবে যারা সবগুলো সার্চ প্লাটফর্মের কাস্টমারদের উচ্চতর পারসোনালাইজেশন সরবরাহ করতে প্রস্তুত রয়েছে। প্রমিনেন্ট কন্টেন্ট মার্কেটারদের ব্র্যান্ডের দৃশ্যমান হওয়ার সম্ভবনা তাই অনেক বেশি।

অর্গ্যানিক সার্চ এখনো সবকিছুর উপরে

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

২০১৫ সালে যে পাঁচটি এসএইও ট্রেন্ডকে বিবেচনায় রাখা উচিত . 5 SEO Trends You Need to Consider for 2015

আশা করি আপনারা “সার্চ ইঞ্জিন অপটিমাইজেশনের যুগ শেষ” এবং “সোশ্যাল মিডিয়াই হলো নতুন সার্চ” এই দু’টি সর্বশেষ অত্যুক্তিতে বিশ্বাস করেননা। বাস্তবতা হলো, এসইও কতগুলো বহুল পরীক্ষিত এসইও কৌশল, কন্টেন্ট মার্কেটিং এবং সোশ্যাল মিডিয়া অপটিমাইজেশনের মধ্যকার সংযুক্তিতে বিবর্তিত হচ্ছে। এটি আরও বেশী জটিল হয়েছে কিন্তু এর মূল্য সামান্য পরিমাণেও কমেনি। এই ধারণাটি মাথায় রেখে ২০১৫ সালের পাঁচটি এসইও ট্রেন্ড সম্পর্কে আলোচনা করা হলো, যেগুলো আপনি এবছর পরিকল্পনা করবেন।

১) সিম্যান্টিক সার্চ

গুগল সম্প্রতি সার্চ এলগরিদমের “Hummingbird” আপডেট প্রকাশ করেছে। পূর্বের পান্ডা ও পেঙ্গুইন আপডেটের মতো না হয়ে হামিংবার্ড আপডেটটি ছিল সম্পূর্নরূপে সিম্যান্টিক সার্চ নির্ভর। যেখানে সিম্যান্টিক হলো ভাষাতত্ত্বের একটি বিভাগ যা শব্দের অর্থঘটিত বিষয় নিয়ে আলোচনা করে। সিম্যান্টিক সার্চ সার্চ কোয়ারির (আপনি সার্চ বারে যা লিখে সার্চ করেন) অর্থ এবং যে ব্যক্তি সার্চ করছেন তার মনোভাব বুঝার চেষ্টা করে। সার্চ ইঞ্জিন ল্যান্ডের ডেনি সুলিভান বিষয়টিকে এভাবে ব্যাখ্যা করেছেনঃ

“হামিংবার্ড কোয়ারির প্রত্যকটি শব্দের দিকে আরও বেশি মনোযোগ দেয় যাতে পুরো কোয়ারিটিকে নিশ্চিত করা যায়– নির্দিষ্ট কতগুলো শব্দ নয় বরং পুরো বাক্য বা আলোচনা বা অর্থকে বিবেচনায় নেয়া হয়। লক্ষ্য হলো, পেজের অর্থের সাথে সার্চের অর্থ মেলানো; এখানে অল্প কিছু কিওয়ার্ড কে আর ধর্তব্যে নেয়া হয়না।”

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

২) মোবাইল সার্চ অপটিমাইজেশন

গুগলের তথ্য অনুযায়ী মোবাইল সার্চের ৫০ভাগ কোয়ারিই হয়েছে অঞ্চলগত দিক লক্ষ্য করে। এর মানে হল সার্চকারি ব্যক্তিরা স্থানীয় ব্যবসাগুলোকে খুঁজেছেন যেন তারা ইন-স্টোর কেনাকাটা করতে পারেন। তারপরও সব মোবাইল সার্চ অঞ্চলবিশেষ লক্ষ্য করে করা হয়নি।

তাই এক্ষেত্রে মোবাইল সার্চের ব্যবহার বৃদ্ধি, মোবাইল-ওনলি ইউজারদের উত্থান এবং গুগলের নতুন ”মোবাইল ফ্রেন্ডলি” লেবেলগুলো কিভাবে সার্চ রেজাল্টকে প্রভাবিত করছে সে সম্পর্কে ভালো ধারণা রাখতে হবে। বলাবাহুল্য, সাম্প্রতিক সময়ে স্মার্টফোনের ব্যবহারের বৃদ্ধিকে ভোক্তা সংগ্রহের একটি প্রধান ক্ষেত্র হিসেবে ধরে নিতে হবে।

৩) সোশ্যাল সিগনেলগুলোর অকার্যকারিতা

সোশ্যাল সিগনেল যেমন টুইট, শেয়ার ও গুগলপ্লাস সার্চ রেঙ্কিংকে প্রভাবিত করে? তা করে, কিন্তু আপনি যেভাবে ভাবেন তেমন নয়।

সব সময়ই বলা হয়েছে যে টপ সার্চ রেঙ্কিংয়ে উপরের যাওয়ার উপায় হলো সোশ্যাল মিডিয়ায় শেয়ার। এটি সেই ২০১০ সালের কথা যখন গুগলের ওয়েব-স্পাম বিষয়ক প্রধান বলেছিলেন, আমরা আমাদের সার্চ রেঙ্কিং এ টুইটার ও ফেসবুকের লিংক ও রেঙ্কিংকে ব্যবহার করি। কিন্তু ২০১৪ সালে যখন তাকে একই প্রশ্ন করা হয় তখন বলেছিলেন, বর্তমানে আমাদের সার্চ এলগরিদমে তেমন কোন সিগন্যাল নেই।”

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

৪) আর্নড লিংকের ক্রমবর্ধমান গুরুত্ব বৃদ্ধি

একটি সফল এসইও স্ট্র্যাটেজি নির্ভর করে গুণগত ও পরিমাণগত ব্যাকলিংকের উপর। এক্ষেত্রে আপনার নিজের তৈরি লিংক যেমন আপনার ওয়েব পেজ ও সোশ্যাল মিডিয়া পেজ, পেইড লিংক যেমন গুগল অ্যাডওয়ার্ড বিজ্ঞাপন, টুইটার প্রমোট অথবা অন্যান্য সংস্থার বিজ্ঞাপনী সেবার লিংকের চেয়ে অর্জিত লিংক যেগুলো অন্যান্যরা স্বেচ্ছায় আপনার পণ্য সম্পর্কে আলোচনা ও শেয়ারের মাধ্যমে তৈরি করেছে সেগুলোর গুরুত্ব সার্চ রেঙ্কিংএ অনেক অনেক বেশি। সবসময় লো-কোয়ালিটি লিংক তৈরি থেকে বিরত থাকা উচিত যা আপনার সাইটকে সার্চ ইঞ্জিনে পেনালাইজড করতে পারে।

সুতরাং বুঝা যাচ্ছে যে উচ্চমানসম্পন্ন কন্টেন্ট তৈরিই এসইওর জন্য সবচেয়ে গুরুত্বপূর্ণ! তাছাড়া সামজিক কার্যকলাপের মাধ্যমে অফলাইন সম্পর্ক বৃদ্ধি এবং ব্রোকেন লিংক বিল্ডিংকেও মাথায় রাখতে হবে।

৫) ব্র্যান্ড সম্পর্কে উল্লেখ এবং সাইটেশন

একটি সাইটেশন হলো আপনার ওয়েবসাইট ছাড়া অন্য কোন ওয়েব সাইটে আপনার ব্র্যান্ডের নাম, ঠিকান, ফোন নাম্বার সম্পর্কে যেকোন উদ্দৃতি। একটি কো-সাইটেশন হলো আপনার ব্যবসায়ের মতো একই রকম অন্য ব্যবসায়িক প্রতিষ্ঠানের সাইটে আপনার ব্র্যান্ড সম্পর্কিত উল্যেখ। এক্ষেত্রে লোকাল সাইটেশন, ইন্ডাস্ট্রি সাইটেশন ও নিচ্‌(Niche) সাইটেশন সম্পর্কে জানতে হবে।

সাইট স্ট্রাকচার সম্পর্কে বোনাস টিপ

আপনার সাইটটি ভিজিটরদের কাছে যত বেশী আকর্শনীয় হবে ততো বেশি তা সার্চ ইঞ্জিনের কাছে গ্রহনযোগ্য হবে। তাই সাইটকে যতটা সম্ভব সহজবোধ্য করুন। বাউন্স রেটকে কমানো এবং সাইটে ভিজিটরদের অতিবাহিত সময় বাড়ানোকে গুরুত্ব দিয়ে সাইট ডিজাইন করুন। একটি ত্রুটিমুক্ত এক্সএমএল সাইট ম্যাপ সাবমিট করুন। সাইটের ইউজেবিলিটি বৃদ্ধি করুন।

পরিশেষে, সন্দেহ নেই এসইও বিবর্তিত হয়েছে মানুষ ও সার্চ ইঞ্জিন উভয়ের রুচির দিকে লক্ষ্য রেখে। সিম্যান্টিক সার্চ, মোবাইল ওয়েব এবং সামাজিক যোগাযোগ মাধ্যমের প্রাসঙ্গিকতার উত্থান আপনার কন্টেন্টকে মানুষের কাছে পৌছে দিচ্ছে; কিন্তু তা আগের চেয়ে আরও বেশি জটিলতা ও নতুন নতুন সমস্যাকে অন্তর্ভূক্ত করেছে। তবে অনেক পরিবর্তনের মধ্যেও কিছু জিনিস একই রকম রয়ে গেছেঃ প্রাসঙ্গিক উচ্চমানের কন্টেন্ট এবং এর ভালো উপসস্থাপন আপনার জন্য কাজে লাগবে। এবং লিংক অ্যাসিস্ট্যান্ট এর এসইও পাওয়ার স্যুইট এসইও টুল আপনার সিদ্ধান্ত গ্রহনে ও আপনার সাইটকে প্রমোট করতে ভূমিকা রাখবে। তাই আজই এসইও পাওয়ার স্যুইটকে ট্রাই করে দেখুন।

AngularJS অন্তর্ভুক্ত (AngularJS Includes)

AngularJS অন্তর্ভুক্ত (AngularJS Includes)
AngularJS এ, আপনি এইচটিএমএল এ এইচটিএমএল ফাইল অন্তর্ভুক্ত করতে পারেন.
এইচটিএমএল ভবিষ্যত এইচটিএমএল এ অন্তর্ভুক্ত

এইচটিএমএল এ এইচটিএমএল এর একটি portion অন্তর্ভূক্ত দুর্ভাগ্যবশত এখনো পর্যন্ত supported না।

এইচটিএমএল ইমপোর্ট করে W3C suggestion. http://www.w3.org ভবিষ্যৎ ভার্সনগুলোর জন্য প্রযোজ্য। (With
<link rel=”import” href=”/path/navigation.html”>

সার্ভার সাইড অন্তর্ভুক্ত (Server Side Includes)

অধিকাংশ ওয়েব সার্ভার সার্ভার সাইড ইনক্লুডস (এসএসআই) অন্তর্ভুক্তকরণ সমর্থন করে।

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

php require(“navigation.php”); ?>

ক্লায়েন্ট সাইড অন্তর্ভুক্ত (Client Side Includes)

এইচটিএমএল এ এইচটিএমএল অন্তর্ভুক্ত করতে জাভাস্ক্রিপ্ট ব্যবহার করার জন্য অনেক উপায় আছে.

সবচেয়ে সাধারণ ভাবে, এইচটিটিপি (http) রিকুয়েস্ট ব্যবহার করে (AJAX) সার্ভার থেকে তথ্য সংগ্রহ করে এবং এইচটিএমএল এর তথ্যগুলো innerHTML এ write

AngularJS সাইড অন্তর্ভুক্ত (AngularJS Side Includes)

AngularJS সঙ্গে, আপনি ng-include নির্দেশ (directive) ব্যবহার করে, HTML সামগ্রী অন্তর্ভুক্ত করতে পারেন:
উদাহরণ:
<body>

<div class=”container”>
<div ng-include=”‘myUsers_List.htm'”></div>
<div ng-include=”‘myUsers_Form.htm'”></div>
</div>

</body>

নিচে ৩টি ধাপে পরিপূর্ণভাবে তুলে ধরা হলো:

ধাপ ১: এইচটিএমএল তালিকা তৈরি করুন (Create the HTML List)
myUsers_List.html
<table class=”table table-striped”>
<thead><tr>
<th>Edit</th>
<th>First Name</th>
<th>Last Name</th>
</tr></thead>
<tbody><tr ng-repeat=”user in users”>
<td>
<button class=”btn” ng-click=”editUser(user.id)”>
&nbsp; Edit
</button>
</td>
<td>{{ user.fName }}</td>
<td>{{ user.lName }}</td>
</tr></tbody>
</table>

Step 2: Create the HTML Form
ধাপ ২: এইচটিএমএল ফরম তৈরি করুন (Create the HTML Form)
myUsers_Form.html
<button class=”btn btn-success” ng-click=”editUser(‘new’)”>
<span class=”glyphicon glyphicon-user”></span> Create New User
</button>
<hr>

<h3 ng-show=”edit”>Create New User:
<h3 ng-hide=”edit”>Edit User:</h3>

<form class=”form-horizontal”>
<div class=”form-group”>
<label class=”col-sm-2 control-label”>First Name:</label>
<div class=”col-sm-10″>
<input type=”text” ng-model=”fName” ng-disabled=”!edit” placeholder=”First Name”>
</div>
</div>
<div class=”form-group”>
<label class=”col-sm-2 control-label”>Last Name:</label>
<div class=”col-sm-10″>
<input type=”text” ng-model=”lName” ng-disabled=”!edit” placeholder=”Last Name”>
</div>
</div>
<div class=”form-group”>
<label class=”col-sm-2 control-label”>Password:</label>
<div class=”col-sm-10″>
<input type=”password” ng-model=”passw1″ placeholder=”Password”>
</div>
</div>
<div class=”form-group”>
<label class=”col-sm-2 control-label”>Repeat:</label>
<div class=”col-sm-10″>
<input type=”password” ng-model=”passw2″ placeholder=”Repeat Password”>
</div>
</div>
</form>

<hr>
<button class=”btn btn-success” ng-disabled=”error || incomplete”>
<span class=”glyphicon glyphicon-save”></span> Save Changes
</button>

Step 3: Create the Main Page
ধাপ ৩: মেইন পেজ তৈরি করুন (Create the HTML Form)
myUsers.html
DOCTYPE html>
<html ng-app=””>
<head>
<link rel=”stylesheet” href = “http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css”>

</head>

<body ng-controller=”userController”>

<div class=”container”>
<div ng-include=”‘myUsers_List.htm'”></div>
<div ng-include=”‘myUsers_Form.htm'”></div>
</div>

</body>
</html>

এসকিউএল Aliases এর টিউটোরিয়ালঃ SQL Aliases

এসকিউএল Aliases এর টিউটোরিয়ালঃ

কোয়েরির সুবিধার্থে Alias ব্যবহার করা হয়। টেবিল, কলাম দুটোরই এলিয়াস ব্যবহার করা যায়। এলিয়াসকে বলতে পারেন ছোটনাম বা ডাকনামের মত। বিশেষ করে কোয়েরিতে যখন একাধিক কলাম ব্যবহার করে ক্যালকুলেশন করা হয়ে থাকে তখন বেশ ভালই উপকার হয় এলিয়াস ব্যবহার করলে। এছাড়া কোয়েরিও আকারে অনেক ছোট হয়ে যায়। যেমন লেফট জয়েনে ব্যবহৃত কোয়েরি টি যদি এলিয়াস ব্যবহার করি তাহলে নিচের মত হবেঃ
1.SELECT u.username AS UserName, u.age AS Age, p.favorite_color FavColor FROM users AS u LEFT JOIN profiles AS p ON u.user_id = p.user_id;
কোয়েরিতে এভাবে কলামের নামের সামনে ডট (.) দিয়ে টেবিলের নাম বসিয়ে দেয়া ভাল অভ্যাস, এভাবেই কোয়েরি করা উচিৎ বিশেষ করে যখন সম্পর্কযুক্ত টেবিল থেকে ডেটা কোয়েরি করা হয় তখন দুটো টেবিলেই একই নামের ফিল্ড/কলাম থাকতে পারে তখনতো অবশ্যই এভাবে কলামের নামের আগে ডট দিয়ে টেবিলের নাম দিতে হবে।
ব্যাখ্যা: users টেবিলে এলিয়াস ব্যবহারের জন্য users AS u এভাবে দিয়েছি এতে করে আর কোথাও পুরো টেবিলের নামটি ব্যবহার করতে হয়নি বরং শুধু u দেয়াতেই পুরো users লেখার কাজ হয়ে গেছে এভাবে দেখুন profiles টেবিলেরও কাজ শুধু p দিয়ে হচ্ছে। এই u হচ্ছে এখানে users টেবিলের এলিয়াস আর p হচ্ছে profiles টেবিলের এলিয়াস।
ধন্যবাদ।

SQL (এসকিউএল) IN(ইন) অপারেটর . SQL IN Operator

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা “Persons” নামের একটি টেবিল তৈরী করছি। “P_Id” কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক “Persons” টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট “P_Id” কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL LIKE (লাইক) Operator (অপারেটর) . SQL Like Operator

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা “Persons” নামের একটি টেবিল তৈরী করছি। “P_Id” কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক “Persons” টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট “P_Id” কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

এসকিউএল ডিলেট স্টেটমেন্ট . SQL Delete Statement

এসকিউএল ডিলেট স্টেটমেন্ট
Name: Sheikh Mahfuzur Rahman
এসকিউএল প্রোগ্রামিং লেংগুয়েজে একটি টেবলের রেকর্ড সমূহ যেমন টেবলের রো বা সারি মুঁছে ফেলার জন্য ডিলেট(DELETE) স্টেটমেন্ট ব্যবহার করা হয়। নিচে এ সম্পর্কে বিস্তারিত আলোচনা করা হলোঃ

এসকিউএল ডিলেট স্টেটমেন্ট

ডিলেট স্টেটমেন্ট একটি টেবলের রো বা সারিগুলো মুঁছে ফেলার কাজে ব্যবহার করা যায়।

এসকিউএল ডিলেট সিন্ট্যাক্সঃ

DELETE FROM table_name
WHERE some_column=some_value;

ডিলেট স্টেটমেন্ট এ হোয়ার(WHERE) ক্লজটি লক্ষ করুন!
হোয়ার(WHERE) ক্লজটি কোন কোন রেকর্ড বা রেকর্ডসমূহ মুঁছে ফেলা হবে তা নির্দিষ্ট করে দেয়। আপনি যদি হোয়ার(WHERE) ক্লজটি বাদ দেন তাহলে সবগুলো রেকর্ডই মুঁছে যাবে!

ডেমো ডাটাবেজঃ

এই টিউটোরিয়ালে আমরা বহুল-পরিচিত “নর্থউইন্ড(Northwind)” স্যাম্পল ডাটাবেজ ব্যবহার করবো।
নিচে কাস্টমার্স টেবলের একটি নির্বাচিত অংশ তুলে ধরা হলোঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1

Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

এসকিউএল ডিলেট একজাম্পলঃ

ধরা যাক, আমরা কাস্টমার্স টেবল থেকে কাস্টমার “Alfreds Futterkiste” কে মুঁছে দিতে চাই।
আমরা নিম্নরূপ এসকিউএল স্টেইটমেন্ট ব্যবহার করবোঃ

DELETE FROM Customers
WHERE CustomerName=’Alfreds Futterkiste’ AND ContactName=’Maria Anders’;

এখন কাসস্টমার্স টেবলটি নিচের মতো দেখাবেঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

ডিলেট অল ডাটা বা সব ডাটা মুঁছে দেয়াঃ

একটি টেবলকে না মুঁছে তার সব রো বা সারি মুঁছে ফেলা সম্ভব। অর্থাৎ এর ফলে টেবল স্ট্রাকচার, এট্রিবিউট, এবং ইন্ডেক্সগুলো মুঁছে যাবেনাঃ

DELETE FROM table_name;

or

DELETE * FROM table_name;

লক্ষ্য করুন, রেকর্ডস মুঁছে ফেলার সময় সতর্ক হোন কারণ আপনি এসকিউএল ডিলেট স্টেটমেন্ট আন্ডু(Undo) করতে পারবেন না।