Lab 15: String Functions
Overview
Step 1: Setup
docker run -d --name mysql-lab -e MYSQL_ROOT_PASSWORD=rootpass mysql:8.0
for i in $(seq 1 30); do docker exec mysql-lab mysql -uroot -prootpass -e "SELECT 1" 2>/dev/null && break || sleep 2; done
docker run -d --name pg-lab -e POSTGRES_PASSWORD=rootpass postgres:15
sleep 10
docker exec mysql-lab mysql -uroot -prootpass << 'EOF'
CREATE DATABASE strlab;
USE strlab;
CREATE TABLE contacts (
id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
phone VARCHAR(30),
city VARCHAR(50),
country VARCHAR(50) DEFAULT 'US',
notes TEXT,
PRIMARY KEY (id)
);
INSERT INTO contacts (first_name, last_name, email, phone, city, notes) VALUES
(' Alice ', 'JOHNSON', '[email protected]', '(555) 123-4567', 'new york', 'Prefers email contact'),
('bob', 'Smith', '[email protected]', '555.234.5678', 'LOS ANGELES', NULL),
('Carol', 'Davis', '[email protected]', '555-345-6789', 'Chicago', 'VIP customer since 2020'),
('DAVID', 'WILSON', '[email protected]', '(555)456-7890', 'HOUSTON', 'Do not call before 9am'),
('Eve', 'MARTINEZ', '[email protected]', '5556789012', 'Phoenix', NULL);
EOFStep 2: CONCAT and String Concatenation
Step 3: UPPER, LOWER, and Case Normalization
Step 4: TRIM, LTRIM, RTRIM
Step 5: SUBSTRING and LENGTH
Step 6: REPLACE
Step 7: REGEXP / Pattern Matching
Step 8: Capstone — LPAD, RPAD, and Data Formatting
Summary
Function
MySQL
PostgreSQL
Notes
Last updated
