0Pricing
SQL Academy · 课时

UPPER、LOWER、SUBSTRING、REPLACE

规范化大小写,按位置和长度截取子字符串,并替换文本中的模式。

UPPER、LOWER、SUBSTRING、REPLACE 是 CoddyKit 上的免费 SQL Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 SQL Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 SQL Academy 课程共包含 4 节课。

大小写转换

两个基本函数:

SELECT UPPER('hello');     -- HELLO
SELECT LOWER('Hello');     -- hello
SELECT INITCAP('hello world');  -- 'Hello World' (PostgreSQL extension)

为什么要统一大小写

电子邮件的比较应该不区分大小写,但存储时应保留原始大小写。请在比较时进行统一:

SELECT * FROM users WHERE LOWER(email) = LOWER('USER@Example.COM');

-- Or use a functional index:
CREATE INDEX users_email_lower_idx ON users (LOWER(email));

Citext:不区分大小写的文本类型

对于应该始终以不区分大小写的方式进行比较的列,请使用 citext 扩展:

CREATE EXTENSION IF NOT EXISTS citext;
CREATE TABLE users (email CITEXT UNIQUE);

SUBSTRING

根据起始位置和长度提取子字符串:

SELECT SUBSTRING('PostgreSQL', 1, 4);    -- 'Post'
SELECT SUBSTRING('PostgreSQL' FROM 5);    -- 'greSQL'

-- 1-based indexing, not 0-based

使用正则表达式的 SUBSTRING

PostgreSQL 也接受正则表达式模式:

SELECT SUBSTRING('user@example.com' FROM '@(.+)$');
-- 'example.com'

LEFT 和 RIGHT

“前 N 个”和“后 N 个”的快捷方式:

SELECT LEFT('PostgreSQL', 4);     -- 'Post'
SELECT RIGHT('PostgreSQL', 3);    -- 'SQL'

REPLACE

替换子字符串的每一次出现:

SELECT REPLACE('hello world', 'world', 'SQL');   -- 'hello SQL'
SELECT REPLACE(phone, '-', '');                  -- strip dashes

REGEXP_REPLACE

按模式替换:

SELECT REGEXP_REPLACE('Order #1234', '[^0-9]', '', 'g');  -- '1234'
SELECT REGEXP_REPLACE(text, '\s+', ' ', 'g');             -- collapse whitespace

LENGTH 和 CHAR_LENGTH

按字符而不是字节计算长度(支持 Unicode):

SELECT LENGTH('héllo');           -- 5
SELECT CHAR_LENGTH('héllo');      -- 5
SELECT OCTET_LENGTH('héllo');     -- 6  (UTF-8 byte length)

POSITION 和 STRPOS

查找子字符串的位置:

SELECT POSITION('SQL' IN 'PostgreSQL');    -- 8
SELECT STRPOS('PostgreSQL', 'SQL');        -- 8

REVERSE

反转字符串:

SELECT REVERSE('hello');     -- 'olleh'

回顾

大小写转换、子字符串处理和替换涵盖了大多数文本处理需求。

  • 使用 LOWER/UPPER 统一大小写
  • 使用 SUBSTRING 截取字符串
  • 固定替换使用 REPLACE,模式替换使用 REGEXP_REPLACE

快速检查

SUBSTRING('database', 5, 4) 会返回什么?

常见问题解答

「UPPER、LOWER、SUBSTRING、REPLACE」课时是免费的吗?

是的 — 「UPPER、LOWER、SUBSTRING、REPLACE」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 SQL Academy 课程的其余内容,请升级到 CoddyKit PRO。 SQL Academy 课程共包含 4 节课。

「UPPER、LOWER、SUBSTRING、REPLACE」这节课中我会学到什么?

规范化大小写,按位置和长度截取子字符串,并替换文本中的模式。 你通过在浏览器中直接运行的动手代码来练习 SQL Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 SQL Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 SQL Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「UPPER、LOWER、SUBSTRING、REPLACE」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 SQL Academy 课中编写并运行代码吗?

能。每节 SQL Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 字符串连接:|| 与 CONCAT
  2. UPPER、LOWER、SUBSTRING、REPLACE
  3. TRIM、LPAD、RPAD
  4. 全文搜索简介(tsvector、to_tsquery)
← 返回 SQL Academy