Lab 04: Filtering and Sorting
Overview
Step 1: Setup — Sample Dataset
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 exec mysql-lab mysql -uroot -prootpass << 'EOF'
CREATE DATABASE store;
USE store;
CREATE TABLE employees (
emp_id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
department VARCHAR(50) NOT NULL,
salary DECIMAL(10,2) NOT NULL,
hire_date DATE NOT NULL,
is_active BOOLEAN DEFAULT TRUE,
email VARCHAR(100),
PRIMARY KEY (emp_id)
);
INSERT INTO employees (first_name, last_name, department, salary, hire_date, email) VALUES
('Alice', 'Johnson', 'Engineering', 95000, '2020-03-15', '[email protected]'),
('Bob', 'Smith', 'Marketing', 72000, '2019-07-22', '[email protected]'),
('Carol', 'Davis', 'Engineering', 110000,'2018-01-10', '[email protected]'),
('David', 'Wilson', 'HR', 65000, '2021-09-01', '[email protected]'),
('Eve', 'Martinez', 'Engineering', 98000, '2020-11-30', '[email protected]'),
('Frank', 'Anderson', 'Marketing', 68000, '2022-02-14', NULL),
('Grace', 'Taylor', 'HR', 70000, '2019-05-20', '[email protected]'),
('Henry', 'Thomas', 'Engineering', 125000,'2017-08-05', '[email protected]'),
('Isabel', 'Jackson', 'Finance', 88000, '2021-12-01', '[email protected]'),
('Jack', 'White', 'Finance', 92000, '2020-06-18', '[email protected]'),
('Karen', 'Harris', 'Marketing', 75000, '2018-10-25', '[email protected]'),
('Liam', 'Clark', 'Engineering', 105000,'2019-03-08', '[email protected]');
EOFStep 2: Comparison Operators
Step 3: BETWEEN, IN, NOT IN
Step 4: LIKE and ILIKE Pattern Matching
Step 5: AND, OR, NOT
Step 6: ORDER BY
Step 7: LIMIT and OFFSET
Step 8: Capstone — Pagination Pattern
Summary
Feature
MySQL
PostgreSQL
Notes
Last updated
