MySQL 常用命令速查
本文档整理了 MySQL 日常使用中最常见的命令,涵盖了从服务连接到数据查询的各个方面。
一、服务连接与管理
1. 连接数据库
1 2
| mysql -h 110.110.110.110 -u root -p
|
2. 修改用户密码
在 mysqladmin 工具中修改密码:
1 2
| mysqladmin -u root -p old_password password new_password
|
在 MySQL 8.x 中,推荐使用 ALTER USER:
1 2 3 4 5
| ALTER USER USER() IDENTIFIED BY 'new_password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
|
二、数据库操作 (Database)
1. 查看数据库
2. 创建数据库
1
| CREATE DATABASE database_name;
|
3. 使用数据库
4. 删除数据库
1
| DROP DATABASE database_name;
|
三、用户与权限管理 (User & Privileges)
1. 创建用户并授权
1 2 3 4 5 6 7 8
| CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON my_database.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
|
2. 查看用户权限
1
| SHOW GRANTS FOR 'testuser'@'localhost';
|
3. 撤销权限
1
| REVOKE UPDATE ON my_database.* FROM 'testuser'@'localhost';
|
4. 删除用户
1
| DROP USER 'testuser'@'localhost';
|
四、表结构操作 (DDL - Data Definition Language)
1. 查看数据表
2. 查看表结构
1 2 3
| DESC table_name;
DESCRIBE table_name;
|
3. 创建数据表
一个包含常用约束的建表示例:
1 2 3 4 5 6
| CREATE TABLE `MyClass` ( `id` INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', `name` VARCHAR(20) NOT NULL COMMENT '姓名', `gender` ENUM('Male', 'Female') NOT NULL DEFAULT 'Male' COMMENT '性别', `score` DOUBLE(5, 2) COMMENT '成绩' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
4. 修改表名
1
| ALTER TABLE old_table_name RENAME TO new_table_name;
|
5. 修改表结构 (ALTER TABLE)
添加列 (ADD COLUMN):
1 2
| ALTER TABLE MyClass ADD COLUMN age INT(3) NOT NULL DEFAULT 0 AFTER name;
|
修改列定义 (MODIFY COLUMN):
1 2
| ALTER TABLE MyClass MODIFY COLUMN name VARCHAR(30);
|
修改列名 (CHANGE COLUMN):
1 2
| ALTER TABLE MyClass CHANGE COLUMN score grade FLOAT(6,2);
|
删除列 (DROP COLUMN):
1
| ALTER TABLE MyClass DROP COLUMN age;
|
6. 删除数据表
1 2
| DROP TABLE IF EXISTS MyClass;
|
五、数据操作 (DML - Data Manipulation Language)
1. 插入数据 (INSERT)
插入单行数据:
1
| INSERT INTO MyClass (id, name, grade) VALUES (1, 'Tom', 98.5);
|
插入多行数据:
1 2 3
| INSERT INTO MyClass (name, grade) VALUES ('Jerry', 85.0), ('Alice', 92.5);
|
2. 更新数据 (UPDATE)
注意: UPDATE 语句一定要带 WHERE 条件,否则会更新整张表!
1
| UPDATE MyClass SET grade = 99.0 WHERE name = 'Tom';
|
3. 删除数据 (DELETE)
注意: DELETE 语句一定要带 WHERE 条件,否则会清空整张表!
1
| DELETE FROM MyClass WHERE id = 1;
|
六、数据查询 (DQL - Data Query Language)
1. 基础查询 (SELECT)
1 2 3 4 5
| SELECT * FROM MyClass;
SELECT name, grade FROM MyClass;
|
2. 条件查询 (WHERE)
- 比较运算符:
=, >, <, >=, <=, !=
- 逻辑运算符:
AND, OR, NOT
- 范围查询:
BETWEEN ... AND ...
- 列表查询:
IN (...)
- 模糊查询:
LIKE (% 匹配任意多个字符, _ 匹配单个字符)
1 2 3 4 5 6 7 8
| SELECT * FROM MyClass WHERE grade > 90;
SELECT * FROM MyClass WHERE name LIKE 'T%';
SELECT * FROM MyClass WHERE id IN (1, 3, 5);
|
3. 结果排序 (ORDER BY)
1 2 3 4 5
| SELECT * FROM MyClass ORDER BY grade DESC;
SELECT * FROM MyClass ORDER BY grade ASC;
|
4. 限制结果数量 (LIMIT)
1 2 3 4 5
| SELECT * FROM MyClass LIMIT 5;
SELECT * FROM MyClass LIMIT 10, 5;
|
5. 分组查询 (GROUP BY)
常与聚合函数 (COUNT, SUM, AVG, MAX, MIN) 配合使用。
1 2 3 4
| SELECT gender, COUNT(*) AS total FROM MyClass GROUP BY gender;
|
6. 去重查询 (DISTINCT)
1 2
| SELECT DISTINCT name FROM MyClass;
|