菜鸟科技网

MySQL所有命令有哪些?

MySQL 是一款广泛使用的开源关系型数据库管理系统,其命令行工具提供了丰富的操作指令,涵盖了数据库的创建、管理、查询、优化等多个方面,以下将详细介绍 MySQL 的常用命令,帮助用户全面掌握其操作方法。

MySQL所有命令有哪些?-图1
(图片来源网络,侵删)

数据库操作命令

在 MySQL 中,数据库是存储数据的基本容器,首先需要连接到 MySQL 服务器,通常使用 mysql -u 用户名 -p 命令,输入密码后进入命令行界面,创建数据库使用 CREATE DATABASE 数据库名;CREATE DATABASE mydb;,若需判断数据库是否存在再创建,可加上 IF NOT EXISTS 子句,删除数据库则使用 DROP DATABASE 数据库名;,该操作不可逆,需谨慎使用,查看所有数据库列表通过 SHOW DATABASES; 命令,选择要操作的数据库使用 USE 数据库名;USE mydb;,之后的所有操作将针对该数据库。

表操作命令

表是数据库中存储数据的结构化对象,创建表时需定义列名、数据类型和约束条件,基本语法为 CREATE TABLE 表名 (列名1 数据类型1 约束1, 列名2 数据类型2 约束2, ...);,创建一个用户表 users,包含 id(自增主键)、name(字符串,非空)、email(唯一)列,命令为:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

查看当前数据库中的所有表使用 SHOW TABLES;,查看表结构通过 DESCRIBE 表名;SHOW COLUMNS FROM 表名;,修改表结构(如添加列)使用 ALTER TABLE 表名 ADD COLUMN 列名 数据类型;,删除列则用 ALTER TABLE 表名 DROP COLUMN 列名;,删除表使用 DROP TABLE 表名;,同样可加 IF EXISTS 避免报错。

数据操作命令(DML)

数据操作语言用于管理表中的数据,插入数据使用 INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);,若插入所有列,可省略列名。INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');,批量插入可使用多组 VALUES,如 INSERT INTO users (name, email) VALUES ('李四', 'lisi@example.com'), ('王五', 'wangwu@example.com');,查询数据是核心操作,基本语法为 SELECT 列名 FROM 表名 WHERE 条件;, 表示所有列,SELECT * FROM users WHERE name = '张三';,更新数据使用 UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;UPDATE users SET email = 'new@example.com' WHERE id = 1;,删除数据使用 DELETE FROM 表名 WHERE 条件;DELETE FROM users WHERE id = 1;,若省略 WHERE 条件将删除所有数据,需特别注意。

MySQL所有命令有哪些?-图2
(图片来源网络,侵删)

数据查询命令(进阶)

查询命令支持复杂的条件筛选和数据处理,使用 ORDER BY 排序结果,如 SELECT * FROM users ORDER BY age DESC; 表示按 age 降序排列。LIMIT 用于限制返回行数,如 SELECT * FROM users LIMIT 10; 返回前 10 行,LIMIT 5, 10 表示从第 6 行开始返回 10 行,聚合函数包括 COUNT()(计数)、SUM()(求和)、AVG()(平均值)、MAX()(最大值)、MIN()(最小值),SELECT COUNT(*) FROM users; 计算用户总数,分组查询使用 GROUP BY,如 SELECT department, COUNT(*) FROM employees GROUP BY department; 按部门统计人数,多表连接查询通过 JOIN 实现,SELECT users.name, orders.order_date FROM users JOIN orders ON users.id = orders.user_id; 关联用户表和订单表。

用户与权限管理命令

MySQL 的安全性依赖于用户权限管理,创建用户使用 CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password123';,授权使用 GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';,权限列表如 SELECT, INSERT, UPDATE, 表示所有数据库和表,GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'localhost';,刷新权限使授权生效,使用 FLUSH PRIVILEGES;,查看用户权限通过 SHOW GRANTS FOR '用户名'@'主机';SHOW GRANTS FOR 'admin'@'localhost';,删除用户使用 DROP USER '用户名'@'主机';

备份与恢复命令

数据备份是保障数据安全的重要措施,备份数据库使用 mysqldump 命令,mysqldump -u 用户名 -p 数据库名 > 备份文件.sql;,备份所有数据库可加 --all-databases 参数,恢复数据库时,需先创建空数据库,然后使用 mysql -u 用户名 -p 数据库名 < 备份文件.sql; 导入数据,备份单个表可在数据库名后加表名,如 mysqldump -u root -p mydb users > users_backup.sql;

其他常用命令

MySQL 还提供了一些实用命令,查看当前数据库版本使用 SELECT VERSION();,查看当前用户使用 SELECT USER();,显示命令执行时间使用 SET profiling = 1; 开启 profiling,查询后通过 SHOW PROFILE; 查看,退出 MySQL 命令行使用 EXIT;QUIT;

MySQL所有命令有哪些?-图3
(图片来源网络,侵删)

数据类型与约束总结

类型分类 常用数据类型 说明
数值类型 INT, FLOAT, DECIMAL 存储整数、浮点数、精确小数
字符串类型 VARCHAR, CHAR, TEXT 存储变长字符串、定长字符串、长文本
日期时间类型 DATE, DATETIME, TIMESTAMP 存储日期、日期时间、时间戳
约束条件 PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY 主键、非空、唯一、外键约束

相关问答FAQs

Q1: 如何重置 MySQL 的 root 密码?
A1: 若忘记 root 密码,可通过以下步骤重置:1. 停止 MySQL 服务(Linux 下使用 sudo systemctl stop mysql,Windows 通过服务管理器停止);2. 以安全模式启动 MySQL,跳过权限表检查,Linux 下执行 sudo mysqld_safe --skip-grant-tables &;3. 无密码登录 MySQL,使用 mysql -u root;4. 执行 UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; 更新密码;5. 刷新权限 FLUSH PRIVILEGES; 并重启 MySQL 服务。

Q2: MySQL 中如何优化慢查询?
A2: 优化慢查询可从以下方面入手:1. 使用 EXPLAIN 分析查询执行计划,检查是否使用了索引、是否存在全表扫描;2. 为频繁查询的列、连接条件、排序条件添加索引,CREATE INDEX idx_name ON users(name);;3. 避免在 WHERE 子句中对列进行函数操作或表达式计算,以免导致索引失效;4. 优化 SQL 语句,避免使用 SELECT *,只查询必要字段;5. 对于大数据量表,考虑分库分表或使用缓存(如 Redis)减少数据库压力。

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