Bài học theo mô-đun (1/4)
Hàm chuỗi
PostgreSQL có hàng tá hàm để thao tác với chuỗi. Trong bài học này
chúng tôi xem xét những vấn đề phổ biến nhất trong công việc thực tế: chuẩn hóa (LOWER/UPPER),
đo (LENGTH), soạn (|| / CONCAT), trích xuất (SUBSTRING),
dọn dẹp (TRIM), thay thế (REPLACE) và tìm kiếm mẫu
(LIKE / ILIKE).
Các chức năng chúng tôi sẽ sử dụng
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'|| là toán tử SQL tiêu chuẩn để nối chuỗi; CONCAT là
dễ dãi hơn (nó bỏ qua NULL, trong khi || tuyên truyền chúng:
'a' || NULL → NULL).
THÍCH và ILIKE: tìm kiếm theo mẫu
LIKE tìm kiếm mẫu: % = bất kỳ chuỗi nào, _ = một mẫu
nhân vật. Nó phân biệt chữ hoa chữ thường. ILIKE là PostgreSQL
biến thể không phân biệt chữ hoa chữ thường:
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)Để tìm kiếm % hoặc _ theo nghĩa đen bên trong mẫu, hãy sử dụng ESCAPE:
WHERE titolo LIKE '%50\%%' ESCAPE '\'; -- contiene "50%"Kết hợp chức năng
Các hàm soạn thảo giống như trong bất kỳ ngôn ngữ nào:
-- 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;Hãy thử nó
Đối với mỗi khách hàng, hãy hiển thị email bằng chữ thường (email cột) và tên đầy đủ là 'first_name Last_name' (cột full_name). Đặt hàng theo id.
Hiển thị gợi ý
LOWER cho cột đầu tiên, || để nối với một khoảng trống ở giữa.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm tất cả các sản phẩm có chứa từ 'laptop' (trong mọi trường hợp) trong tên. Chỉ hiển thị cột tên. Đặt hàng theo tên.
Hiển thị gợi ý
ILIKE không phân biệt chữ hoa chữ thường. Sử dụng '%laptop%' để khớp với 'laptop' ở bất kỳ vị trí nào.
Giải pháp khả dụng sau 3 lần thử