-- 去重查询 SELECTDISTINCT column_name FROM table_name;
-- 别名 SELECT column_name AS alias_name FROM table_name; SELECT t1.column1, t2.column2 FROM table1 t1, table2 t2; WHERE 条件查询 SELECT*FROM table_name WHEREcondition;
-- 比较运算符 SELECT*FROM users WHERE age >18; SELECT*FROM products WHERE price BETWEEN10AND100; SELECT*FROM users WHERE name IN ('Alice', 'Bob', 'Charlie'); SELECT*FROM users WHERE email LIKE'%@gmail.com'; SELECT*FROM users WHERE phone ISNULL; SELECT*FROM users WHERE phone ISNOT NULL;
-- 计数 SELECTCOUNT(*) FROM table_name; -- 所有行数 SELECTCOUNT(column_name) FROM table_name; -- 非空值数量 SELECTCOUNT(DISTINCT column_name) FROM table_name; -- 去重计数
-- 求和 SELECTSUM(column_name) FROM table_name; SELECTSUM(DISTINCT column_name) FROM table_name;
-- 平均值 SELECTAVG(column_name) FROM table_name; SELECTAVG(DISTINCT column_name) FROM table_name; -- 四舍五入,保留3位小数 ROUND(..., 3)
-- 最大值/最小值 SELECTMAX(column_name) FROM table_name; SELECTMIN(column_name) FROM table_name;
-- 分组统计 SELECT department, COUNT(*) as total_employees, AVG(salary) as avg_salary, MAX(salary) as max_salary, MIN(salary) as min_salary, SUM(salary) as total_salary FROM employees GROUPBY department;
-- 在WHERE中使用子查询 SELECT*FROM employees WHERE salary > (SELECTAVG(salary) FROM employees);
-- 在FROM中使用子查询 SELECT dept_name, avg_salary FROM ( SELECT department as dept_name, AVG(salary) as avg_salary FROM employees GROUPBY department ) AS dept_stats WHERE avg_salary >5000;
-- 在SELECT中使用子查询 SELECT name, salary, (SELECTAVG(salary) FROM employees) as company_avg_salary FROM employees;
-- EXISTS子查询 SELECT*FROM users u WHEREEXISTS ( SELECT1FROM orders o WHERE o.user_id = u.id AND o.amount >1000 );
联合查询
1 2 3 4 5 6 7 8 9
-- UNION(去重) SELECT column1 FROM table1 UNION SELECT column1 FROM table2;
-- UNION ALL(不去重) SELECT column1 FROM table1 UNIONALL SELECT column1 FROM table2;
数据库操作
创建数据库
1 2 3
CREATE DATABASE database_name; CREATE DATABASE IF NOTEXISTS database_name; CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看数据库
1 2
SHOW DATABASES; SHOWCREATE DATABASE database_name;
选择数据库
1
USE database_name;
删除数据库
1 2
DROP DATABASE database_name; DROP DATABASE IF EXISTS database_name;
数据表操作
创建表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
CREATE TABLE table_name ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT, email VARCHAR(100) UNIQUE, created_at TIMESTAMPDEFAULTCURRENT_TIMESTAMP, updated_at TIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP );