好的,以下是常用的 SQL 语句分类及其语法:
1. 数据查询 (SELECT)
- 基本查询:
SELECT 列名1, 列名2, ... FROM 表名;- 查询所有列:
SELECT * FROM 表名; - 查询表数据:SELECT COUNT(*) FROM 表名
- 查询所有列:
- 带条件查询 (WHERE):
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;- 条件运算符:
=,!=或<>,>,<,>=,<= - 逻辑运算符:
AND,OR,NOT - 范围查询:
BETWEEN 值1 AND 值2 - 列表匹配:
IN (值1, 值2, ...) - 模糊匹配:
LIKE '模式'(通配符%代表任意多个字符,_代表一个字符) - 空值判断:
IS NULL,IS NOT NULL
- 条件运算符:
- 结果排序 (ORDER BY):
SELECT 列名1, 列名2, ... FROM 表名 ORDER BY 排序列1 [ASC|DESC], 排序列2 [ASC|DESC], ...;ASC升序 (默认),DESC降序。
- 结果去重 (DISTINCT):
SELECT DISTINCT 列名 FROM 表名; - 结果限制 (LIMIT):
SELECT 列名1, 列名2, ... FROM 表名 LIMIT 数量; -- 取前 N 条 SELECT 列名1, 列名2, ... FROM 表名 LIMIT 偏移量, 数量; -- 分页常用 - 聚合函数 (GROUP BY, HAVING):
SELECT 聚合函数(列名), 分组列 FROM 表名 GROUP BY 分组列 HAVING 分组后条件;- 常用聚合函数:
COUNT(),SUM(),AVG(),MAX(),MIN() GROUP BY按指定列分组。HAVING对分组后的结果进行过滤 (类似WHERE,但作用于分组)。
- 常用聚合函数:
- 表连接 (JOIN):
- 内连接 (
INNER JOIN或JOIN):SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.关联列 = 表2.关联列; - 左外连接 (
LEFT JOIN或LEFT OUTER JOIN):SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.关联列 = 表2.关联列; - 右外连接 (
RIGHT JOIN或RIGHT OUTER JOIN):SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.关联列 = 表2.关联列; - 全外连接 (
FULL JOIN或FULL OUTER JOIN):SELECT 列名 FROM 表1 FULL JOIN 表2 ON 表1.关联列 = 表2.关联列; - 交叉连接 (
CROSS JOIN):SELECT 列名 FROM 表1 CROSS JOIN 表2;
- 内连接 (
2. 数据操作 (INSERT, UPDATE, DELETE)
- 插入数据 (INSERT):
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...); -- 插入单条 INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), ...; -- 插入多条 INSERT INTO 表名 SELECT 列名1, 列名2, ... FROM 另一表名 [WHERE 条件]; -- 从查询结果插入 - 更新数据 (UPDATE):
UPDATE 表名 SET 列名1 = 新值1, 列名2 = 新值2, ... WHERE 条件; -- 一定要加WHERE条件避免全表更新! - 删除数据 (DELETE):
DELETE FROM 表名 WHERE 条件; -- 一定要加WHERE条件避免清空表! - 清空表数据 (TRUNCATE):
TRUNCATE TABLE 表名; -- 删除所有数据,重置自增ID等,速度快但不可回滚
3. 数据定义 (CREATE, ALTER, DROP)
- 创建数据库:
CREATE DATABASE 数据库名; - 删除数据库:
DROP DATABASE 数据库名; - 创建表:
CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], ... [表级约束] );- 常用数据类型:
INT,VARCHAR(长度),TEXT,DATE,DATETIME,DECIMAL(总位数, 小数位数),BOOLEAN等。 - 常用约束:
PRIMARY KEY(主键)NOT NULL(非空)UNIQUE(唯一)FOREIGN KEY (外键列) REFERENCES 主表名(主键列)(外键)CHECK (条件)(检查约束)DEFAULT 默认值(默认值)
- 常用数据类型:
- 修改表结构 (ALTER):
ALTER TABLE 表名 ADD 列名 数据类型 [约束]; -- 添加列 ALTER TABLE 表名 DROP COLUMN 列名; -- 删除列 ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型 [新约束]; -- 修改列定义 ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名; -- 重命名列 (部分数据库) ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束定义; -- 添加约束 (如外键) ALTER TABLE 表名 DROP CONSTRAINT 约束名; -- 删除约束 - 删除表:
DROP TABLE 表名;
4. 数据控制 (GRANT, REVOKE)
- 授予权限:
GRANT 权限列表 ON 数据库对象 TO 用户或角色 [WITH GRANT OPTION];- 权限列表:
SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES等。 - 数据库对象:
表名,视图名,数据库名.*等。
- 权限列表:
- 撤销权限:
REVOKE 权限列表 ON 数据库对象 FROM 用户或角色;
5. 其他常用
- 创建视图 (VIEW):
CREATE VIEW 视图名 AS SELECT 语句; - 创建索引 (INDEX):
CREATE INDEX 索引名 ON 表名 (列名); -- 单列索引 CREATE INDEX 索引名 ON 表名 (列名1, 列名2); -- 组合索引- 索引可加速查询,但会增加插入、更新、删除的开销,需权衡使用。
这些是 SQL 中最常用的一些语句。具体语法细节可能因数据库管理系统(如 MySQL, PostgreSQL, SQL Server, Oracle)的不同而略有差异。