SQL知识点总结
出处:网络整理 发布于:2025-08-11 16:51:36
一、SQL基础概念
SQL(ructured Query Language):结构化查询语言,用于管理关系型数据库
关系型数据库:基于关系模型,数据以表格形式存储
主要操作类型:
DDL (数据定义语言):CREATE, ALTER, DROP
DML (数据操作语言):SELECT, IERT, UPDATE, DELETE
DCL (数据控制语言):GRANT, REVOKE
TCL (事务控制语言):COMMIT, ROLLBACK, SAVEPOINT
二、基本查询
SELECT语句:
sq
SELECT 列名1, 列名2 FROM 表名 WHERE 条件;
WHERE子句:过滤条件
比较运算符:=, <>, >, <, >=, <=
逻辑运算符:AND, OR, NOT
BETWEEN, IN, LIKE, IS NULL
排序:
sql
SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];
三、常用函数
聚合函数:
COUNT(), SUM(), AVG(), MAX(), MIN()
字符串函数:
CCAT(), SUBSTRING(), UPPER(), LOWER(), LENGTH()
数值函数:
ROUND(), CEIL(), FLOOR(), ABS()
日期函数:
NOW(), CURDATE(), DATE_FORMAT(), DATEDIFF()
四、分组与过滤
GROUP BY:
sql
SELECT 列名, 聚合函数 FROM 表名 GROUP BY 列名;
HAVING:对分组结果过滤
sql
复制SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 1;
五、多表查询
连接类型:
内连接(INNER JOIN):只返回匹配的行
左连接(LEFT JOIN):返回左表所有行,右表不匹配为NULL
右连接(RIGHT JOIN):返回右表所有行,左表不匹配为NULL
全连接(FULL JOIN):返回所有行,不匹配为NULL
交叉连接(CROSS JOIN):笛卡尔积
连接语法:
sql
SELECT * FROM 表1 JOIN 表2 ON 表1.列 = 表2.列;
六、子查询
WHERE子句中的子查询:
sql
SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 表名);
FROM子句中的子查询:
sql
复制SELECT * FROM (SELECT 列名 FROM 表名) AS 别名;
EXISTS/NOT EXISTS:
sql
SELECT * FROM 表名 WHERE EXISTS (SELECT 1 FROM 表名 WHERE 条件);
七、数据操作
INSERT:
sql
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
UPDATE:
sql
UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 条件;
DELETE:
sql
DELETE FROM 表名 WHERE 条件;
八、表与索引
创建表:
sql
CREATE TABLE 表名 ( 列名1 数据类型 约束, 列名2 数据类型 约束, ... );
约束类型:
PRIMARY KEY:主键
FOREIGN KEY:外键
NOT NULL:非空
UNIQUE:
CHECK:检查条件
DEFAULT:默认值
索引:
CREATE INDEX 索引名 ON 表名 (列名);
九、事务处理
事务特性(ACID):
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolaon)
持久性(Durability)
事务控制:
sql
BEGIN TRANSACTION; -- SQL语句 COMMIT; -- 或 ROLLBACK;
十、特性
视图(VIEW):
sql
CREATE VIEW 视图名 AS SELECT语句;
存储过程(PROCEDURE):
CREATE PROCEDURE 过程名(参数) BEGIN -- SQL语句 END;
(TRIGGER):
sql
CREATE TRIGGER 触发器名 BEFORE/AFTER INSERT/UPDATE/DELETE ON 表名 FOR EACH ROW BEGIN -- 触发时执行的SQL END;
窗口函数(Window Functions):
sql
SELECT 列名, ROW_NUMBER() OVER (PARTITION BY 列 ORDER BY 列) FROM 表名;
CTE(公用表表达式):
sql
WITH CTE名称 AS ( SELECT语句 ) SELECT * FROM CTE名称;
十一、性能优化
合理使用索引
避免SELECT *
优化JOIN操作
使用EXPLAIN分析查询计划
适当分表分库
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//lahealthsma.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 等电位端子箱是什么_等电位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重复控制的复合控制策略2025/7/29 16:58:24
- 什么是树莓派?一文快速了解树莓派基础知识2025/6/18 16:30:52
- 什么是有机液分析与有机液知识介绍2025/6/7 16:31:44
- FPGA中的双线性插值算法2025/5/29 17:16:30