SQL 速查手册

前言:SQL(Structured Query Language)是用于管理关系型数据库的标准语言,广泛应用于数据查询、更新、定义和管理等操作。本文将为你提供一份详细的 SQL 速查手册,涵盖从基础到高级的各种 SQL 操作,帮助你快速掌握和应用 SQL 技能。

一、查找数据的查询

1. 基本查询

SELECT column1, column2 FROM table_name;
  • SELECT:指定要查询的列。
  • FROM:指定要查询的表。

2. 查询所有列

SELECT * FROM table_name;
  • *:表示选择表中的所有列。

3. 带条件的查询(WHERE 子句)

SELECT column1, column2 FROM table_name WHERE condition;
  • WHERE:用于过滤记录,只返回满足条件的行。
  • 示例:SELECT name, salary FROM employees WHERE salary > 50000;

4. 模糊查询(LIKE 子句)

SELECT column1, column2 FROM table_name WHERE column LIKE 'pattern';
  • LIKE:用于模糊匹配。
  • %:表示任意数量的字符。
  • _:表示任意单个字符。
  • 示例:SELECT name FROM employees WHERE name LIKE 'A%';(查找以 A 开头的名字)

5. 排序查询(ORDER BY 子句)

SELECT column1, column2 FROM table_name ORDER BY column1 ASC/DESC;
  • ORDER BY:用于对结果集进行排序。
  • ASC:升序(默认)。
  • DESC:降序。
  • 示例:SELECT name, salary FROM employees ORDER BY salary DESC;

二、修改数据的查询

1. 插入数据(INSERT INTO)

INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  • 示例:INSERT INTO employees (name, salary) VALUES ('John Doe', 60000);

2. 更新数据(UPDATE)

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • 示例:UPDATE employees SET salary = 65000 WHERE name = 'John Doe';

3. 删除数据(DELETE)

DELETE FROM table_name WHERE condition;
  • 示例:DELETE FROM employees WHERE name = 'John Doe';

三、聚合查询

1. 计算总和(SUM)

SELECT SUM(column) FROM table_name;
  • 示例:SELECT SUM(salary) FROM employees;

2. 计算平均值(AVG)

SELECT AVG(column) FROM table_name;
  • 示例:SELECT AVG(salary) FROM employees;

3. 计算最大值(MAX)和最小值(MIN)

SELECT MAX(column) FROM table_name;
SELECT MIN(column) FROM table_name;
  • 示例:SELECT MAX(salary) FROM employees;

4. 计算行数(COUNT)

SELECT COUNT(*) FROM table_name;
  • 示例:SELECT COUNT(*) FROM employees;

5. 分组聚合(GROUP BY)

SELECT column, AGG_FUNCTION(column) FROM table_name GROUP BY column;
  • 示例:SELECT department, AVG(salary) FROM employees GROUP BY department;

四、连接查询

1. 内连接(INNER JOIN)

SELECT table1.column, table2.column FROM table1 INNER JOIN table2 ON table1.common_column = table2.common_column;
  • 示例:SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;

2. 左连接(LEFT JOIN)

SELECT table1.column, table2.column FROM table1 LEFT JOIN table2 ON table1.common_column = table2.common_column;
  • 示例:SELECT employees.name, departments.department_name FROM employees LEFT JOIN departments ON employees.department_id = departments.id;

3. 右连接(RIGHT JOIN)

SELECT table1.column, table2.column FROM table1 RIGHT JOIN table2 ON table1.common_column = table2.common_column;

4. 全连接(FULL JOIN)

SELECT table1.column, table2.column FROM table1 FULL JOIN table2 ON table1.common_column = table2.common_column;

五、视图查询

1. 创建视图

CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;
  • 示例:CREATE VIEW high_salary_employees AS SELECT name, salary FROM employees WHERE salary > 50000;

2. 查询视图

SELECT * FROM view_name;

3. 删除视图

DROP VIEW view_name;

六、修改表的查询

1. 创建表

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
);
  • 示例:CREATE TABLE employees (id INT, name VARCHAR(50), salary DECIMAL(10,2));

2. 修改表结构(ALTER TABLE)

ALTER TABLE table_name ADD column datatype;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name RENAME COLUMN old_name TO new_name;
  • 示例:ALTER TABLE employees ADD email VARCHAR(100);

3. 删除表

DROP TABLE table_name;

七、单表查询

单表查询是最基础的查询操作,用于从单个表中提取数据。常见操作包括:

  • 查询所有列:SELECT * FROM table_name;
  • 带条件查询:SELECT column FROM table_name WHERE condition;
  • 排序查询:SELECT column FROM table_name ORDER BY column;

八、多表查询

多表查询用于从多个表中提取数据,通常通过连接(JOIN)实现。常见连接类型包括:

  • 内连接(INNER JOIN)
  • 左连接(LEFT JOIN)
  • 右连接(RIGHT JOIN)
  • 全连接(FULL JOIN)

九、集合运算

1. 并集(UNION)

SELECT column FROM table1 UNION SELECT column FROM table2;
  • UNION:合并两个查询结果,去除重复行。

2. 并集(包含重复行)(UNION ALL)

SELECT column FROM table1 UNION ALL SELECT column FROM table2;

3. 交集(INTERSECT)

SELECT column FROM table1 INTERSECT SELECT column FROM table2;

4. 差集(EXCEPT 或 MINUS)

SELECT column FROM table1 EXCEPT SELECT column FROM table2;

十、子查询

1. 子查询作为条件

SELECT column FROM table1 WHERE column IN (SELECT column FROM table2);

2. 子查询作为值

SELECT column FROM table1 WHERE column > (SELECT AVG(column) FROM table2);

3. 子查询作为表

SELECT column FROM (SELECT column FROM table1 WHERE condition) AS subquery;

十一、数据操作

数据操作包括插入、更新和删除数据:

  • 插入:INSERT INTO table_name (columns) VALUES (values);
  • 更新:UPDATE table_name SET column = value WHERE condition;
  • 删除:DELETE FROM table_name WHERE condition;

十二、数据定义

数据定义用于创建、修改和删除数据库对象:

  • 创建表:CREATE TABLE table_name (columns);
  • 修改表:ALTER TABLE table_name ...;
  • 删除表:DROP TABLE table_name;

十三、扩展内容

1. 存储过程

CREATE PROCEDURE procedure_name AS
BEGIN
    SQL statements;
END;

2. 索引

CREATE INDEX index_name ON table_name (column);
DROP INDEX index_name;

3. 事务管理

BEGIN TRANSACTION;
SQL statements;
COMMIT;
ROLLBACK;

4. 触发器

CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT/UPDATE/DELETE
AS
BEGIN
    SQL statements;
END;

总结

SQL 是一种功能强大的语言,可以帮助你高效地管理和操作数据。通过掌握上述内容,你将能够应对大多数常见的数据库操作需求。无论是初学者还是有经验的开发者,这份速查手册都能为你提供快速参考和实用指导。希望这份手册对你有所帮助!

你可能感兴趣的:(sql,数据库)