权威发布:常用数据库SQL命令深度解析与实战指南

文章导读
SQL命令的核心是SELECT、INSERT、UPDATE、DELETE,通过这些命令可以高效查询、插入、修改和删除数据库数据,掌握它们就能处理90%的日常数据库操作。
📋 目录
  1. A SELECT语句实战
  2. B INSERT INTO插入数据
  3. C UPDATE更新记录
  4. D DELETE删除数据
  5. E 聚合函数与GROUP BY
  6. F FAQ
A A

SQL命令的核心是SELECT、INSERT、UPDATE、DELETE,通过这些命令可以高效查询、插入、修改和删除数据库数据,掌握它们就能处理90%的日常数据库操作。

SELECT语句实战

SELECT语句用于从数据库中检索数据。最基本的语法是:SELECT column1, column2 FROM table_name; 例如,SELECT * FROM users; 会返回users表的所有列和所有行。

添加WHERE子句来过滤数据:SELECT name, age FROM users WHERE age > 18; 这只会返回年龄大于18的用户信息。

使用ORDER BY排序:SELECT * FROM products ORDER BY price DESC; 按价格降序排列产品列表。

INSERT INTO插入数据

INSERT INTO语句用于向表中添加新记录。语法:INSERT INTO table_name (column1, column2) VALUES (value1, value2); 如INSERT INTO employees (name, department) VALUES ('张三', '销售');

插入多行数据:INSERT INTO customers (name, email) VALUES ('李四', 'lisi@example.com'), ('王五', 'wangwu@example.com');

从另一个表插入:INSERT INTO new_table SELECT * FROM old_table WHERE condition; 这很实用用于数据迁移。

UPDATE更新记录

UPDATE语句修改现有数据:UPDATE table_name SET column1 = value1 WHERE condition; 例如,UPDATE products SET price = 99.99 WHERE id = 1;

更新多个列:UPDATE users SET age = age + 1, last_login = NOW() WHERE active = 1; 批量更新活跃用户的年龄和登录时间。

始终使用WHERE避免更新整个表:UPDATE employees SET salary = salary * 1.1; 没有WHERE会涨所有人的工资!

DELETE删除数据

DELETE语句移除记录:DELETE FROM table_name WHERE condition; 如DELETE FROM orders WHERE status = 'cancelled';

删除所有行:DELETE FROM temp_table; 等同于TRUNCATE但TRUNCATE更快且重置自增ID。

权威发布:常用数据库SQL命令深度解析与实战指南

小心使用DELETE,它不可逆,除非有事务回滚:BEGIN; DELETE ...; ROLLBACK; 测试时先ROLLBACK。

聚合函数与GROUP BY

COUNT、SUM、AVG等聚合函数统计数据:SELECT COUNT(*) FROM users; 计算用户总数。

结合GROUP BY分组:SELECT department, AVG(salary) FROM employees GROUP BY department; 每个部门平均薪资。

HAVING过滤分组:SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5; 只显示成员超5人的部门。

FAQ

Q: SQL注入怎么防范?

A: 使用参数化查询或预处理语句,如在Python中用?占位符,避免直接拼接用户输入到SQL。

Q: 事务怎么用?

A: BEGIN; 几条SQL; COMMIT; 成功全提交,ROLLBACK回滚失败部分,确保数据一致。

Q: 索引有什么用?

A: CREATE INDEX idx_name ON table(column); 加速WHERE和JOIN查询,但INSERT/UPDATE会慢点。

Q: 自增主键怎么设置?

A: MySQL: ALTER TABLE table AUTO_INCREMENT=1; 不需手动指定ID,数据库自动递增。