SQL 快速参考指南
基本的 SQL 命令和操作
目录
查询数据
选择特定列:
SELECT column1, column2 FROM table_name;
选择所有列:
SELECT * FROM table_name;
选择唯一值:
SELECT DISTINCT column1, column2 FROM table_name;
筛选数据:
SELECT column1, column2 FROM table_name WHERE condition;
排序数据:
SELECT column1, column2 FROM table_name ORDER BY column1 [ASC|DESC];
修改数据
插入一行:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
更新数据:
UPDATE table_name SET column1 = value1 WHERE condition;
删除数据:
DELETE FROM table_name WHERE condition;
表操作
创建表:
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
column3 datatype
);
修改表:
ALTER TABLE table_name ADD column_name datatype;
删除表:
DROP TABLE table_name;
连接
内连接:
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
左连接:
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
聚合函数
统计行数:
SELECT COUNT(*) FROM table_name;
求和:
SELECT SUM(column_name) FROM table_name;
求平均值:
SELECT AVG(column_name) FROM table_name;
按组统计:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
子查询
在SELECT中使用子查询:
SELECT column1, (SELECT AVG(column2) FROM table2) AS avg_col2 FROM table1;
在WHERE中使用子查询:
SELECT * FROM table1 WHERE column1 IN (SELECT column2 FROM table2);
视图
创建视图:
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
删除视图:
DROP VIEW view_name;
此速查表涵盖了最常用的SQL命令和操作。
它为查询、修改数据、表操作、连接、聚合函数、子查询和视图提供了快速参考。
内连接与外连接
INNER JOIN和LEFT JOIN是两种常见的SQL连接操作,它们在如何从多个表中组合数据方面有所不同:
-
INNER JOIN:
- 仅返回在两个表中基于连接条件匹配的行。
- 排除任何在另一张表中没有对应匹配的行。
- 当你只想检索在两张表中都存在的数据时非常有用。
-
LEFT JOIN(也称为LEFT OUTER JOIN):
- 返回左表中的所有行以及右表中匹配的行。
- 如果右表中没有匹配项,它仍然会包含左表中的行,并为右表的列填充NULL值。
- 当你希望查看左表中的所有记录,即使右表中没有对应数据时非常有用。
关键区别:
-
结果集:
- INNER JOIN:仅返回匹配的行。
- LEFT JOIN:返回左表中的所有行,以及右表中匹配的行。
-
NULL值:
- INNER JOIN:不会为不匹配的行生成NULL值。
- LEFT JOIN:在右表中没有匹配时,会为右表的列生成NULL值。
-
使用场景:
- INNER JOIN:当你需要在两张表中都存在的数据时。
- LEFT JOIN:当你需要一张表中的所有数据以及另一张表中匹配的数据时。
-
数据完整性:
- INNER JOIN:如果没有匹配项,可能会排除数据。
- LEFT JOIN:确保包含左表中的所有数据,提供更完整的左表数据视图。
理解这些区别可以帮助你根据特定的数据检索需求和分析目标选择合适的连接类型。