מושגי מפתח של שרת SQL: שימוש באופרטור SQL LIKE

המפעיל LIKE של T-SQL הוא אחת מההוספות המועילות ביותר להצהרת SQL SELECT. האחרונה מחזירה סט תוצאות, וניתן לסנן בקלות את התוצאות באמצעות אופרטורי השיוויון ואת CLAUSE WHERE כדי לבחור תנאים מסוימים מסוימים. אבל מה עם הפעמים שברצונך לבחור שורות המבוססות על ערכים חלקיים? זהו המקום שבו מתמקמת ההצהרת SQL LIKE, ואני אראה לך כיצד להשתמש בה במדריך זה.

תחביר של SQL LIKE

ניתן לראות את התחביר הבסיסי של המפעיל LIKE ברשימה הבאה:

פרסומת

  • ראשית, עליך לספק את הביטוי שברצונך להתאים. כלול בדרך כלל שם עמודה.
  • לאחר מכן, תוכל לציין אופציונלית NOT כדי להפוך את הביטוי לעבוד עבור כל התנאים שאינם מתאימים. שימוש בתנאי NOT LIKE אינו הדרך הנפוצה ביותר להשתמש במפעיל LIKE.
  • אז אתה צריך לספק את התבנית להתאמה. זה יכול להיות מילולי או שיכול לכלול תווים פלאשברד שמאפשרים התאמה יותר גמישה.
  • זה יכול להיות מוצע באופן אופציונלי עם תו ניסור שניתן להשתמש בו כדי לעזור לחפש תווים פלאשברד.
  • אם מילת המפתח כלשהי אינה מין מחרוזת תווים, SQL Server ימיר אותו למין מחרוזת תווים.
match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

SQL LIKE ותווים פלאשברד

לפני שאנו צוללים לפרטים, כדאי לדעת שב-SQL LIKE יכולות ההתאמה יכולות לכלול תווים רגילים כמו גם תווים פלאשברד. תווים פלאשברד מאפשרים לך לבחור מחרוזת תווים מסוימת המתאימה לתבנית הפלאשברד.

להתאמת תבנית, תווים רגילים חייבים להתאים לתווים המסופקים במחרוזת התווים. עם זאת, תווים פלאשברד יכולים להתאים עם כל מקטעים של מחרוזת התווים. השימוש בתווים פלאשברד הופך את המפעיל LIKE ליותר גמיש מאשר מפעילי השוואת מחרוזת השוויון (= ו !=) הרגילים.

המפעיל LIKE מקבל ארבעה סוגים שונים של תווים פלאשברד. כל תו פלאשברד מבצע פונקציה השוואה שונה, ותוכל ללמוד יותר בטבלה הבאה.

Wildcard character Description
% (percent sign) Any string of zero or more characters.
_ (underscore) Any single character.
[ ] Any single character within the specified range [a-f] or set [abcdef].
[^] Any single character not within the specified range [^a-f] or set [^abcdef].
The four different types of wildcard characters to use with the LIKE operator.

המפעיל LIKE מחזיר TRUE אם ה-match_expression מתאים לתבנית המסוימת. בואו נשתמש בכמה דוגמאות כדי להראות לך איך להשתמש במפעיל SQL LIKE עם מסד הנתונים הדוגמא AdventureWorksLT2019.

פרסומת

התאמת תווים פלאשברד מרובים

הסמל הכללי % מייצג אפס או יותר תווים. השאילתה הבאה מחזירה את כל השורות מטבלת 'Person.Person' שבהן שם המשפחה מתחיל באות 'A'.

USE AdventureWorksLT2019;

SELECT FirstName, LastName FROM SalesLT.Customer

WHERE LastName LIKE 'A%';
Matching multiple wildcard characters (Image credit: Petri/Michael Otey)

התאמת תו יחיד

הסמל הכללי _ מייצג תו יחיד. השאילתה בדוגמה הבאה מחזירה את כל השורות מטבלת 'SalesLT.Product' שבהן השם מכיל בדיוק ארבעה תווים מכל סוג, עם מקף לאחריהם.

USE AdventureWorksLT2019;

SELECT ProductID, Name FROM SalesLT.Product

WHERE Name LIKE '____-%';
Single character wildcard matching (Image credit: Petri/Michael Otey)

התאמת תו כללית עבור סט של תווים

הַתְחָלָה [] תַּוְּכִיד מַיְּצִיג תַּוְּכִיד יָחִיד בַּתַּקְּנָה אוֹ בַּקְּבוּץ הַמְּצוּיָן. הַהֲצָהָה הַבַּאָה מַחְזִירָה אֶת כָּל הַשֻּׁרוֹת מִטַּבְּלַת 'SalesLT.Product' הַמְּתַחֵלוֹת בְּ 'B', 'C', אוֹ 'D'.

USE AdventureWorksLT2019;

SELECT Name FROM SalesLT.Product

WHERE Name LIKE '[BCD]%';
Wildcard matching for a set of characters (Image credit: Petri/Michael Otey)

תַּוְּכִיד תַּוְּכִיד לְטַוְּכִיד תַּוְּכִיד

יָכוֹל גַּם לְהַשְׁתִּית אֶת הַפְּסֻקָּה LIKE לְתַּמֵּךְ בַּחֲפֵשׁוֹת טַּוְּכִיד. הַשְׁאֵילָה הַזּוֹ מַחְזִירָה אֶת שֵׁמוֹת הַמִּשְׁפָּחָה הַסוֹפוֹת בְּ 'ee' וּמַתְּחִילוֹת בַּתַּוְּכִיד יָחִיד בֵּין הַאוֹתִיּוֹת 'C' וְ 'L'.

פְרָסוּמִים

USE AdventureworksLT2019;

SELECT LastName, FirstName FROM SalesLT.Customer

WHERE LastName LIKE '[C-L]ee'
Wildcard matching for a range of characters (Image credit: Petri/Michael Otey)

מְּכַוֵּן תַּוְּכִיד שֶׁאֵינָם חֶלֶק מִן הַקְּבוּץ הַמְּצוּיָן

הַתַּוְּכִיד [^] מַיְּצִיג תַּוְּכִיד יָחִיד שֶׁאֵינוֹ בַּתַּקְּנָה אוֹ בַּקְּבוּץ הַמְּצוּיָן. הַשְׁאֵילָה הַבַּאָה מַחְזִירָה אֶת כָּל הַשֻּׁרוֹת מִטַּבְּלַת 'SalesLT.Product' הַמְּתַחֵלוֹת בְּ 'A', 'B', אוֹ 'C'.

USE AdventureworksLT2019;

SELECT Name FROM SalesLT.Product

WHERE Name LIKE '[^ABC]%';
Excluding characters that are not part of the specified set (Image credit: Petri/Michael Otey)

שימוש בתנאי תאימות מרובים עם תווי כלליים

CLAUSE הַ-LIKE יכול גם להיות משולב עם מספר תווי כלליים בשאילתה אחת. השאילתה הבאה משתמשת במספר תווי SQL כלליים כדי לאחזר את כל השורות מטבלת 'Person.Person' שבהן ה-'FirstName' מכיל את האות 'a' וה-'LastName' מכיל תו כלשהו שאחריו יש 'l'.

USE AdventureworksLT2019;

SELECT FirstName, LastName FROM SalesLT.Customer

WHERE FirstName LIKE '%a%' AND LastName LIKE '_l%';
Using multiple wildcard matching conditions (Image credit: Petri/Michael Otey)

חיפוש אחר תווי כלליים

התאמת תווי כלליים מוסיפה המון כוח וגמישות לאופרטור הַ-LIKE. עם זאת, ייתכן ותתעצבן כיצד ייתכן להשתמש בַּLIKE כדי לתאם אחד מתווי הכלליים האלה כתו עצמו.

כדי לעשות זאת, ניתן לסגור את תו הכללי בסוגריים מרובעים, שמאפשר לך להשתמש בתו כללי כתו ליטרלי. ניתן לראות דוגמאות בטבלה הבאה.

Pattern Search value
LIKE ‘%2[%]%’ 2%
LIKE ‘%[_]m%’ _m
LIKE ‘%[ [ ]%’ [
Searching for wildcard characters
  • הדוגמה הראשונה מתאימה למספר 2 שנמצא אחריו תו הכללי לחוץ.
  • הדוגמה השנייה מתאימה לתו המדגרה שנמצא אחריו האות m.
  • הדוגמה השלישית משמשת לתיאום תווי מרובעים.
(Image credit: Petri/Michael Otey)

ההצהרה הַ-LIKE של SQL משפרת את ההצהרה הַ-SELECT של SQL

אתה צריך כעת להבין טוב יותר כיצד ניתן להשתמש באופרטור SQL LIKE כדי לשפר את העוצמה והגמישות של ההצהרת SQL SELECT. כאן, הראיתי גם לך כיצד להשתמש במשפט LIKE עם תווי גילוי שונים. בין התאמה למראה של מספר תווי גילוי, ביצוע התאמה לתו יחיד, התאמה לסט של תווים, או הוצאת תווים מהתוצאות, יש לך אכן הרבה אפשרויות בידיים.

Source:
https://petri.com/sql-like/