MySQL 是一款开源的关系型数据库管理系统,广泛应用于各类 Web 应用、企业级系统以及中小型项目中,它支持标准的 SQL 语言,具备高性能、稳定性和易用性等特点,能够高效地存储、管理和检索数据,通过 MySQL 命令行工具,用户可以直接与数据库交互,执行数据库的创建、表的管理、数据的增删改查等操作,以下将详细介绍 MySQL 命令数据库的核心操作及使用场景。

MySQL 的连接与退出
在使用 MySQL 命令操作数据库之前,首先需要登录到 MySQL 服务器,打开终端或命令行工具,输入以下命令:
mysql -u 用户名 -p
-u
后面 followed by 用户名(如 root
),-p
表示需要输入密码,按回车后,系统会提示输入密码,正确输入后即可进入 MySQL 命令行界面,退出 MySQL 则使用以下命令:
exit;
或
quit;
数据库的创建与管理
数据库是存储数据的容器,创建数据库的基本语法为:

CREATE DATABASE 数据库名 [CHARACTER SET 字符集] [COLLATE 排序规则];
创建一个名为 company_db
的数据库,并指定字符集为 utf8mb4
:
CREATE DATABASE company_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看所有数据库使用:
SHOW DATABASES;
选择要操作的数据库:
USE 数据库名;
选择 company_db
:

USE company_db;
删除数据库需谨慎操作,语法为:
DROP DATABASE 数据库名;
数据表的操作
数据表是数据库中存储数据的结构化对象,创建表时需定义列名、数据类型、约束条件等,创建一个员工表 employees
:
CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, department VARCHAR(50), hire_date DATE, salary DECIMAL(10, 2) );
AUTO_INCREMENT
表示自增主键,NOT NULL
表示该列不能为空,PRIMARY KEY
定义主键约束,查看当前数据库中的所有表:
SHOW TABLES;
查看表结构:
DESCRIBE employees;
或
SHOW COLUMNS FROM employees;
修改表结构,例如添加列:
ALTER TABLE employees ADD COLUMN email VARCHAR(100);
删除列:
ALTER TABLE employees DROP COLUMN email;
删除表:
DROP TABLE employees;
数据的增删改查(CRUD)
插入数据(INSERT)
使用 INSERT INTO
语句向表中插入数据。
INSERT INTO employees (name, age, department, hire_date, salary) VALUES ('张三', 28, '技术部', '2023-01-15', 8000.00);
若插入多行数据,可使用:
INSERT INTO employees (name, age, department, hire_date, salary) VALUES ('李四', 30, '市场部', '2022-06-01', 7500.00), ('王五', 25, '人事部', '2023-03-10', 6000.00);
查询数据(SELECT)
查询是数据库操作中最频繁的功能,基本语法为:
SELECT 列名 FROM 表名 [WHERE 条件] [ORDER BY 排序字段] [LIMIT 数量];
查询所有员工信息:
SELECT * FROM employees;
查询指定列:
SELECT name, department FROM employees;
带条件的查询,例如查询技术部员工:
SELECT * FROM employees WHERE department = '技术部';
排序查询,例如按薪资降序排列:
SELECT * FROM employees ORDER BY salary DESC;
限制查询结果数量,例如查询前 3 条记录:
SELECT * FROM employees LIMIT 3;
更新数据(UPDATE)
使用 UPDATE
语句修改数据,需配合 WHERE
条件避免全表更新,将张三的薪资调整为 9000.00:
UPDATE employees SET salary = 9000.00 WHERE name = '张三';
删除数据(DELETE)
使用 DELETE
语句删除数据,同样需使用 WHERE
条件,删除年龄小于 25 的员工:
DELETE FROM employees WHERE age < 25;
索引与优化
索引是提高查询性能的重要手段,创建索引的语法为:
CREATE INDEX 索引名 ON 表名 (列名);
为 employees
表的 name
列创建索引:
CREATE INDEX idx_name ON employees (name);
查看索引:
SHOW INDEX FROM employees;
删除索引:
DROP INDEX idx_name ON employees;
用户与权限管理
MySQL 支持多用户操作,可通过 GRANT
语句分配权限,创建用户 user1
并授予对 company_db
的所有权限:
GRANT ALL PRIVILEGES ON company_db.* TO 'user1'@'localhost' IDENTIFIED BY 'password';
刷新权限使配置生效:
FLUSH PRIVILEGES;
数据备份与恢复
备份数据库使用 mysqldump
工具:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
备份 company_db
:
mysqldump -u root -p company_db > company_db_backup.sql
恢复数据库:
mysql -u 用户名 -p 数据库名 < 备份文件.sql
相关问答 FAQs
问题 1:如何修改 MySQL 中已存在表的字符集?
解答:使用 ALTER TABLE
语句修改表的字符集,例如将 employees
表的字符集修改为 utf8mb4
:
ALTER TABLE employees CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
问题 2:MySQL 中如何查询重复的数据?
解答:使用 GROUP BY
和 HAVING
子句查询重复数据,查询 employees
表中重复的 department
列:
SELECT department, COUNT(*) AS count FROM employees GROUP BY department HAVING count > 1;