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;
- 对查询结果进行分组,并对每组应用聚合函数(如COUNT
、SUM
、AVG
等)。
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);
- 检查子查询是否返回任何记录,若返回至少一条记录,则EXISTS
为TRUE
。
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语句可以帮助开发人员高效地操作数据。在实际开发中,结合不同的查询需求和优化技巧