什么是 SQL?
SQL(Structured Query Language)是管理和操作关系型数据库的标准语言,通过 SQL,您可以高效地查询、更新和管理数据,适用于 MySQL、PostgreSQL、Oracle 等主流数据库系统,掌握 SQL 是数据分析师、开发者和运维人员的核心技能。
基础 SQL 语法详解(附示例)
数据查询(SELECT)
用途:从表中提取数据。
示例:
SELECT name, email FROM users WHERE age > 25 ORDER BY name DESC;
SELECT
指定列(name, email
)FROM
指定表(users
)WHERE
过滤条件(age > 25
)ORDER BY
排序(DESC
降序)
插入数据(INSERT)
用途:向表中添加新记录。
示例:
INSERT INTO products (id, name, price) VALUES (101, 'Laptop', 6500);
- 明确指定列名和值,避免结构变动导致的错误。
更新数据(UPDATE)
用途:修改现有记录。
示例:
UPDATE employees SET salary = salary * 1.1 WHERE department = 'Engineering';
SET
更新字段值- 务必用
WHERE
限定范围,否则会更新全表!
删除数据(DELETE)
用途:删除指定记录。
示例:
DELETE FROM orders WHERE status = 'cancelled' AND create_date < '2025-01-01';
- 先备份再操作,误删可能导致数据永久丢失。
创建表(CREATE TABLE)
用途:定义新表结构。
示例:
CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, enrollment_date DATE DEFAULT CURRENT_DATE );
PRIMARY KEY
定义主键NOT NULL
强制非空约束DEFAULT
设置默认值
进阶操作
多表关联查询(JOIN)
SELECT orders.id, customers.name, orders.amount FROM orders JOIN customers ON orders.customer_id = customers.id;
INNER JOIN
仅返回匹配的记录(其他 JOIN 类型:LEFT JOIN
,RIGHT JOIN
)
聚合函数与分组(GROUP BY)
SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 10000;
AVG()
计算平均值HAVING
对分组结果过滤(WHERE
不能用于聚合函数)
子查询(Subquery)
SELECT name FROM products WHERE price > (SELECT AVG(price) FROM products);
- 嵌套查询可用于复杂条件过滤。
安全最佳实践
-
防 SQL 注入
- 错误方式:
"SELECT * FROM users WHERE id = " + userInput;
- 正确方式:使用参数化查询(Prepared Statements)
# Python 示例 cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
- 错误方式:
-
权限控制
- 遵循最小权限原则:应用账户仅授予必要的 CRUD 权限,禁用
DROP
或ALTER
。
- 遵循最小权限原则:应用账户仅授予必要的 CRUD 权限,禁用
-
定期备份
-- MySQL 示例 mysqldump -u root -p database_name > backup.sql
学习路径建议
- 基础入门
练习 SQLZoo(免费交互教程)或 W3Schools SQL 教程。
- 实战进阶
在 Kaggle 数据集上完成分析任务(如分析销售数据)。
- 官方文档
- 查阅 MySQL 官方文档 或 PostgreSQL 教程。
关键提示:所有示例基于标准 SQL 语法,实际使用时需根据数据库系统(如 MySQL、SQL Server)调整细节,操作生产环境数据前,务必在测试环境验证。
引用说明
- SQL 标准参考:ISO/IEC 9075 国际标准
- 安全实践依据:OWASP SQL 注入防护指南
- 官方文档来源:MySQL 8.0 Reference Manual, PostgreSQL 15 Documentation
通过系统练习和严谨的安全意识,您将快速掌握 SQL 的核心能力,建议从本地安装 MySQL 或使用在线沙盒(如 SQL Fiddle)开始实操。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/44244.html