The dozen you'll actually call
SQLite ships a small but practical set of string functions. The keepers:
length(s)— character count for TEXT, byte count for BLOB.upper(s),lower(s)— ASCII case only by default.trim(s),ltrim(s),rtrim(s)— strip whitespace (or specified chars).substr(s, start, len)— 1-indexed slicing.replace(s, old, new)— substring replace.instr(s, sub)— 1-indexed position ofsubins, or 0 if not found.printf('%s says %s', a, b)— C-style formatting.||— concatenation operator.group_concat(col, sep)— aggregate concatenate.hex(blob),quote(s)— for inspecting binary or quoting safely.
Warning:
upper / lower only work on ASCII A–Z by default. upper('한글') returns '한글' unchanged. For Unicode-correct case folding you need to load the ICU extension (rarely worth it for application code; do casing in Python instead).