sql常用语句总结
封面图
•
2025-11-22
•
SQL Server
224
0
0
0
SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。以下是一些 **SQL 常用语句的总结**,适用于大多数关系型数据库(如 MySQL、PostgreSQL、Oracle、SQL Server 等),但部分语法可能因数据库类型略有不同。 --- ## 一、数据查询(SELECT) ### 1. 查询所有数据 ```sql SELECT * FROM 表名; ``` ### 2. 查询指定列 ```sql SELECT 列1, 列2 FROM 表名; ``` ### 3. 查询带条件的数据(WHERE) ```sql SELECT * FROM 表名 WHERE 条件; ``` ### 4. 查询排序(ORDER BY) ```sql SELECT * FROM 表名 ORDER BY 列名 ASC|DESC; ``` ### 5. 查询分页(LIMIT / OFFSET) ```sql SELECT * FROM 表名 LIMIT 10 OFFSET 20; -- MySQL SELECT * FROM 表名 OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY; -- SQL Server ``` ### 6. 去重(DISTINCT) ```sql SELECT DISTINCT 列名 FROM 表名; ``` ### 7. 聚合函数 - `COUNT()`:统计行数 - `SUM()`:求和 - `AVG()`:平均值 - `MAX()`:最大值 - `MIN()`:最小值 ```sql SELECT COUNT(*) FROM 表名; SELECT AVG(字段) FROM 表名; ``` --- ## 二、数据操作(INSERT、UPDATE、DELETE) ### 1. 插入数据(INSERT) ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` ### 2. 更新数据(UPDATE) ```sql UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件; ``` ### 3. 删除数据(DELETE) ```sql DELETE FROM 表名 WHERE 条件; ``` > 注意:`DELETE` 是删除记录,不会释放空间;使用 `TRUNCATE` 可以清空表内容并重置自增列。 ```sql TRUNCATE TABLE 表名; ``` --- ## 三、数据定义(DDL) ### 1. 创建表(CREATE TABLE) ```sql CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ... ); ``` ### 2. 修改表结构(ALTER TABLE) ```sql ALTER TABLE 表名 ADD 列名 数据类型; ALTER TABLE 表名 DROP COLUMN 列名; ALTER TABLE 表名 RENAME TO 新表名; ``` ### 3. 删除表(DROP TABLE) ```sql DROP TABLE 表名; ``` --- ## 四、数据控制(DCL) ### 1. 授权(GRANT) ```sql GRANT 权限 ON 表名 TO 用户名; ``` ### 2. 撤销权限(REVOKE) ```sql REVOKE 权限 ON 表名 FROM 用户名; ``` --- ## 五、连接查询(JOIN) ### 1. 内连接(INNER JOIN) ```sql SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列; ``` ### 2. 左连接(LEFT JOIN) ```sql SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列 = 表2.列; ``` ### 3. 右连接(RIGHT JOIN) ```sql SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列 = 表2.列; ``` ### 4. 全连接(FULL OUTER JOIN) ```sql SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.列 = 表2.列; ``` --- ## 六、子查询与联合查询 ### 1. 子查询 ```sql SELECT * FROM 表1 WHERE 字段 IN (SELECT 字段 FROM 表2 WHERE 条件); ``` ### 2. 联合查询(UNION) ```sql SELECT 列1 FROM 表1 UNION SELECT 列1 FROM 表2; ``` > `UNION` 会自动去重,`UNION ALL` 不去重。 --- ## 七、索引操作 ### 1. 创建索引 ```sql CREATE INDEX 索引名 ON 表名(列名); ``` ### 2. 删除索引 ```sql DROP INDEX 索引名 ON 表名; ``` --- ## 八、事务控制(Transaction) ```sql BEGIN TRANSACTION; -- 执行多个 SQL 语句 COMMIT; -- 提交事务 -- 或 ROLLBACK; -- 回滚事务 ``` --- ## 九、常用函数 | 函数 | 说明 | |------|------| | `CONCAT()` | 字符串拼接 | | `SUBSTRING()` | 字符串截取 | | `DATE()` | 提取日期部分 | | `NOW()` | 当前时间 | | `IFNULL()` | 处理 NULL 值 | | `CASE WHEN` | 条件判断 | --- ## 十、常见错误与调试 - **语法错误**:检查关键字大小写、括号是否匹配。 - **字段不存在**:确认字段名是否正确。 - **权限问题**:检查用户是否有访问权限。 - **性能问题**:使用 `EXPLAIN` 分析查询计划。 --- 如果你有特定数据库(如 MySQL、PostgreSQL、SQL Server)或场景(如复杂查询、优化等),我可以提供更详细的语句和示例。欢迎继续提问!
上一篇:
SQL根据时间范围条件查询数据
下一篇:
php备份mysql数据库
标题录入,一次不能超过6条
留言
评论