Select all
$SELECT * FROM users;SQL reference.
$SELECT * FROM users;$SELECT id, name, email FROM users;$SELECT * FROM users WHERE age > 25;$SELECT * FROM users WHERE name LIKE 'J%';$SELECT * FROM users WHERE status IN ('active', 'pending');$SELECT * FROM products WHERE price BETWEEN 10 AND 100;$SELECT DISTINCT country FROM users;$SELECT * FROM users ORDER BY name ASC;$SELECT * FROM users LIMIT 10 OFFSET 20;$SELECT name,
CASE
WHEN age < 18 THEN 'Minor'
WHEN age BETWEEN 18 AND 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM users;$SELECT COALESCE(middle_name, 'N/A') FROM users;$SELECT u.name, o.order_date
FROM users u
INNER JOIN orders o ON u.id = o.user_id;$SELECT u.name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;$SELECT u.name, o.order_date
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;$SELECT u.name, o.order_date
FROM users u
FULL OUTER JOIN orders o ON u.id = o.user_id;$SELECT a.name, b.name AS colleague
FROM users a
JOIN users b ON a.department = b.department
WHERE a.id != b.id;$SELECT * FROM users JOIN orders USING (user_id);$SELECT COUNT(*) FROM users;$SELECT COUNT(DISTINCT country) FROM users;$SELECT SUM(price), AVG(price) FROM products;$SELECT MIN(price), MAX(price) FROM products;$SELECT country, COUNT(*) AS user_count
FROM users
GROUP BY country;$SELECT country, COUNT(*) AS user_count
FROM users
GROUP BY country
HAVING COUNT(*) > 10;$INSERT INTO users (name, email, age)
VALUES ('John', 'john@example.com', 30);$INSERT INTO archived_users
SELECT * FROM users WHERE status = 'inactive';$UPDATE users SET age = age + 1 WHERE status = 'active';$DELETE FROM users WHERE status = 'inactive';$TRUNCATE TABLE users;$INSERT INTO users (email, name)
VALUES ('x@y.com', 'John')
ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;$CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);$ALTER TABLE users ADD COLUMN phone VARCHAR(20);$ALTER TABLE users DROP COLUMN phone;$CREATE INDEX idx_users_name ON users(name);$CREATE VIEW active_users AS
SELECT * FROM users WHERE status = 'active';$DROP TABLE users;$BEGIN;$COMMIT;$ROLLBACK;$SAVEPOINT sp1;
-- ...
ROLLBACK TO sp1;$SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;$SELECT name, salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) AS rank
FROM employees;$SELECT name, department, salary,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank
FROM employees;$SELECT name, month, sales,
LAG(sales, 1) OVER (PARTITION BY name ORDER BY month) AS prev_month,
LEAD(sales, 1) OVER (PARTITION BY name ORDER BY month) AS next_month
FROM monthly_sales;$SELECT month, sales,
SUM(sales) OVER (ORDER BY month) AS running_total
FROM monthly_sales;$SELECT name, salary,
NTILE(4) OVER (ORDER BY salary DESC) AS quartile
FROM employees;