MySQL 是一款广泛使用的开源关系型数据库管理系统,掌握其常见命令是进行数据库操作的基础,以下将详细介绍 MySQL 的常用命令,涵盖登录、数据库操作、表操作、数据操作、用户权限管理等方面。

登录 MySQL 数据库是使用 MySQL 的第一步,通常通过 mysql -u 用户名 -p
命令实现,mysql -u root -p
,执行后会提示输入密码,若要远程登录,可添加 -h
参数指定主机名,如 mysql -u root -p -h 192.168.1.100
,登录成功后,会进入 MySQL 的命令行客户端,提示符为 mysql>
。
数据库操作方面,使用 SHOW DATABASES;
可以查看当前 MySQL 服务器中所有的数据库,创建数据库使用 CREATE DATABASE 数据库名 [CHARSET utf8mb4];
,CREATE DATABASE mydb DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
,CHARSET
和 COLLATE
用于指定字符集和排序规则,避免乱码问题,删除数据库使用 DROP DATABASE 数据库名;
,需谨慎操作,因为删除后数据无法恢复,选择当前操作的数据库通过 USE 数据库名;
,USE mydb;
,之后的所有操作将针对该数据库。
表操作是数据库管理的核心,首先需通过 USE 数据库名;
进入目标数据库,查看当前数据库中的所有表使用 SHOW TABLES;
,创建表的语法为 CREATE TABLE 表名 (字段名1 数据类型 [约束], 字段名2 数据类型 [约束], ...);
,例如创建用户表 users
,可执行:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, age INT DEFAULT 18, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
AUTO_INCREMENT
表示自增主键,PRIMARY KEY
定义主键约束,NOT NULL
表示字段不能为空,UNIQUE
表示字段值唯一,DEFAULT
设置默认值,TIMESTAMP
用于记录时间戳,删除表使用 DROP TABLE 表名;
,若需判断表是否存在再删除,可添加 IF EXISTS
选项,如 DROP TABLE IF EXISTS users;
,修改表结构使用 ALTER TABLE
命令,例如添加列:ALTER TABLE users ADD COLUMN phone VARCHAR(20);
,修改列数据类型:ALTER TABLE users MODIFY COLUMN age SMALLINT;
,删除列:ALTER TABLE users DROP COLUMN phone;
,重命名表:RENAME TABLE users TO userinfo;
。

数据操作包括增删改查(CRUD),查询数据使用 SELECT
语句,基础语法为 SELECT 字段名列表 FROM 表名 [WHERE 条件] [LIMIT 数量];
,例如查询所有用户:SELECT * FROM users;
,查询指定字段:SELECT username, email FROM users;
,带条件查询:SELECT * FROM users WHERE age > 20;
,限制查询结果数量:SELECT * FROM users LIMIT 10;
,插入数据使用 INSERT INTO
语句,单行插入:INSERT INTO users (username, email, age) VALUES ('张三', 'zhangsan@example.com', 25);
,多行插入:INSERT INTO users (username, email, age) VALUES ('李四', 'lisi@example.com', 30), ('王五', 'wangwu@example.com', 28);
,更新数据使用 UPDATE
语句,语法为 UPDATE 表名 SET 字段名1=新值1, 字段名2=新值2 [WHERE 条件];
,例如修改用户年龄:UPDATE users SET age=26 WHERE username='张三';
,注意:若不添加 WHERE
条件,将更新整表数据,需谨慎使用,删除数据使用 DELETE
语句,语法为 DELETE FROM 表名 [WHERE 条件];
,例如删除指定用户:DELETE FROM users WHERE username='王五';
,同样,WHERE
条件不可省略,否则会清空表数据。
用户权限管理方面,创建用户使用 CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
,CREATE USER 'dev'@'localhost' IDENTIFIED BY 'Dev123!';
,@'localhost'
表示该用户只能从本地登录, 表示可从任意主机远程登录,授权使用 GRANT
语句,语法为 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
,例如授予 dev
用户对 mydb
数据库的所有权限:GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';
,权限列表可以是 SELECT, INSERT, UPDATE, DELETE
等, 表示所有数据库的所有表,刷新权限使授权生效:FLUSH PRIVILEGES;
,撤销权限使用 REVOKE
语句,例如撤销 dev
用户的删除权限:REVOKE DELETE ON mydb.* FROM 'dev'@'localhost';
,删除用户使用 DROP USER '用户名'@'主机名';
,DROP USER 'dev'@'localhost';
。
还有一些实用命令,如查看当前数据库版本:SELECT VERSION();
,查看当前使用的数据库:SELECT DATABASE();
,查看表结构:DESC 表名;
或 SHOW COLUMNS FROM 表名;
,退出 MySQL 命令行:EXIT;
或 QUIT;
。
相关问答 FAQs

-
问:如何修改 MySQL 用户的密码?
答:修改 MySQL 用户密码需使用ALTER USER
或SET PASSWORD
命令,root 用户修改自身密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
;其他用户或 root 用户修改其他用户密码:ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';
,执行后需运行FLUSH PRIVILEGES;
刷新权限使密码生效,若忘记 root 密码,可通过跳过权限表的方式启动 MySQL 服务(如mysqld_safe --skip-grant-tables
),然后登录并修改密码,重启服务后恢复正常。 -
问:MySQL 中如何备份和恢复数据库?
答:备份数据库使用mysqldump
命令,例如备份单个数据库:mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
,执行后会提示输入密码;备份所有数据库:mysqldump -u 用户名 -p --all-databases > all_backup.sql
;备份指定表:mysqldump -u 用户名 -p 数据库名 表名1 表名2 > 表备份.sql
,恢复数据库使用mysql
命令,例如恢复单个数据库:mysql -u 用户名 -p 数据库名 < 备份文件.sql
,需先创建目标数据库(若不存在);恢复时若备份文件包含创建数据库语句(如通过mysqldump -u 用户名 -p 数据库名 --databases > 备份.sql
备份),可直接执行:mysql -u 用户名 -p < 备份文件.sql
,无需提前创建数据库。