当前位置:首页 > sql > 正文

sql查询语句大全讲解

  • sql
  • 2024-05-01 22:22:38
  • 4164

选择数据
SELECT:选择指定列的数据。
语法:SELECT column1, column2, ... FROM table_name;
WHERE:基于指定条件过滤数据。
语法:SELECT column1, column2, ... FROM table_name WHERE condition;
ORDER BY:按指定列对结果进行排序。
语法:SELECT column1, column2, ... FROM table_name ORDER BY column_name [ASC|DESC];
LIMIT:限制返回的行数。
语法:SELECT column1, column2, ... FROM table_name LIMIT row_count;
OFFSET:跳过指定数量的行。
语法:SELECT column1, column2, ... FROM table_name LIMIT row_count OFFSET offset_value;
DISTINCT:仅返回每个列的唯一值。
语法:SELECT DISTINCT column1, column2, ... FROM table_name;
插入数据
INSERT INTO:向表中插入新行。
语法:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
更新数据
UPDATE:更新表中现有的行。
语法:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
删除数据
DELETE FROM:从表中删除行。
语法:DELETE FROM table_name WHERE condition;
聚合函数
COUNT():计算指定列中的行的数量。
SUM():计算指定列中所有值的总和。
AVG():计算指定列中所有值的平均值。
MIN():返回指定列中的最小值。
MAX():返回指定列中的最大值。
JOIN
INNER JOIN:仅返回两个表中具有匹配行的行。
语法:SELECT column1, column2, ... FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
LEFT JOIN:返回表 1 中的所有行,以及表 2 中匹配的行(如果存在)。
语法:SELECT column1, column2, ... FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
RIGHT JOIN:返回表 2 中的所有行,以及表 1 中匹配的行(如果存在)。
语法:SELECT column1, column2, ... FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
FULL JOIN:返回两个表中所有行,包括匹配和不匹配的行。
语法:SELECT column1, column2, ... FROM table1 FULL JOIN table2 ON table1.column_name = table2.column_name;
子查询
IN:返回在子查询中返回的行中包含指定值的行的行。
语法:SELECT column1, column2, ... FROM table_name WHERE column_name IN (subquery);
NOT IN:返回在子查询中返回的行中不包含指定值的行的行。
语法:SELECT column1, column2, ... FROM table_name WHERE column_name NOT IN (subquery);
EXISTS:检查子查询是否返回任何行,如果返回,则返回 true,否则返回 false。
语法:SELECT column1, column2, ... FROM table_name WHERE EXISTS (subquery);
其他操作
CREATE TABLE:创建一个新表。
ALTER TABLE:修改现有表的架构。
DROP TABLE:删除现有表。
CREATE INDEX:在表上创建索引以提高查询性能。
DROP INDEX:删除现有索引。