MySQL 命令大全
                           
天天向上
发布: 2025-02-18 23:15:25

原创
222 人浏览过

MySQL 提供了丰富的命令集,用于管理数据库、表、用户权限等。以下是 MySQL 命令的详细分类和常用命令,帮助你深入理解如何管理和操作 MySQL 数据库。

1. 数据库管理命令

1.1 CREATE DATABASE

用于创建一个新的数据库。

CREATE DATABASE my_database;

1.2 USE

选择当前操作的数据库。

USE my_database;

1.3 SHOW DATABASES

列出当前 MySQL 实例中的所有数据库。

SHOW DATABASES;

1.4 DROP DATABASE

删除一个现有的数据库。

DROP DATABASE my_database;

1.5 ALTER DATABASE

修改数据库的属性(如字符集、排序规则等)。

ALTER DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 表管理命令

2.1 CREATE TABLE

用于创建一个新表。

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    salary DECIMAL(10, 2)
);

2.2 SHOW TABLES

列出当前数据库中的所有表。

SHOW TABLES;

2.3 DESCRIBE

显示表的结构,包括列名、数据类型、是否为空、键等信息。

DESCRIBE employees;

2.4 DROP TABLE

删除一个现有的表。

DROP TABLE employees;

2.5 ALTER TABLE

修改现有表的结构,例如添加、删除列,修改列数据类型等。

ALTER TABLE employees ADD COLUMN department VARCHAR(100);

2.6 TRUNCATE TABLE

删除表中的所有数据,但保留表结构。

TRUNCATE TABLE employees;

3. 数据操作命令

3.1 SELECT

查询数据,从表中选择行。

SELECT * FROM employees WHERE salary > 5000;

3.2 INSERT INTO

向表中插入数据。

INSERT INTO employees (name, salary) VALUES ('John Doe', 6000);

3.3 UPDATE

更新表中的现有数据。

UPDATE employees SET salary = 7000 WHERE id = 1;

3.4 DELETE

删除表中的数据。

DELETE FROM employees WHERE id = 1;

3.5 REPLACE INTO

插入数据,如果该行已经存在,则替换。

REPLACE INTO employees (id, name, salary) VALUES (1, 'John Doe', 7000);

3.6 INSERT IGNORE INTO

插入数据,如果已存在相同主键或唯一索引的行,则忽略插入。

INSERT IGNORE INTO employees (name, salary) VALUES ('Jane Doe', 6000);

4. 索引管理命令

4.1 CREATE INDEX

创建一个新的索引。

CREATE INDEX idx_salary ON employees (salary);

4.2 SHOW INDEXES

显示表中所有索引的信息。

SHOW INDEXES FROM employees;

4.3 DROP INDEX

删除索引。

DROP INDEX idx_salary ON employees;

5. 视图管理命令

5.1 CREATE VIEW

创建视图。

CREATE VIEW employee_view AS
SELECT name, salary FROM employees WHERE salary > 5000;

5.2 SHOW VIEWS

显示当前数据库中的所有视图。

SHOW VIEWS;

5.3 DROP VIEW

删除视图。

DROP VIEW employee_view;

6. 用户管理命令

6.1 CREATE USER

创建新用户。

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';

6.2 SHOW USERS

显示 MySQL 中的所有用户。

SELECT User, Host FROM mysql.user;

6.3 GRANT

赋予用户权限。

GRANT ALL PRIVILEGES ON my_database.* TO 'new_user'@'localhost';

6.4 REVOKE

撤销用户的权限。

REVOKE ALL PRIVILEGES ON my_database.* FROM 'new_user'@'localhost';

6.5 DROP USER

删除用户。

DROP USER 'new_user'@'localhost';

7. 权限管理命令

7.1 SHOW GRANTS

显示用户的权限。

SHOW GRANTS FOR 'new_user'@'localhost';

7.2 FLUSH PRIVILEGES

重新加载权限表。

FLUSH PRIVILEGES;

8. 备份与恢复命令

8.1 mysqldump

使用 mysqldump 命令行工具进行数据库备份。

mysqldump -u root -p my_database > backup.sql

8.2 mysql

使用 mysql 命令行工具导入备份文件。

mysql -u root -p my_database < backup.sql

9. 事务命令

9.1 START TRANSACTION

开始一个事务。

START TRANSACTION;

9.2 COMMIT

提交事务。

COMMIT;

9.3 ROLLBACK

回滚事务。

ROLLBACK;

9.4 SAVEPOINT

设置事务的保存点。

SAVEPOINT save_point_name;

9.5 RELEASE SAVEPOINT

释放保存点。

RELEASE SAVEPOINT save_point_name;

10. 复制命令

10.1 SHOW MASTER STATUS

显示主服务器的状态信息。

SHOW MASTER STATUS;

10.2 SHOW SLAVE STATUS

显示从服务器的状态信息。

SHOW SLAVE STATUS;

10.3 CHANGE MASTER TO

配置从服务器连接到主服务器。

CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password';

11. 系统变量命令

11.1 SHOW VARIABLES

显示 MySQL 系统变量。

SHOW VARIABLES;

11.2 SET

设置系统变量。

SET GLOBAL max_connections = 200;

11.3 SHOW STATUS

显示 MySQL 服务器的状态信息。

SHOW STATUS;

11.4 SHOW PROCESSLIST

显示当前所有活动的线程。

SHOW PROCESSLIST;

12. 查询优化命令

12.1 EXPLAIN

查看查询的执行计划。

EXPLAIN SELECT * FROM employees WHERE salary > 5000;

12.2 OPTIMIZE TABLE

优化表,整理碎片。

OPTIMIZE TABLE employees;

13. 备份与恢复

13.1 BACKUP TABLE

备份表。

BACKUP TABLE employees TO '/backup';

13.2 RESTORE TABLE

恢复备份的表。

RESTORE TABLE employees FROM '/backup';

14. 总结

MySQL 提供的命令范围非常广泛,可以进行数据库和表的管理、数据操作、用户权限管理、事务控制、备份恢复等多项操作。熟练掌握这些命令对于日常的数据库管理和优化非常重要。通过不断练习和实践,你将能够高效地管理 MySQL 数据库及其相关功能。

发表回复 0

Your email address will not be published. Required fields are marked *