שיעורי מודול (1/4)
פונקציות מחרוזות
ל-PostgreSQL יש עשרות פונקציות לתפעול מחרוזות. בשיעור זה
אנו מסתכלים על הנפוצים ביותר בעבודה אמיתית: נרמול (LOWER/UPPER),
מדידה (LENGTH), חיבור (|| / CONCAT), חילוץ (SUBSTRING),
ניקוי (TRIM), החלפה (REPLACE) וחיפוש תבניות
(LIKE / ILIKE).
הפונקציות בהן נשתמש
LOWER('Alice') -- 'alice'
UPPER('alice') -- 'ALICE'
LENGTH('alice') -- 5
'a' || 'b' -- 'ab' (concatenazione)
CONCAT('a', 'b', 'c') -- 'abc' (versione "funzione")
SUBSTRING('hello' FROM 2 FOR 3) -- 'ell'
TRIM(' alice ') -- 'alice'
REPLACE('foo bar', 'bar','x') -- 'foo x'|| הוא אופרטור SQL הסטנדרטי לשרשור מחרוזות; CONCAT הוא
מתירני יותר (הוא מתעלם מNULLs, בעוד || מפיץ אותם:
'a' || NULL → NULL).
LIKE ו-ILIKE: חיפוש לפי דפוס
LIKE מחפש דפוס: % = כל רצף, _ = יחיד
אופי. זה תלוי רישיות. ILIKE הוא ה-PostgreSQL
גרסה לא תלוית רישיות:
WHERE name LIKE '%Cuffie%' -- match esatto "Cuffie"
WHERE name ILIKE '%cuffie%' -- match anche "CUFFIE", "Cuffie", "cuffie"
WHERE email LIKE '%@example.com'
WHERE first_name LIKE 'A_____' -- inizia per A, lungo 6 (A + 5 caratteri)כדי לחפש מילולית % או _ בתוך התבנית, השתמש ב-ESCAPE:
WHERE titolo LIKE '%50\%%' ESCAPE '\'; -- contiene "50%"שילוב פונקציות
פונקציות מורכבות כמו בכל שפה:
-- Email "normalizzata" e iniziali in maiuscolo:
SELECT LOWER(email) AS email_norm,
UPPER(SUBSTRING(first_name FROM 1 FOR 1)) || '.'
|| UPPER(SUBSTRING(last_name FROM 1 FOR 1)) || '.' AS iniziali
FROM customers
ORDER BY id;נסה את זה
עבור כל לקוח, הצג את האימייל באותיות קטנות (דוא"ל עמודה) ואת השם המלא בתור 'שם_שם_שם_שם' (שם_מלא בעמודה). הזמנה לפי תעודת זהות.
הצג רמז
LOWER עבור העמודה הראשונה, || לשרשור עם רווח ביניהם.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
מצא את כל המוצרים המכילים את המילה 'מחשב נייד' (בכל מקרה) בשם. הצג רק את עמודת השם. סדר לפי שם.
הצג רמז
ILIKE אינו תלוי רישיות. השתמש ב-'%laptop%' כדי להתאים את 'מחשב נייד' בכל מיקום.
הפתרון זמין לאחר 3 ניסיונות