首页
/ SQL快速入门指南:从基础到常用操作

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;

最佳实践建议

  1. 索引优化:为常用查询条件创建索引
  2. 批量操作:尽量减少单条记录操作,使用批量插入/更新
  3. 事务处理:关键操作使用事务保证数据一致性
  4. 避免SELECT*:只查询需要的字段
  5. 参数化查询:防止SQL注入攻击

掌握这些SQL基础知识后,您已经能够完成大多数数据库操作任务。随着经验积累,可以进一步学习JOIN、子查询、视图等高级特性来应对更复杂的数据处理需求。