SQL(এসকিউএল) Wildcards (ওয়াইল্ডকার্ড)
Author: Protap Chandra | sincerely.yours2512[at]gmail.com
ডাটাবেজ সিস্টেমে ডাটা তল্লাশি বা সার্চ করার ক্ষেত্রে wildcard (ওয়াইল্ডকার্ড) একটি গুরুত্বপূর্ণ টার্ম। স্ট্রিং ডাটার কোনো অংশ 'অজ্ঞাত' উল্লেখ করে ডাটা তল্লাশি করতে ওয়াইল্ডকার্ড ব্যবহার করা হয়। এই অজ্ঞাত অংশ এক থেকে বহু character (অক্ষর) পর্যন্ত হতে পারে।
একটি টেবিলের ভেতর থেকে ডাটা তল্লাশি করার জন্য এসকিউএল LIKE অপারেটরের সঙ্গে ওয়াইল্ডকার্ড character ব্যবহার করা হয়। SQL এ ব্যবহৃত wildcard গুলো হচ্ছে:
Wildcard |
Description |
% |
শুন্য কিংবা যে কোনো এক বা একাধিক character খুঁজতে ব্যবহার করা হয় |
_ |
একটিমাত্র character খুঁজতে ব্যবহার করা হয় |
[charlist] |
একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো দিয়ে শুরু হওয়া ডাটা বাছাই করে |
[^charlist] |
একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো বাদ রেখে অন্য সব অক্ষর দিয়ে শুরু হওয়া ডাটা বাছাই করে |
এই টিউটিরিয়ালে আমরা Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে। সেই ডাটাবেজের "Customers" টেবিল থেকে কিছু ডাটা নির্বাচন করা হল:
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 |
SQL “%” ওয়াইল্ডকার্ড এর ব্যবহার:
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "ber" দিয়ে।
SELECT * FROM Customers
WHERE City LIKE 'ber%';
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নামের মাঝে কোথাও "es" আছে:
SELECT * FROM Customers
WHERE City LIKE '%es%';
SQL “ _” ওয়াইল্ডকার্ডের ব্যবহার:
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে যেকোন অক্ষর দিয়ে, কিন্তু তার পরের অবস্থানেই "erlin" আছে:
SELECT * FROM Customers
WHERE City LIKE '_erlin';
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে “L” দিয়ে, তারপরের অবস্থানে যেকোন অক্ষর, তার পরের অবস্থানে “n”, তার পরের অবস্থানে যেকোন অক্ষর, তার পরেই একসাথে থাকবে "on".
SELECT * FROM Customers
WHERE City LIKE 'L_n_on';
SQL [charlist] ওয়াইল্ডকার্ডের ব্যবহার:
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" দিয়ে।
SELECT * FROM Customers
WHERE City LIKE '[bsp]%';
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "a", "b" কিংবা "c" দিয়ে।
SELECT * FROM Customers
WHERE City LIKE '[a-c]%';
নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" বাদ দিয়ে।
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';
or
SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';