SQL常用语句速查手册

SQL语句大全备忘速查

SQL(Structured Query Language,结构化查询语言)是用于与关系型数据库进行交互的标准编程语言。无论是进行数据查询、更新、删除,还是创建和管理数据库对象,SQL都是数据库开发人员必备的工具。本文将详细列举并讲解常见的SQL语句,方便快速查阅与使用。

1. 数据库操作

1.1 创建数据库

sql
CREATE DATABASE database_name;

- 该语句用于创建一个新数据库,database_name为数据库的名称。

1.2 删除数据库

sql
DROP DATABASE database_name;

- 用于删除指定的数据库。

1.3 选择数据库

sql
USE database_name;

- 切换到指定的数据库,使得接下来的操作针对该数据库进行。

1.4 查看数据库列表

sql
SHOW DATABASES;

- 显示所有数据库的列表。

1.5 查看当前数据库

sql
SELECT DATABASE();

- 返回当前正在使用的数据库名称。

2. 数据表操作

2.1 创建数据表

sql
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
...
);

- 创建一个新表,table_name为表名,column1, column2等为表的字段名,datatype为字段的数据类型。

2.2 删除数据表

sql
DROP TABLE table_name;

- 删除指定的数据表及其所有数据。

2.3 修改数据表

sql
ALTER TABLE table_name
ADD column_name datatype;

- 为已有的数据表添加新列。

sql
ALTER TABLE table_name
DROP COLUMN column_name;

- 删除数据表中的指定列。

2.4 查看数据表结构

sql
DESCRIBE table_name;

- 显示数据表的结构,包括字段名、数据类型、是否可以为NULL、键约束等信息。

2.5 查看所有数据表

sql
SHOW TABLES;

- 显示当前数据库中的所有表名。

3. 数据操作

3.1 插入数据

sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

- 向表中插入一条记录。column1, column2, column3为字段名,value1, value2, value3为对应的值。

3.2 插入多条数据

sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...),
(value4, value5, value6, ...),
...

- 向表中插入多条记录。

3.3 更新数据

sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

- 更新表中的数据,WHERE子句用于指定更新的条件,否则会更新所有记录。

3.4 删除数据

sql
DELETE FROM table_name
WHERE condition;

- 删除表中的数据,WHERE子句用于指定删除的条件。若没有WHERE条件,将删除表中的所有数据。

3.5 查询数据

sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;

- 查询指定表中的数据,column1, column2是要查询的列,condition是查询的条件。

3.6 查询所有数据

sql
SELECT * FROM table_name;

- 查询表中所有的数据。

3.7 排序查询结果

sql
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC|DESC;

- 对查询结果进行排序,ASC为升序(默认),DESC为降序。

3.8 分组查询

sql
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;

- 对查询结果进行分组,并对每组应用聚合函数(如COUNTSUMAVG等)。

3.9 聚合函数

sql
SELECT COUNT(*), SUM(column), AVG(column), MAX(column), MIN(column)
FROM table_name;

- 使用聚合函数计算表中数据的统计信息,分别表示记录数、总和、平均值、最大值和最小值。

4. 多表查询

4.1 内连接(INNER JOIN)

sql
SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.column = table2.column;

- 返回两个表中匹配的行。如果表中没有匹配项,则不会返回记录。

4.2 左连接(LEFT JOIN)

sql
SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;

- 返回左表的所有记录,即使右表没有匹配项,右表的字段会返回NULL

4.3 右连接(RIGHT JOIN)

sql
SELECT column1, column2, ...
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;

- 返回右表的所有记录,即使左表没有匹配项,左表的字段会返回NULL

4.4 自连接(SELF JOIN)

sql
SELECT a.column1, b.column2
FROM table_name a, table_name b
WHERE a.column = b.column;

- 将表与其自身连接,常用于比较同一表中不同记录之间的关系。

5. 子查询

5.1 单行子查询

sql
SELECT column1, column2
FROM table_name
WHERE column1 = (SELECT column1 FROM table_name WHERE condition);

- 返回一个单一结果的子查询。

5.2 多行子查询

sql
SELECT column1, column2
FROM table_name
WHERE column1 IN (SELECT column1 FROM table_name WHERE condition);

- 返回多个结果的子查询。

5.3 EXISTS子查询

sql
SELECT column1, column2
FROM table_name
WHERE EXISTS (SELECT 1 FROM table_name WHERE condition);

- 检查子查询是否返回任何记录,若返回至少一条记录,则EXISTSTRUE

6. 索引与视图

6.1 创建索引

sql
CREATE INDEX index_name
ON table_name (column1, column2, ...);

- 为表的某一列或多列创建索引,加速查询性能。

6.2 删除索引

sql
DROP INDEX index_name;

- 删除指定的索引。

6.3 创建视图

sql
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

- 创建一个虚拟表(视图),它的查询结果可以像表一样被引用。

6.4 删除视图

sql
DROP VIEW view_name;

- 删除指定的视图。

7. 常见SQL函数

7.1 字符串函数

  • CONCAT(): 将两个或多个字符串连接在一起。
    sql
    SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
  • LENGTH(): 返回字符串的长度。
    sql
    SELECT LENGTH(column_name) FROM table_name;

7.2 数学函数

  • ROUND(): 对数值进行四舍五入。
    sql
    SELECT ROUND(column_name, 2) FROM table_name;
  • FLOOR(): 返回小于或等于给定数值的最大整数。
    sql
    SELECT FLOOR(column_name) FROM table_name;

7.3 日期函数

  • NOW(): 返回当前的日期和时间。
    sql
    SELECT NOW();
  • DATE(): 从日期时间中提取日期部分。
    sql
    SELECT DATE(now()) FROM table_name;

7.4 条件函数

  • IFNULL(): 检查一个值是否为NULL,若是则返回替代值。
    sql
    SELECT IFNULL(column_name, 'default_value') FROM table_name;

8. SQL安全与事务

8.1 开始事务

sql
START TRANSACTION;

- 启动一个新的事务。

8.2 提交事务

sql
COMMIT;

- 提交当前事务,所有操作将永久保存。

8.3 回滚事务

sql
ROLLBACK;

- 撤销当前事务中的所有操作。


SQL是数据库管理的基础,掌握基本的SQL语句可以帮助开发人员高效地操作数据。在实际开发中,结合不同的查询需求和优化技巧

THE END