【sql语句大全】SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。无论是数据查询、更新、删除还是表结构的定义,SQL 都是不可或缺的工具。以下是对常见 SQL 语句的总结,以表格形式呈现,便于查阅和理解。
一、基础 SQL 语句分类
类别 | 说明 | 示例 |
数据查询 | 从数据库中检索数据 | `SELECT FROM table_name;` |
数据操作 | 插入、更新、删除数据 | `INSERT INTO table_name (col1, col2) VALUES ('val1', 'val2');` `UPDATE table_name SET col1 = 'new_val' WHERE condition;` `DELETE FROM table_name WHERE condition;` |
数据定义 | 定义或修改数据库结构 | `CREATE TABLE table_name (col1 datatype, ...);` `ALTER TABLE table_name ADD column datatype;` `DROP TABLE table_name;` |
数据控制 | 控制对数据库的访问权限 | `GRANT SELECT ON table_name TO user;` `REVOKE DELETE ON table_name FROM user;` |
事务控制 | 管理事务的提交与回滚 | `BEGIN TRANSACTION;` `COMMIT;` `ROLLBACK;` |
二、常用 SQL 语句汇总
语句类型 | 语句示例 | 说明 |
SELECT | `SELECT FROM employees;` | 查询所有列的数据 |
WHERE | `SELECT FROM employees WHERE salary > 5000;` | 根据条件筛选数据 |
ORDER BY | `SELECT FROM employees ORDER BY salary DESC;` | 按指定列排序 |
LIMIT / TOP | `SELECT FROM employees LIMIT 10;` `SELECT TOP 5 FROM employees;` | 限制返回的记录数 |
DISTINCT | `SELECT DISTINCT department FROM employees;` | 返回唯一值 |
JOIN | `SELECT e.name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.id;` | 连接多个表 |
GROUP BY | `SELECT department, COUNT() FROM employees GROUP BY department;` | 按列分组统计 |
HAVING | `SELECT department, COUNT() FROM employees GROUP BY department HAVING COUNT() > 5;` | 对分组后的结果进行过滤 |
INSERT | `INSERT INTO employees (name, salary, department_id) VALUES ('John', 6000, 1);` | 插入新记录 |
UPDATE | `UPDATE employees SET salary = 7000 WHERE id = 101;` | 更新现有记录 |
DELETE | `DELETE FROM employees WHERE id = 101;` | 删除记录 |
CREATE TABLE | `CREATE TABLE employees (id INT PRIMARY KEY, name VARCHAR(50), salary DECIMAL, department_id INT);` | 创建新表 |
ALTER TABLE | `ALTER TABLE employees ADD email VARCHAR(100);` | 修改表结构 |
DROP TABLE | `DROP TABLE employees;` | 删除表 |
CREATE INDEX | `CREATE INDEX idx_name ON employees (name);` | 创建索引提高查询速度 |
TRUNCATE | `TRUNCATE TABLE employees;` | 清空表内容(比 DELETE 快) |
COMMIT / ROLLBACK | `COMMIT;` `ROLLBACK;` | 提交或回滚事务 |
三、高级 SQL 功能
功能 | 说明 | 示例 |
子查询 | 在一个查询中嵌套另一个查询 | `SELECT FROM employees WHERE department_id = (SELECT id FROM departments WHERE name = 'HR');` |
UNION | 合并两个或多个查询的结果集 | `SELECT name FROM employees UNION SELECT name FROM managers;` |
CASE WHEN | 实现条件判断 | `SELECT name, CASE WHEN salary > 6000 THEN 'High' ELSE 'Low' END AS salary_level FROM employees;` |
聚合函数 | 如 SUM, AVG, MAX, MIN, COUNT | `SELECT AVG(salary) FROM employees;` |
正则表达式 | 用于字符串匹配(如 MySQL 的 REGEXP) | `SELECT FROM users WHERE name REGEXP '^A';` |
四、小结
SQL 是数据库操作的核心语言,掌握其基本语法和常用语句对于开发人员、数据分析师和数据库管理员来说至关重要。通过合理使用 SELECT、INSERT、UPDATE、DELETE 等语句,可以高效地管理数据库中的数据;而通过 JOIN、GROUP BY、HAVING 等高级功能,则能实现更复杂的查询和分析需求。
在实际应用中,建议结合具体业务场景灵活使用 SQL,并注意优化查询性能,例如合理使用索引、避免全表扫描等。希望本文对您理解和使用 SQL 有所帮助。