菜鸟科技网

MySQL常见命令有哪些核心用法?

MySQL作为全球最受欢迎的开源关系型数据库管理系统之一,其命令行操作是数据库管理员和开发人员必备的核心技能,掌握MySQL常见命令不仅能高效管理数据库,还能在开发过程中快速调试和优化数据操作,以下从连接数据库、用户管理、数据库操作、表操作、数据操作、权限管理、备份恢复等多个维度,详细解析MySQL的常见命令及其使用场景。

MySQL常见命令有哪些核心用法?-图1
(图片来源网络,侵删)

连接数据库是所有操作的前提,在命令行中,使用mysql -h主机名 -u用户名 -p密码命令可以连接到MySQL服务器。mysql -hlocalhost -uroot -p123456表示以root用户身份连接到本地MySQL服务器,若需连接远程服务器,需将-h参数后的值替换为远程IP地址,同时确保防火墙允许3306端口(MySQL默认端口)的访问,连接成功后,可通过mysql -u用户名 -p命令先输入用户名,再在提示时输入密码,这种方式更安全,避免密码直接显示在命令历史中。

用户管理是数据库安全的重要环节,创建用户使用CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';命令,例如CREATE USER 'test'@'localhost' IDENTIFIED BY 'Test123!';创建了一个仅能从本地连接的test用户,修改用户密码则通过ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';实现,如ALTER USER 'test'@'localhost' IDENTIFIED BY 'NewPass456!';,删除用户使用DROP USER '用户名'@'主机名';,需注意删除前需确认该用户无正在运行的重要操作,用户权限管理是核心,使用GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';授予权限,例如GRANT SELECT, INSERT ON testdb.* TO 'test'@'localhost';授予test用户对testdb数据库所有表的查询和插入权限,权限撤销使用REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';,权限修改后需执行FLUSH PRIVILEGES;使权限立即生效。

数据库操作是管理数据的基础,创建数据库使用CREATE DATABASE 数据库名 CHARACTER SET 字符集;,例如CREATE DATABASE mydb CHARACTER SET utf8mb4;创建了一个使用utf8mb4字符集的mydb数据库,查看所有数据库通过SHOW DATABASES;命令,而SHOW CREATE DATABASE 数据库名;可查看数据库的创建语句,包括字符集和排序规则,删除数据库使用DROP DATABASE 数据库名;,此操作不可逆,会删除数据库中的所有数据,切换当前数据库通过USE 数据库名;,例如USE mydb;后,所有后续操作将默认作用于mydb数据库。

表操作是数据结构管理的核心,创建表需定义表结构,语法为CREATE TABLE 表名 (字段名1 数据类型1 [约束条件1], 字段名2 数据类型2 [约束条件2], ...);,例如创建用户表CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, age INT);,其中包含自增主键、非空约束和唯一约束,查看当前数据库的所有表使用SHOW TABLES;DESC 表名;SHOW COLUMNS FROM 表名;可查看表结构,修改表结构使用ALTER TABLE 表名 操作;,常见操作包括添加字段(ADD COLUMN 字段名 数据类型 [约束])、修改字段(MODIFY COLUMN 字段名 新数据类型 [新约束])、删除字段(DROP COLUMN 字段名)和修改表名(RENAME TO 新表名),删除表使用DROP TABLE 表名;,若需判断表是否存在再删除,可使用DROP TABLE IF EXISTS 表名;

MySQL常见命令有哪些核心用法?-图2
(图片来源网络,侵删)

数据操作是数据库应用的核心功能,插入数据使用INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);,例如INSERT INTO users (username, email, age) VALUES ('张三', 'zhangsan@example.com', 25);,若插入所有字段的值,可省略字段名列表,但需确保值的顺序与表结构一致,查询数据是常用操作,基础语法为SELECT 字段名列表 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组条件 ORDER BY 排序字段 LIMIT 记录数;,例如SELECT username, age FROM users WHERE age > 20 ORDER BY age DESC LIMIT 10;查询年龄大于20的用户,按年龄降序排列,返回前10条记录,更新数据使用UPDATE 表名 SET 字段名1=新值1, 字段名2=新值2 WHERE 条件;,例如UPDATE users SET age=26 WHERE username='张三';,注意WHERE条件必不可少,否则将更新全表数据,删除数据使用DELETE FROM 表名 WHERE 条件;,例如DELETE FROM users WHERE username='李四';,同样需使用WHERE条件限制删除范围,否则会清空表数据。

备份与恢复是数据库运维的重要环节,备份数据库使用mysqldump命令,例如mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql备份单个数据库,mysqldump -u用户名 -p密码 --all-databases > all_backup.sql备份所有数据库,恢复数据库时,需先确保目标数据库存在,可通过mysql -u用户名 -p密码 数据库名 < 备份文件.sql命令导入备份文件,对于大型数据库,可使用mysqldump --single-transaction --routines --triggers -u用户名 -p密码 数据库名 | gzip > backup.sql.gz实现压缩备份,减少存储空间占用。

MySQL还提供了一些实用命令用于日常维护。SHOW PROCESSLIST;查看当前数据库中的所有进程,可用于识别长时间运行的查询;KILL 进程ID;终止指定进程;SHOW VARIABLES LIKE '变量名';查看MySQL配置变量,如SHOW VARIABLES LIKE 'character_set_database';查看数据库字符集;SET GLOBAL 变量名=值;临时修改全局变量,重启MySQL后失效,对于性能优化,EXPLAIN SELECT ...;可分析查询执行计划,帮助定位性能瓶颈。

以下为MySQL常见命令的快速参考表格:

MySQL常见命令有哪些核心用法?-图3
(图片来源网络,侵删)
功能分类 命令示例
连接数据库 mysql -hlocalhost -uroot -p123456
创建用户 CREATE USER 'test'@'localhost' IDENTIFIED BY 'Test123!';
授权 GRANT SELECT, INSERT ON testdb.* TO 'test'@'localhost';
创建数据库 CREATE DATABASE mydb CHARACTER SET utf8mb4;
创建表 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50));
插入数据 INSERT INTO users (username) VALUES ('张三');
查询数据 SELECT * FROM users WHERE age > 20;
更新数据 UPDATE users SET age=26 WHERE username='张三';
删除数据 DELETE FROM users WHERE username='李四';
备份数据库 mysqldump -uroot -p mydb > backup.sql
查看表结构 DESC users;

相关问答FAQs

Q1: 如何忘记MySQL root密码时重置密码?
A1: 重置MySQL root密码需以管理员身份操作,首先停止MySQL服务(Linux下使用systemctl stop mysql,Windows下通过服务管理器停止),然后以安全模式启动MySQL,跳过权限表检查:Linux下使用mysqld_safe --skip-grant-tables &,Windows下在命令行中进入MySQL安装目录,执行mysqld --skip-grant-tables,接着使用mysql -u root无密码登录,执行UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';(注意:MySQL 5.7及以上版本,密码字段为authentication_string,旧版本为password),最后执行FLUSH PRIVILEGES;并重启MySQL服务,新密码即可生效。

Q2: 如何优化MySQL查询性能?
A2: 优化MySQL查询性能可从多个方面入手:使用EXPLAIN分析查询执行计划,检查是否使用了索引、是否出现全表扫描(type列显示ALL表示全表扫描),为常用查询条件(如WHERE、JOIN、ORDER BY涉及的字段)创建合适的索引,例如CREATE INDEX idx_username ON users(username);,避免使用SELECT *,只查询必要的字段,减少数据传输量,对于复杂查询,可考虑拆分为多个简单查询或使用临时表,定期使用ANALYZE TABLE 表名;更新表统计信息,确保查询优化器能生成最优执行计划,对于大表,可考虑分区或分表策略,分散数据存储压力。

分享:
扫描分享到社交APP
上一篇
下一篇