SQL快速入门指南:从基础到常用操作
2025-07-09 07:05:55作者:仰钰奇
SQL(结构化查询语言)是关系型数据库管理的标准语言,掌握SQL是每个后端开发者的必备技能。本文将基于backend-cheats项目中的SQL速查表,为您系统性地介绍SQL的基础知识和常用操作。
数据库基础操作
创建数据库和表
创建数据库是SQL操作的起点:
CREATE DATABASE db_name;
创建表时需要定义字段及其数据类型:
CREATE TABLE users (
id SERIAL PRIMARY KEY, -- 自增主键
firstName VARCHAR(100), -- 可变长度字符串
lastName VARCHAR(100),
age INT, -- 整数
gender VARCHAR(10),
isMarried BOOLEAN -- 布尔值
);
常见数据类型
SQL支持多种数据类型,合理选择类型对数据库性能至关重要:
-
数值类型:
- INT:整数(-2³²到+2³²)
- FLOAT/DOUBLE/DECIMAL:浮点数,适合存储小数
-
字符串类型:
- CHAR:固定长度字符串
- VARCHAR:可变长度字符串
- TEXT:长文本
-
日期时间:
- DATE:仅日期
- DATETIME:日期和时间
- TIME:仅时间
-
其他:
- BOOLEAN:布尔值(true/false)
- ENUM:枚举类型,限定取值范围
数据操作基础
插入数据
使用INSERT语句添加记录:
INSERT INTO users(
firstName, lastName, age, gender, isMarried
) VALUES (
'Alex', 'Manson', 25, 'male', false
);
查询数据
SELECT是最常用的查询语句:
-- 查询所有字段
SELECT * FROM users;
-- 查询特定字段
SELECT firstName, age FROM users;
-- 限制返回记录数
SELECT * FROM users LIMIT 20;
-- 去重查询
SELECT DISTINCT(firstName) FROM users;
条件查询
WHERE子句用于过滤记录:
-- 简单条件
SELECT * FROM users WHERE gender = 'male';
-- 组合条件
SELECT * FROM users WHERE age = 25 AND isMarried = false;
SELECT * FROM users WHERE age = 20 OR age = 50;
-- 范围查询
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
-- NULL值处理
SELECT * FROM users WHERE lastName IS NOT NULL;
高级查询技巧
模糊查询
LIKE操作符支持模式匹配:
-- %匹配任意多个字符
SELECT * FROM users WHERE firstName LIKE 'A%';
-- _匹配单个字符
SELECT * FROM users WHERE firstName LIKE '_o%';
-- []匹配字符集合
SELECT * FROM users WHERE firstName LIKE '[ABC]%';
-- NOT反向匹配
SELECT * FROM users WHERE firstName NOT LIKE '_o%';
-- IN匹配多个值
SELECT * FROM users WHERE firstName IN ('John', 'Mike', 'Kane');
排序与分组
ORDER BY用于结果排序:
-- 升序(默认)
SELECT * FROM users ORDER BY firstName;
-- 降序
SELECT * FROM users ORDER BY age DESC;
-- 多列排序
SELECT * FROM users ORDER BY lastName DESC, isMarried ASC;
表结构与数据修改
修改表结构
ALTER TABLE可以调整表定义:
-- 添加列
ALTER TABLE users ADD COLUMN city VARCHAR(50);
-- 删除列
ALTER TABLE users DROP COLUMN isMarried;
-- 重命名列
ALTER TABLE users RENAME COLUMN firstName TO fName;
-- 重命名表
ALTER TABLE users RENAME TO consumers;
更新数据
UPDATE语句修改现有记录:
-- 更新特定记录
UPDATE users SET firstName = 'Kale', age = 33 WHERE id = 1;
-- 批量更新
UPDATE users SET city = 'Paris' WHERE gender = 'female';
删除数据
DELETE语句移除记录:
-- 删除特定记录
DELETE FROM users WHERE id = 2;
-- 批量删除
DELETE FROM users WHERE gender = 'male';
聚合函数
聚合函数对数据进行统计计算:
-- 计数
SELECT COUNT(*) FROM users;
SELECT COUNT(DISTINCT(firstName)) FROM users;
-- 极值
SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;
-- 求和
SELECT SUM(age) FROM users;
-- 平均值
SELECT AVG(age) FROM users;
最佳实践建议
- 索引优化:为常用查询条件创建索引
- 批量操作:尽量减少单条记录操作,使用批量插入/更新
- 事务处理:关键操作使用事务保证数据一致性
- 避免SELECT*:只查询需要的字段
- 参数化查询:防止SQL注入攻击
掌握这些SQL基础知识后,您已经能够完成大多数数据库操作任务。随着经验积累,可以进一步学习JOIN、子查询、视图等高级特性来应对更复杂的数据处理需求。