"

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

زهیر صفری 1404/10/15 0 22
لینک کوتاه https://zoheirsoftware.com/z/26aecd131 |
عملگر LIKE در SQL Server برای جستجوی پیشرفته, جستجوی متنی و فیلتر داده‌ها با LIKE در SQL, استفاده از LIKE در SQL Server

 مقدمه

در دنیای پایگاه‌های داده، جستجو فقط به معنی پیدا کردن یک مقدار دقیق نیست.

در بسیاری از پروژه‌های واقعی، نیاز داریم داده‌ها را بر اساس الگو، بخشی از متن یا شباهت‌ها فیلتر کنیم.

اینجاست که عملگر `LIKE` در SQL Server به‌عنوان یکی از ابزارهای کلیدی جستجوی پیشرفته وارد عمل می‌شود.

عملگر LIKE به توسعه‌دهندگان و تحلیل‌گران داده این امکان را می‌دهد که جستجوهای منعطف، هوشمند و کاربرمحور پیاده‌سازی کنند؛ از فیلتر نام کاربران گرفته تا جستجوی پیشرفته در گزارش‌ها و سیستم‌های سازمانی.

 عملگر LIKE در SQL Server چیست؟

عملگر `LIKE` برای جستجوی مقادیر متنی بر اساس الگو (Pattern Matching) استفاده می‌شود.

برخلاف عملگر `=` که فقط تطابق دقیق را بررسی می‌کند، LIKE امکان جستجو بر اساس بخشی از متن یا ساختار خاصی از رشته را فراهم می‌کند.

به زبان ساده:

 `=` → تطابق دقیق
 `LIKE` → تطابق الگو

 ساختار کلی دستور LIKE

SELECT column_name
FROM table_name
WHERE column_name LIKE 'pattern';

 چرا استفاده از عملگر LIKE در SQL Server اهمیت دارد؟

در بسیاری از پروژه‌های واقعی، جستجوی داده‌ها به تطابق دقیق محدود نمی‌شود و ما با اطلاعات ناقص یا بخشی از متن سروکار داریم.

عملگر LIKE دقیقاً برای همین نیاز طراحی شده و امکان فیلتر کردن داده‌ها بر اساس الگو را فراهم می‌کند، نه صرفاً یک مقدار مشخص.

با استفاده از LIKE می‌توانید جستجوهایی پیاده‌سازی کنید که هم برای کاربر قابل‌درک‌تر هستند و هم برای تحلیل داده کاربردی‌تر عمل می‌کنند.

این عملگر به شما اجازه می‌دهد داده‌ها را هوشمندانه‌تر غربال کنید، تجربه جستجو را بهبود دهید و بدون پیچیدگی‌های اضافی، جستجوی پیشرفته SQL را در پروژه‌های مختلف اجرا کنید.

به همین دلیل، LIKE یکی از پایه‌ای‌ترین ابزارها در فیلتر کردن داده‌های متنی محسوب می‌شود.

 Wildcardها در عملگر LIKE (هسته اصلی جستجو)

قدرت واقعی LIKE به استفاده از Wildcardها وابسته است.

این کاراکترهای خاص مشخص می‌کنند SQL Server چگونه الگوی جستجو را تفسیر کند و چه محدوده‌ای از داده‌ها را بررسی نماید.

با ترکیب درست این نشانه‌ها، می‌توان جستجوهای بسیار منعطف و دقیقی ایجاد کرد.

 1. علامت % (درصد)

کاراکتر `%` نشان‌دهنده هر تعداد کاراکتر است و بیشترین کاربرد را در جستجوهای متنی دارد.

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

SELECT * 
FROM Users
WHERE Username LIKE 'Ali%';

این کوئری تمام کاربرانی را برمی‌گرداند که نام کاربری آن‌ها با `Ali` آغاز می‌شود.

 2. علامت _ (آندرلاین)

کاراکتر `_` دقیقاً معادل یک کاراکتر واحد است و زمانی استفاده می‌شود که ساختار داده مشخص باشد، اما مقدار دقیق آن را ندانیم.

این Wildcard برای جستجو در کدها، شناسه‌ها و الگوهای ثابت بسیار کاربردی است.

SELECT * 
FROM Products
WHERE Code LIKE 'A_1';

فقط مقادیری مانند `A21` یا `AB1` را برمی‌گرداند.

 3. استفاده ترکیبی از % و _

SELECT * 
FROM Employees
WHERE NationalCode LIKE '00__%';

مناسب برای جستجوهای ساختاریافته مثل کد ملی، شماره پرسنلی و… است.

 استفاده از عملگر LIKE در SQL Server برای جستجوی پیشرفته

در کاربردهای واقعی پایگاه داده، جستجو معمولاً بر اساس اطلاعات کامل انجام نمی‌شود.

کاربر ممکن است فقط بخشی از یک عنوان، نام یا توضیح را به خاطر داشته باشد. 

در چنین شرایطی، عملگر LIKE به شما اجازه می‌دهد بدون وابستگی به مقدار دقیق، داده‌ها را بر اساس الگو پیدا کنید.

 جستجو بر اساس بخشی از متن (Contains)

در بسیاری از سیستم‌ها، جستجوی متنی به‌صورت ناقص انجام می‌شود و انتظار می‌رود سیستم بتواند بر اساس همان بخش محدود، نتیجه مرتبط را نمایش دهد.

با قرار دادن علامت `%` در ابتدا و انتهای الگو، LIKE می‌تواند هر مقداری را که شامل متن موردنظر است شناسایی کند.

SELECT * 
FROM Articles
WHERE Title LIKE '%SQL%';


 این کوئری تمام رکوردهایی را برمی‌گرداند که عبارت SQL در عنوان آن‌ها وجود دارد، بدون توجه به محل قرارگیری آن در متن.

 جستجو با شروع مشخص (Starts With)

این نوع جستجو زمانی کاربرد دارد که ابتدای مقدار مشخص است اما ادامه آن می‌تواند متغیر باشد.

استفاده از LIKE با الگوی شروع مشخص، علاوه بر خوانایی بیشتر، از نظر عملکرد نیز معمولاً بهینه‌تر از جستجوی شامل عمل می‌کند و در فیلتر لیست‌ها و فرم‌های جستجو بسیار رایج است.

SELECT * 
FROM Customers
WHERE LastName LIKE 'Moh%';

نتیجه این کوئری شامل تمام مشتریانی است که نام خانوادگی آن‌ها با «Moh» آغاز می‌شود.

 جستجو با پایان مشخص (Ends With)

در برخی سناریوها، بخش پایانی داده اهمیت بیشتری دارد؛ مانند دامنه ایمیل، پسوند فایل یا کدهای استاندارد.

در این حالت، قرار دادن `%` در ابتدای الگو به SQL Server اجازه می‌دهد هر مقداری را که با الگوی موردنظر خاتمه پیدا می‌کند، پیدا کند.

SELECT * 
FROM Users
WHERE Email LIKE '%@gmail.com';

 این دستور تمام کاربرانی را برمی‌گرداند که ایمیل آن‌ها با دامنه Gmail ثبت شده است.

 فیلتر کردن داده‌ها با LIKE در پروژه‌های واقعی

در پروژه‌های عملی، LIKE به‌ندرت به‌تنهایی استفاده می‌شود و معمولاً در کنار سایر شرط‌ها قرار می‌گیرد.

ترکیب LIKE با فیلترهای منطقی باعث می‌شود نتیجه نهایی دقیق‌تر، کاربردی‌تر و متناسب با نیاز واقعی سیستم باشد.

 فیلتر کردن داده‌ها با LIKE  در SQL Server

 

فیلتر کاربران فعال بر اساس نام

در سیستم‌های کاربری، یکی از نیازهای رایج، جستجوی کاربران فعال بر اساس بخشی از نام آن‌هاست.

در این حالت، LIKE همراه با شرط‌های دیگر مانند وضعیت فعال بودن استفاده می‌شود.

 

SELECT * 
FROM Users
WHERE IsActive = 1
AND FullName LIKE '%رضا%';

این کوئری فقط کاربرانی را نمایش می‌دهد که فعال هستند و نام آن‌ها شامل «رضا» است.

 استفاده از LIKE در گزارش‌گیری

گزارش‌ها نیاز به فیلترهای انعطاف‌پذیر دارند تا امکان تحلیل دقیق داده‌ها فراهم شود.

LIKE در این بخش کمک می‌کند اطلاعات مرتبط بر اساس توضیحات یا متن‌های آزاد به‌سادگی استخراج شوند.

SELECT OrderId, Description
FROM Orders
WHERE Description LIKE '%ارسال%';

 حساس بودن یا نبودن LIKE به حروف بزرگ و کوچک

نحوه تشخیص حروف بزرگ و کوچک در LIKE به تنظیمات Collation پایگاه داده وابسته است.

در اغلب پایگاه‌های داده SQL Server، Collation به‌صورت پیش‌فرض حساس به حروف نیست؛ بنابراین تفاوتی بین حروف بزرگ و کوچک در نظر گرفته نمی‌شود.

SELECT * 
FROM Logs
WHERE Message LIKE '%error%';

 در این حالت، مقادیری مانند `Error`، `ERROR` و `error` همگی در نتیجه جستجو قرار می‌گیرند.

 استفاده از NOT LIKE برای حذف داده‌ها از نتیجه جستجو

در برخی موارد، هدف از جستجو پیدا کردن داده‌های نامطلوب نیست، بلکه حذف آن‌ها از خروجی است.

با استفاده از NOT LIKE می‌توان رکوردهایی که شامل یک الگوی خاص هستند را از نتایج کنار گذاشت.

SELECT * 
FROM Products
WHERE Name NOT LIKE '%Test%';

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

عملگر LIKE یکی از ساده‌ترین راه‌ها برای پیاده‌سازی جستجوی متنی در SQL Server است و بدون نیاز به تنظیمات پیچیده، امکان فیلتر کردن داده‌ها را فراهم می‌کند.

به همین دلیل، هم برای توسعه‌دهندگان تازه‌کار و هم برای پروژه‌های عملی انتخابی قابل‌اعتماد محسوب می‌شود.

مزایای اصلی استفاده از LIKE عبارت‌اند از:

  •  یادگیری سریع و قابل‌درک حتی برای افراد مبتدی

  •  مناسب برای پیاده‌سازی جستجوی پیشرفته SQL بر اساس الگو

  •  عدم نیاز به ابزارها یا سرویس‌های جانبی

  •  سازگاری کامل با تمام نسخه‌های SQL Server

  •  کاربردی در پروژه‌های کوچک، متوسط و سیستم‌های سازمانی

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

محدودیت‌های LIKE که باید بدانید

با وجود سادگی و کاربرد گسترده، LIKE همیشه بهترین انتخاب نیست و در برخی شرایط می‌تواند باعث کاهش کارایی سیستم شود.

آگاهی از این محدودیت‌ها کمک می‌کند در زمان مناسب، ابزار درست را انتخاب کنید.

مهم‌ترین محدودیت‌های LIKE

  •  افت عملکرد در پایگاه‌های داده حجیم

  •  ناتوانی در انجام جستجوی معنایی و مفهومی

  •  مناسب نبودن به‌عنوان جایگزین FullText Search

  •  مصرف بالای منابع در ستون‌های متنی بدون ایندکس

مقایسه LIKE با = (کدام بهتر است؟)

ویژگی LIKE =
جستجوی الگو
تطابق دقیق   ❌  ✅ 
انعطاف‌پذیری  بالا   کم 
عملکرد   متوسط  سریع

🔹 اگر مقدار دقیق را می‌دانید → `=`

🔹 اگر جستجوی منعطف می‌خواهید → `LIKE`

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

نکات مهم عملکردی در استفاده از LIKE

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

 نکته 1: استفاده نکردن از % در ابتدای الگو

قرار دادن `%` در ابتدای الگو باعث اسکن کامل جدول می‌شود.

در صورت امکان، الگوی جستجو را به‌گونه‌ای بنویسید که مقدار از ابتدای رشته مشخص باشد.

 

LIKE '%SQL'   -- کند
LIKE 'SQL%'   -- بهینه‌تر

نکته 2: ایجاد ایندکس روی ستون‌های متنی

در ستون‌هایی که به‌طور مداوم در شرط LIKE استفاده می‌شوند، ایجاد ایندکس می‌تواند زمان اجرای کوئری را به‌طور چشمگیری کاهش دهد.

CREATE INDEX IX_Users_FullName ON Users(FullName);

 

 چه زمانی به‌جای LIKE از FullText Search استفاده کنیم؟

در پروژه‌هایی که حجم داده‌ها زیاد است یا کیفیت نتایج جستجو اهمیت بالایی دارد، استفاده از LIKE پاسخ‌گوی نیاز سیستم نخواهد بود.

در این شرایط، FullText Search گزینه‌ای حرفه‌ای‌تر و مقیاس‌پذیرتر محسوب می‌شود.

اگر با این شرایط روبه‌رو هستید:

  •  پایگاه داده بسیار بزرگ است

  •  به جستجوی معنایی و هوشمند نیاز دارید

  •  مرتب‌سازی و رتبه‌بندی نتایج اهمیت دارد

بهتر است به‌جای LIKE، از FullText Search استفاده کنید تا هم دقت جستجو افزایش یابد و هم عملکرد سیستم حفظ شود.

پرسش‌های استفاده عملگر LIKE در SQL Server

1. آیا LIKE باعث کندی کوئری می‌شود؟

اگر از `%` در ابتدای الگو استفاده کنید یا ستون ایندکس نداشته باشد، بله.

 2. تفاوت LIKE و CHARINDEX چیست؟

LIKE الگو محور است، CHARINDEX موقعیت کاراکتر را برمی‌گرداند.

پرسش‌های استفاده عملگر LIKE در SQL Server

 

نتیجه‌گیری

عملگر `LIKE` در SQL Server یکی از پایه‌ای‌ترین و در عین حال قدرتمندترین ابزارهای جستجوی پیشرفته است.

اگر به‌درستی از Wildcardها استفاده شود و نکات عملکردی رعایت گردد، LIKE می‌تواند نیاز ۸۰٪ پروژه‌های واقعی را پوشش دهد.

برای جستجوهای سریع، ساده و منعطف، LIKE همچنان انتخابی هوشمندانه است.

 

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

1,600,000 تومان

3.8k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.