モジュール 6 · レッスン 1 / 4コース内の 21/57~12 min
モジュールのレッスン (1/4)
文字列関数
PostgreSQL には、文字列を操作するための関数が多数あります。このレッスンでは
実際の作業で最も一般的なものを見ていきます。正規化 (LOWER/UPPER)、
測定 (LENGTH)、構成 (|| / CONCAT)、抽出 (SUBSTRING)、
クリーンアップ (TRIM)、置換 (REPLACE)、パターン検索
(LIKE / ILIKE)。
使用する関数
SQL
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 は
より寛容です (NULL は無視されますが、|| はそれらを伝播します。
'a' || NULL → NULL)。
LIKE と ILIKE: パターンによる検索
LIKE はパターンを検索します: % = 任意のシーケンス、_ = 単一
キャラクター。 大文字と小文字が区別されます。 ILIKE は PostgreSQL です
大文字と小文字を区別しない バリアント:
SQL
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 を使用します。
SQL
WHERE titolo LIKE '%50\%%' ESCAPE '\'; -- contiene "50%"機能を組み合わせる
関数は他の言語と同様に構成されます。
SQL
-- 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;試してみてください
運動#sql.m6.l1.e1
試行回数: 0読み込み中…
各顧客について、電子メールを小文字で表示し (電子メール列)、フルネームを「first_name last_name」(full_name 列) として表示します。 IDで注文します。
エディターを読み込み中…
ヒントを表示
最初の列には LOWER、 ||間にスペースを入れて連結します。
3 回の試行後に解決策が利用可能になります
復習演習
運動#sql.m6.l1.e2
試行回数: 0読み込み中…
(いずれの場合も) 名前に「ラップトップ」という単語が含まれるすべての製品を検索します。名前列のみを表示します。名前で注文します。
エディターを読み込み中…
ヒントを表示
ILIKE では大文字と小文字が区別されません。任意の位置の「laptop」と一致するには、「%laptop%」を使用します。
3 回の試行後に解決策が利用可能になります