عملگر LIKE در SQL Server – نحوه استفاده از عملگر LIKE چگونه است؟

عملگر LIKE در SQL Server – نحوه استفاده از عملگر LIKE چگونه است؟

نوشته شده توسط: تیم فنی نیک آموز
۰۵ فروردین ۱۴۰۳
زمان مطالعه: 7 دقیقه
۴
(۲)

عملگر LIKE در SQL Server به شما اجازه می‌دهد که براساس الگوهای خاصی، داده‌ها را از پایگاه داده جستجو و دریافت کنید. SQL Server یک سیستم مدیریت پایگاه داده (RDBMS) محسوب می‌شود که با کمک آن می‌توانید به ذخیره‌سازی و سازماندهی اطلاعات بپردازید و به دیتای مدنظر به‌راحتی دسترسی داشته باشید. برای آشنایی بیشتر با آن، می‌توانید به مقاله جامع SQL Server رجوع کنید. پیش‌تر به بررسی دستور Select و دستور Insert ، همچنین عبارت Where و نحوه تعریف محدودیت (Constraint)، دستور آپدیت و دستور اسکیما (Schema) و انواع کلید در پایگاه داده پرداختیم. در این مطلب، عملگر Like در SQL Server را به‌همراه نحوه استفاده از آن تشریح می‌کنیم.

دوره کوئری نویسی در SQL Server نیک آموز

دستور LIKE در SQL Server

به‌واسطه عملگر Like در SQL Server ، می‌توانید داده‌ها را براساس الگوهای درونِ ستون‌های متنی جستجو کنید. این عملگر از تطابق دقیق داده‌ها فراتر می‌رود و به شما اجازه می‌دهد رکوردهایی را بیابید که یک ساختار مشخصی را دنبال می‌کند یا حاوی کاراکترهای خاصی هستند. ساختار کلی Like در SQL Server به‌صورت زیر است:

 

SELECT column_name
FROM table_name
WHERE column_name LIKE 'pattern';

 

بخش‌های مختلف ساختار فوق عبارتند از:

  • column_name: نام ستون متنی‌ای که می‌خواهید جستجو در آن انجام شود. 
  • pattern: الگوی مورد جستجو که می‌خواهید رکوردها با آن تطبیق داشته باشند. این پترن می‌تواند شامل کاراکترهای معمولی و Wildcard ها (کاراکترهای جایگزین) باشد.

کاراکترهای Wildcard در SQL Server به شرح زیر است:

  • علامت درصد (%): این کاراکتر نمایان‌گر صفر، یک یا چند کاراکتر است. به‌عنوان مثال، اگر شما الگوی ‘Pro%’ را درنظر بگیرید، با استفاده از آن رکوردهایی پیدا می‌شود که با Pro آغاز و به‌دنبال آن، هر تعداد از کاراکترها (مانند Product ،Program و…) قرار گرفته باشند.
  • علامت Underscore (ـ): این کاراکتر به هدف نمایش یک تک کاراکتر به کار می‌رود. فرض کنید پترن موردنظر به‌صورت ‘S_z’ باشد؛ در چنین شرایطی رکوردهایی جستجو می‌شوند که با یک S آغاز شده، سپس یک تک کاراکتر دارا هستند و درنهایت با z به پایان می‌انجامند.

توجه کنید که علامت ستاره (*) برای مواقعی مناسب است که بخواهید در الگوی جستجو، هر تعدای از کاراکترها شامل شوند.

ملاحظات جانبی مربوط به عملگر Like در SQL Server

پیش از استفاده از دستور Like در SQL Server ، توصیه می‌شود به موارد زیر توجه کنید:

  • حساسیت به کوچکی و بزرگی حروف: به‌صورت پیش‌فرض، عملگر Like نسبت به حروف بزرگ و کوچک حساس است و اصطلاحاً Case-Sensitive محسوب می‌شود. به منظور اجرای جستجوهای Case Sensitive، می‌توانید از توابع Lower و Upper به‌همراه Like استفاده کنید.
  • کاراکترهای Escape: اگر الگوی شما کاراکترهای خاصی همچون کاراکتر ‘ را شامل می‌شود، لازم است آن را ازطریق کاراکترهای Escape عبور داده و آن را به شکل ‘\ به کار ببرید.
  • الگوهای پیچیده: برای الگوهای بسیار پیچیده، SQL Server تابع PATINDEX را دارا است.

کاربردهای دستور LIKE در SQL Server

تعدای از انواع کاربرد عملگر Like در SQL Server عبارتند از:

  • جستجوی ساده
  • جستجوی بدون درنظرگرفتن حروف بزرگ و کوچک
  • جستجو با استفاده از کاراکترهای جایگزین
  • عدم تطابق با الگو (Not Like)
  • استفاده در توابع T-SQL
  • امکان ترکیب با سایر دستورات

نحوه استفاده از عملگر LIKE در SQL Server (روش ها)

چگونگی استفاده از عملگر Like در SQL Server ، به دیتایی بستگی داد که قصد دارید از پایگاه داده واکشی کنید. با این وجود، در این بخش، تعدادی مثال و کوئری قابل اجرا ارائه می‌کنیم تا شما با روش‌های مختلف استفاده از عملگر Like آشنا شوید.

تطبیق الگوی مقدماتی

اگر بخواهید عملگر Like در SQL Server را به‌منظور تطابق ساده الگوها استفاده کنید، مراحل زیر ضروری هستند:

  • تشخیص ستون متنی: این ستون از جدول دیتابیس، محتوای متنی خاصی را دربرمی‌گیرد که قصد جستجوی آن را دارید.
  • تعریف الگوی جستجو: یک رشته (String) به‌منظور نمایش کاراکترهای مورد جستجو ایجاد کرده و از کاراکترهای Wildcard، شامل ٪ و _ ، برای افزایش انعطاف‌پذیری استفاده کنید.
  • ایجاد یک عبارت Where: درون کوئری T-SQL خود، عبارت Where را در قالب ساختار زیر به کار ببرید:

 

WHERE column_name LIKE 'pattern';

 

فرض کنید قصد داریم تمامی کارمندانی که شهر آن‌ها لندن است را از دیتابیس Northwind پیدا کنیم. در چنین شرایطی، باید از کوئری زیر استفاده کرد:

 

SELECT * FROM Employees
WHERE City LIKE 'London%';

 

تطبیق الگوی مقدماتی

 

عدم حساسیت به حروف بزرگ و کوچک

می‌خواهیم تمامی محصولاتی را پیدا کنیم که شامل واژه chai باشند، به‌طوریکه هیچ‌گونه حساسیتی نسبت به حروف بزرگ و کوچک مطرح نباشد. با اجرای کوئری زیر، این عمل ممکن خواهد شد:

 

SELECT *
FROM Products
WHERE LOWER(ProductName) LIKE '%chai%';

 

در حقیقت، با استفاده از عملگر Like و تابع Lower در کوئری فوق، عدم حساسیت به حروف بزرگ در جستجوی پترن لحاظ خواهد شد.

 

عدم حساسیت به حروف بزرگ و کوچک در عملگر LIKE در SQL Server

 

ترکیب الگو و عملگرهای منطقی

فرض کنید می‌خواهیم بدانیم کدام ProductName ها از رکوردهای جدول Products، با ch آغاز می‌شوند و UnitPrice آن‌ها بزرگ‌تر از ده است. در چنین شرایطی، می‌توان با عملگر Like در SQL Server به‌همراه Logical Operator به این هدف رسید. برای درک بهتر، به کوئری زیر توجه کنید:

 

SELECT * FROM Products
WHERE ProductName LIKE 'ch%' AND UnitPrice > 10;

 

ترکیب الگو و عملگرهای منطقی

 

استفاده از درصد در Like

شما می‌توانید با استفاده از کاراکترهای Wildcard برای استخراج دیتا از دیتابیس اقدام کنید. در این مثال، به‌طور خاص جدول Products از دیتابیس Northwind تارگت شده و نام محصولاتی استخراج خواهد شد که مقدار UnitInStock با صفر تمام می‌شود. این یعنی، چنین محصولاتی در پایگاه داده ناموجود به شمار می‌روند.

 

SELECT ProductName
FROM Products
WHERE UnitsInStock LIKE '0%';

 

استفاده از درصد در Like

 

استفاده از Underscore در Like

شما می‌توانید با استفاده از کاراکتر Underscore، موقعیت یک تک کاراکتر نامشخص را در الگوی جستجوی خود نگهداری کنید. برای درک بهتر، به مثال زیر توجه کنید. این کوئری، تمامی اطلاعات مربوط به Category هایی را که CategoryName آن‌ها دارای دو کلمه خاص هستند را استخراج می‌کند؛ بدین صورت که کلمه اول با Sea پایان یافته و کلمه دوم با ood آغاز شود. به‌عنوان مثال، Seafood درصورت وجود، توسط این کوئری قابل استخراج است:

 

SELECT * FROM Categories
WHERE CategoryName LIKE '%Sea_ood%';

 

استفاده از Underscore در عملگر LIKE در SQL Server

 

در این بخش، مثال‌های ساده و در عین حال قابل درکی از نحوه استفاده از عملگر Like در SQL Server شرح داده شدند. شما می‌توانید براساس نوع جستجو و دیتایی که به آن نیاز دارید، نحوه به‌کارگیری این عملگر را تغییر دهید.

منفی کردن نتیجه عملگر LIKE

منظور از منفی‌کردن نتیجه عملگر Like در SQL Server ، لحاظ نکردن شرایط یا پترن‌های خاصی از رکوردهای جداول پایگاه داده است. هرچند انتخاب یک روش از میان انواع آن‌ها به ساختار دیتا و سناریو مدنظر بستگی دارد، اما برای این کار بهتر است از NOT LIKE استفاده شود. با به‌کارگیری Not Like ، می‌توانید رکوردهای خاصی را براساس الگو خاصی جا انداخته و از آن‌ها صرف‌نظر کنید.

در مثال زیر، اطلاعات مربوط به تمامی رکوردهای جدول کارمندانی نمایش داده می‌شود که City آن‌ها Redmond نیست.

 

SELECT * FROM Employees
WHERE City NOT LIKE 'Redmond'

 

منفی کردن نتیجه عملگر LIKE

 

توجه کنید که برای استثنا قائل شدن برای برخی از رکوردها، امکان اعمال شرط‌ها ازطریق عبارت Where و همچنین، Subquery ها وجود دارد.

کلام آخر: دلیل اهمیت عملگر Like چیست؟

عملگر Like در SQL Server ، به‌دلیل تسهیل جستجوی متنی انعطاف‌پذیر، امکان نوشتن کوئری‌های قابل درک، کارایی در جستجوی دیتاهای خاص و قدرتمندبودن آن همراه با عملگرهای منطقی، به‌عنوان یک Operator کارآمد کاربردی است. در این آموزش، دستور Like و کاربردهای آن را به‌همراه مثال‌های شفاف مورد بررسی قرار دادیم تا بدین طریق، با آن آشنایی پیدا کنید. اگر قصد دارید مهارت‌های خود را در زمینه کوئری‌نویسی توسعه دهید، پیشنهاد می‌کنیم مقاله پرکاربردترین دستورات SQL Server و همچنین، مقاله اسکریپت های پرکاربرد SQL را نیز مطالعه کنید.

چه رتبه ای می‌دهید؟

میانگین ۴ / ۵. از مجموع ۲

اولین نفر باش

title sign
برچسب ها
title sign
دانلود مقاله
عملگر LIKE در SQL Server – نحوه استفاده از عملگر LIKE چگونه است؟
فرمت PDF
8 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
260 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
وبینار رایگان ؛ Power BI کلید رقابت شما در دنیا داده‌ها      چهارشنبه 12 اردیبهشت ساعت 15
ثبت نام رایگان
close-image