MySQL 常用命令指南
1. 连接到 MySQL
mysql -u 用户名 -p
提示输入密码后,登录 MySQL。
2. 显示数据库列表
SHOW DATABASES;
列出所有数据库。
3. 选择数据库
USE 数据库名;
切换到指定的数据库。
4. 创建数据库
CREATE DATABASE 数据库名;
创建一个新的数据库。
5. 删除数据库
DROP DATABASE 数据库名;
删除指定的数据库。
6. 显示数据表
SHOW TABLES;
列出当前数据库中的所有表。
7. 创建数据表
CREATE TABLE 表名 (列1 数据类型, 列2 数据类型);
创建一个新表,并定义列和数据类型。
8. 查看表结构
DESCRIBE 表名;
显示指定表的结构。
9. 删除数据表
DROP TABLE 表名;
删除指定的数据表。
10. 插入数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
向表中插入数据。
11. 查询数据
SELECT * FROM 表名;
查询表中的所有数据。
12. 更新数据
UPDATE 表名 SET 列1 = 新值 WHERE 条件;
更新指定条件下的数据。
13. 删除数据
DELETE FROM 表名 WHERE 条件;
删除指定条件的数据。
14. 使用 JOIN 查询数据
JOIN 用于将多表中的数据组合查询,最常见的是 内连接(INNER JOIN)。
示例:
查询两个表 users 和 orders,获取所有用户及其订单。
SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id;
其他 JOIN 类型:
LEFT JOIN:返回左表中的所有记录,即使右表中没有匹配。RIGHT JOIN:返回右表中的所有记录,即使左表中没有匹配。
15. 使用子查询
子查询 是嵌套在另一个查询中的查询,可以用于多种场景。
示例:
查询 orders 表中金额大于平均订单金额的订单。
SELECT * FROM orders WHERE amount > (SELECT AVG(amount) FROM orders);
子查询类型:
单行子查询:返回一个值,通常用于
WHERE或HAVING子句。多行子查询:返回多个值,用于
IN子句等。
16. 子查询更新数据
可以使用子查询在 UPDATE 语句中更新数据。
示例:
根据子查询结果更新 employees 表中某些员工的薪资。
UPDATE employees SET salary = salary * 1.1 WHERE department_id = (SELECT id FROM departments WHERE name = 'Sales');
17. 索引
CREATE INDEX 索引名称 ON 表名 (字段名);
OR
ALTER TABLE 表名 ADD INDEX 索引名称 (字段名);
18. 退出 MySQL
EXIT; 或 QUIT;
退出 MySQL 控制台。
MySQL 中常用的索引类型有以下几种:
B-Tree 索引:
默认的索引类型,适用于大多数场景。
适合范围查询和等值查询。
在内部使用 B-Tree 数据结构,可以高效地进行查找、插入和删除操作。
哈希索引:
使用哈希表存储索引,适合快速的等值查询。
不支持范围查询。
主要用于
MEMORY存储引擎。
全文索引(FULLTEXT):
主要用于文本搜索,适合大文本字段(如
TEXT类型)。支持自然语言处理和布尔查询。
只能在
MyISAM和InnoDB存储引擎中使用。
空间索引(SPATIAL):
用于处理地理空间数据,适合 GIS(地理信息系统)应用。
主要在
MyISAM存储引擎中使用。
联合索引:
在多个列上创建的索引,可以提高复合条件查询的性能。
按照定义的列顺序进行索引。
唯一索引:
除了加速查询外,还保证索引列的值唯一。
在插入数据时会检查是否重复。
自增索引:
通常与主键结合使用,使得字段值自增,适用于唯一标识。