5 min read
•Question 20 of 29easyWhat are common SQL string functions?
Manipulating text in SQL.
What You'll Learn
- String manipulation functions
- Pattern matching
- Common use cases
Basic Functions
query.sqlSQL
-- Length
SELECT LENGTH('Hello'); -- 5
SELECT CHAR_LENGTH('Hello'); -- 5
-- Case conversion
SELECT UPPER('hello'); -- HELLO
SELECT LOWER('HELLO'); -- hello
-- Trim whitespace
SELECT TRIM(' hello '); -- 'hello'
SELECT LTRIM(' hello'); -- 'hello'
SELECT RTRIM('hello '); -- 'hello'
-- Concatenation
SELECT CONCAT('Hello', ' ', 'World'); -- 'Hello World'
SELECT 'Hello' || ' ' || 'World'; -- Standard SQLSubstring
query.sqlSQL
-- Extract substring
SELECT SUBSTRING('Hello World', 1, 5); -- 'Hello'
SELECT SUBSTR('Hello World', 7); -- 'World'
-- Position of substring
SELECT POSITION('World' IN 'Hello World'); -- 7
SELECT INSTR('Hello World', 'World'); -- 7 (MySQL)Replace and Modify
query.sqlSQL
-- Replace
SELECT REPLACE('Hello World', 'World', 'SQL'); -- 'Hello SQL'
-- Reverse
SELECT REVERSE('Hello'); -- 'olleH'
-- Repeat
SELECT REPEAT('ab', 3); -- 'ababab'
-- Pad
SELECT LPAD('42', 5, '0'); -- '00042'
SELECT RPAD('Hi', 5, '!'); -- 'Hi!!!'Pattern Matching
query.sqlSQL
-- LIKE
SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM products WHERE name LIKE 'iPhone%';
SELECT * FROM codes WHERE code LIKE '___-___'; -- 3 chars, dash, 3 chars
-- REGEXP (MySQL)
SELECT * FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';Practical Examples
query.sqlSQL
-- Format name
SELECT CONCAT(UPPER(LEFT(first_name, 1)), LOWER(SUBSTRING(first_name, 2))) AS formatted_name
FROM users;
-- Extract domain from email
SELECT SUBSTRING(email, POSITION('@' IN email) + 1) AS domain
FROM users;