בין אם מחפשים רשומות ספציפיות, סינון הנתונים או ביצוע משימות שונות של מניפולציה של נתונים, חשוב להבין כיצד SQL מטפל במחרוזת שווה.
במדריך זה, נתעמק במחרוזת SQL שווה על ידי התבוננות בתחביר הנתמך, בשימוש ובדוגמאות שונות להבנה טובה יותר.
מחרוזת SQL שווה תחביר
ישנן דרכים שונות בהן ניתן לבצע את סינון המחרוזות. עם זאת, אחת הטכניקות הנפוצות והקלות ביותר היא שימוש בסעיף WHERE.
הבא מציג את התחביר של הסעיף:
בחר עמודה 1, עמודה 2, ...
FROM table_name
WHERE column_name = 'ערך';
במקרה זה, ה-'column_name' מייצג את העמודה שברצוננו להשוות בעוד שהערך מתייחס למחרוזת המילולית שבה אנו רוצים להשוות אותו.
זה משתמש באופרטור השוויון שבודק אם המחרוזות שסופקו שוות.
נתונים לדוגמה
לפני שנצלול לתוך השימוש, הרשו לנו להרכיב טבלה בסיסית לדוגמה המאפשרת לנו להדגים את השימוש בצורה מעשית יותר.
שקול את הטבלה לדוגמה ונתונים לדוגמה כפי שמוצגים להלן:
CREATE TABLE עובדים (עובד_מזהה INT PRIMARY KEY AUTO_INCREMENT,
שם עובד VARCHAR(100),
department_id INT
);
INSERT INTO עובדים (Employee_name, department_id) VALUES
('פלפס דיין', 101),
('אלנה ל', 102),
('E Johnson', 103),
('דניאל ב', 104),
('שבור דייוויס', 105),
('ג'סיקה ווילסון', 106),
('דניאל גרסיה', 107),
('קרן מרטינז', 108),
('אנטוני רובינסון', 109),
('סופיה קלארק', 110);
זה אמור ליצור טבלה ולהוסיף את הרשומות לדוגמה לטבלה.
דוגמה 1: שימוש בסיסי
שקול את השאילתה לדוגמה הבאה שמשתמשת באופרטור המחרוזת שווה לחיפוש רשומה תואמת שבה שם העובד שווה ל-Karen Martinez.
בחר *מעובדים
WHERE employee_name = 'קרן מרטינז';
בשאילתה הנתונה, אנו בוחרים את כל העמודות מטבלת 'עובדים' שבה העמודה 'שם_עובד' שווה ל'קרן מרטינז'.
הפלט המתקבל הוא כדלקמן:
עובד_מזהה|שם_עובד |מזהה_מחלקה|------------------------+---------------+
8|קרן מרטינז| 108 |
דוגמה 2: השוואת מחרוזות תלויות רישיות
למרות שזה עשוי להיות תלוי במערכת מסד הנתונים, כברירת מחדל, השוואת המחרוזות ברוב מערכות מסד הנתונים אינה תלוית רישיות.
כדי לאלץ במפורש את מסד הנתונים לבצע השוואה תלוית רישיות, אתה יכול להשתמש במילת המפתח BINARY באופן הבא:
בחר *מעובדים
WHERE BINARY עובד_שם = 'קרן מרטינז';
במקרה זה, מכיוון שהמחרוזת המסופקת מכילה את האותיות הקטנות M בשם Martinez, בסיס הנתונים יתייחס אליה כמחרוזת אחרת. מכאן שאין תוצאה.
דוגמה 3: שימוש בתווים כלליים
במקרים אחרים, ייתכן שנרצה לבצע בדיקת שוויון מחרוזת באמצעות התווים הכלליים. זה מתאים למחרוזות התואמות לפורמט מסוים ולא למחרוזת יחידה מילולית.
זה יכול לעזור לספק גמישות בחיפושים מבלי להכריע בפועל את מנוע מסד הנתונים.
לדוגמה, אנו יכולים להשתמש בתווים כלליים כמו '%' (תואם לכל רצף של תווים) ו-'_' (תואם לכל תו בודד) בשילוב עם מחרוזת שווה.
הבה נסתכל על דוגמה כדלקמן:
בחר *מעובדים ה
WHERE עובד_שם LIKE 'A%';
שאילתה זו מאחזרת את כל העובדים ששמם מתחיל באות 'A'.
דוגמה 4: בריחה מהדמויות המיוחדות
במקרה שבו אתה צריך לחפש תווים מסוימים כחלק מהמחרוזת, אתה צריך לברוח מהם כאשר אתה משתמש בהם ב-string equals.
לדוגמה, אם ברצונך לחפש תו כמו קו נטוי אחורי או ציטוט בודד כחלק מהמחרוזת, עליך להימלט ממנו באופן הבא:
בחר *ממוצרים
WHERE product_name = 'תפוחים מתוקים';
במקרה זה, אנו משתמשים באלכסון אחורי כדי לחמוק מהמרכאה הבודדת בתוך המחרוזת.
כדי להימלט מהלוכסן האחורי, אתה יכול להשתמש באלכסונים האחוריים הכפולים באופן הבא:
בחר *ממוצרים
WHERE product_name = 'מתוקים\\ תפוחים';
זה צריך לכלול קו נטוי במחרוזת המילולית.
סיכום
במדריך זה, למדנו על אחת מפעולות המחרוזות הנפוצות והשימושיות ביותר בבסיסי נתונים שהיא השוואת שוויון המחרוזות. למדנו את התחביר והשימוש באופרטורים השונים כדי להשוות בין המחרוזות.