MySQL 是一种广泛使用的开源关系型数据库管理系统,其强大的命令行工具(MySQL Command-Line Client)允许用户通过 SQL 语句与数据库进行交互,掌握 MySQL 命令是数据库管理和开发的基础,本文将详细介绍常用的 MySQL 命令,包括数据库操作、表操作、数据操作、用户权限管理等,并通过示例和表格帮助理解。

连接到 MySQL 服务器是使用 MySQL 命令的第一步,在命令行中输入 mysql -u 用户名 -p
,然后按提示输入密码。mysql -u root -p
会以 root 用户身份登录,登录成功后,可以使用 SHOW DATABASES;
命令查看所有数据库,返回结果是一个包含数据库名称的列表,如 information_schema
、mysql
、performance_schema
等,要选择一个数据库进行操作,使用 USE 数据库名;
命令,USE my_database;
。
创建数据库和表是数据库设计的基础,创建数据库的命令是 CREATE DATABASE 数据库名;
,CREATE DATABASE my_database;
,如果数据库已存在且不想报错,可以添加 IF NOT EXISTS
子句,如 CREATE DATABASE IF NOT EXISTS my_database;
,创建表时,需要定义表的列名、数据类型和约束,创建一个名为 users
的表,包含 id
(整数,主键,自增)、name
(字符串,非空)、email
(字符串,唯一)和 created_at
(日期时间),命令如下:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP );
MySQL 支持多种数据类型,包括整数类型(INT
、BIGINT
)、字符串类型(VARCHAR
、TEXT
)、日期时间类型(DATE
、DATETIME
)等,约束条件包括主键(PRIMARY KEY
)、外键(FOREIGN KEY
)、唯一(UNIQUE
)、非空(NOT NULL
)和默认值(DEFAULT
)。
数据操作语言(DML)用于管理表中的数据,插入数据使用 INSERT INTO
命令,

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
可以一次性插入多行数据:
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com'), ('Charlie', 'charlie@example.com');
查询数据使用 SELECT
命令,这是最常用的命令之一,查询 users
表的所有数据:
SELECT * FROM users;
指定查询列:
SELECT name, email FROM users;
使用 WHERE
子句进行条件查询:

SELECT * FROM users WHERE name = 'Alice';
排序结果使用 ORDER BY
,例如按 id
降序排列:
SELECT * FROM users ORDER BY id DESC;
聚合函数如 COUNT()
、SUM()
、AVG()
、MAX()
、MIN()
可以用于计算统计数据,
SELECT COUNT(*) FROM users;
分组查询使用 GROUP BY
子句,例如按 name
分组并统计每个名字的数量:
SELECT name, COUNT(*) FROM users GROUP BY name;
更新数据使用 UPDATE
命令,例如将 name
为 'Alice' 的用户的 email
更新:
UPDATE users SET email = 'alice_new@example.com' WHERE name = 'Alice';
删除数据使用 DELETE
命令,例如删除 name
为 'Bob' 的用户:
DELETE FROM users WHERE name = 'Bob';
注意:DELETE
操作不可逆,建议在执行前使用 SELECT
确认条件。
数据定义语言(DDL)用于修改表结构,添加列使用 ALTER TABLE
命令,例如在 users
表中添加一个 age
列:
ALTER TABLE users ADD COLUMN age INT;
修改列的数据类型或约束:
ALTER TABLE users MODIFY COLUMN age INT NOT NULL;
删除列:
ALTER TABLE users DROP COLUMN age;
重命名表:
RENAME TABLE users TO customers;
删除表使用 DROP TABLE
命令,DROP TABLE customers;
,如果表不存在会报错,可以添加 IF EXISTS
子句,删除数据库使用 DROP DATABASE
命令,DROP DATABASE my_database;
,此操作会删除数据库中的所有表,需谨慎使用。
用户权限管理是数据库安全的重要部分,创建用户使用 CREATE USER
命令,
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
授予权限使用 GRANT
命令,例如授予 new_user
对 my_database
的所有权限:
GRANT ALL PRIVILEGES ON my_database.* TO 'new_user'@'localhost';
刷新权限使更改生效:
FLUSH PRIVILEGES;
撤销权限使用 REVOKE
命令,例如撤销 new_user
的删除权限:
REVOKE DELETE ON my_database.* FROM 'new_user'@'localhost';
删除用户使用 DROP USER
命令,DROP USER 'new_user'@'localhost';
。
MySQL 还支持事务处理,确保数据的一致性,事务以 START TRANSACTION
或 BEGIN
开始,以 COMMIT
提交或 ROLLBACK
回滚。
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE user_id = 1; UPDATE accounts SET balance = balance + 100 WHERE user_id = 2; COMMIT;
如果在执行过程中发生错误,可以使用 ROLLBACK
撤销所有更改。
以下是常用 MySQL 命令的总结表格:
命令类别 | 命令示例 | 说明 |
---|---|---|
连接与退出 | mysql -u root -p |
连接到 MySQL 服务器 |
数据库操作 | SHOW DATABASES; |
显示所有数据库 |
CREATE DATABASE my_db; |
创建数据库 | |
USE my_db; |
选择数据库 | |
表操作 | SHOW TABLES; |
显示当前数据库的所有表 |
CREATE TABLE users (id INT PRIMARY KEY); |
创建表 | |
DROP TABLE users; |
删除表 | |
数据查询 | SELECT * FROM users; |
查询所有数据 |
SELECT name FROM users WHERE id = 1; |
条件查询 | |
数据插入 | INSERT INTO users VALUES (1, 'Alice'); |
插入数据 |
数据更新 | UPDATE users SET name = 'Bob' WHERE id = 1; |
更新数据 |
数据删除 | DELETE FROM users WHERE id = 1; |
删除数据 |
用户权限 | GRANT SELECT ON my_db.* TO 'user'@'localhost'; |
授予权限 |
FLUSH PRIVILEGES; |
刷新权限 |
相关问答FAQs:
Q1: 如何查看 MySQL 数据库中某个表的结构?
A1: 可以使用 DESCRIBE 表名;
或 SHOW COLUMNS FROM 表名;
命令查看表的结构。DESCRIBE users;
会返回 users
表的列名、数据类型、是否允许 NULL、键信息、默认值和额外信息。
Q2: 如何备份和恢复 MySQL 数据库?
A2: 备份数据库使用 mysqldump
命令,mysqldump -u root -p my_database > backup.sql
会将 my_database
备份到 backup.sql
文件中,恢复数据库时,先创建空数据库,然后使用 mysql -u root -p my_database < backup.sql
将备份文件导入数据库。