MySQL 数据库的常用操作命令大全

以下是 MySQL 数据库的常用操作命令大全,涵盖了数据库的创建、查询、更新、删除、表结构操作、事务管理、用户和权限管理等方面的操作。

1. 数据库操作

命令 说明
CREATE DATABASE dbname; 创建数据库
SHOW DATABASES; 显示所有数据库
USE dbname; 选择数据库
DROP DATABASE dbname; 删除数据库
SHOW TABLES; 显示当前数据库中的所有表
SELECT DATABASE(); 显示当前使用的数据库

2. 表操作

命令 说明
CREATE TABLE table_name (column_name1 datatype, column_name2 datatype, ...); 创建表
SHOW CREATE TABLE table_name; 查看表的创建语句
DESC table_name; 查看表结构
ALTER TABLE table_name ADD column_name datatype; 添加新列
ALTER TABLE table_name DROP column_name; 删除列
ALTER TABLE table_name MODIFY column_name datatype; 修改列的类型
ALTER TABLE table_name RENAME TO new_table_name; 重命名表
DROP TABLE table_name; 删除表

3. 数据操作(增删改查)

插入数据
命令 说明
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 插入一行数据
INSERT INTO table_name VALUES (value1, value2, ...); 插入一行数据(按列顺序)
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...), (value1, value2, ...); 插入多行数据
查询数据
命令 说明
SELECT * FROM table_name; 查询表中所有列的所有行
SELECT column1, column2 FROM table_name; 查询指定列的数据
SELECT DISTINCT column1 FROM table_name; 查询某列的唯一值
SELECT * FROM table_name WHERE condition; 带条件查询
`SELECT * FROM table_name ORDER BY column1 [ASC DESC];`
SELECT * FROM table_name LIMIT offset, row_count; 分页查询
SELECT COUNT(*) FROM table_name; 查询表中数据的条数
SELECT column1, AVG(column2) FROM table_name GROUP BY column1; 按某列分组后聚合查询
更新数据
命令 说明
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; 更新指定行的数据
UPDATE table_name SET column1 = value1; 更新表中所有行的数据
删除数据
命令 说明
DELETE FROM table_name WHERE condition; 删除指定行
DELETE FROM table_name; 删除所有数据(不删除表结构)
TRUNCATE TABLE table_name; 清空表(并重置自增主键)

4. 表连接(JOIN)

命令 说明
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; 内连接
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column; 左连接
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column; 右连接
SELECT * FROM table1 CROSS JOIN table2; 笛卡尔积(交叉连接)

5. 索引操作

命令 说明
CREATE INDEX index_name ON table_name (column_name); 创建普通索引
CREATE UNIQUE INDEX index_name ON table_name (column_name); 创建唯一索引
SHOW INDEX FROM table_name; 查看表的索引
DROP INDEX index_name ON table_name; 删除索引

6. 视图操作

命令 说明
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition; 创建视图
DROP VIEW view_name; 删除视图
SHOW FULL TABLES WHERE TABLE_TYPE = 'VIEW'; 查看当前数据库的所有视图

7. 事务管理

命令 说明
START TRANSACTION; 开始一个事务
COMMIT; 提交事务
ROLLBACK; 回滚事务
SAVEPOINT savepoint_name; 创建一个事务保存点
ROLLBACK TO SAVEPOINT savepoint_name; 回滚到某个保存点
RELEASE SAVEPOINT savepoint_name; 删除一个保存点

8. 用户和权限管理

用户操作
命令 说明
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 创建用户
DROP USER 'username'@'host'; 删除用户
RENAME USER 'old_user'@'host' TO 'new_user'@'host'; 重命名用户
SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password'); 修改用户密码
权限管理
命令 说明
GRANT ALL PRIVILEGES ON database.* TO 'username'@'host'; 授予用户所有权限
GRANT SELECT, INSERT ON database.* TO 'username'@'host'; 授予用户查询和插入权限
REVOKE ALL PRIVILEGES ON database.* FROM 'username'@'host'; 撤销用户的所有权限
SHOW GRANTS FOR 'username'@'host'; 显示用户的权限
FLUSH PRIVILEGES; 刷新权限,使权限更改生效

9. 备份与恢复

备份
命令 说明
mysqldump -u username -p database_name > backup_file.sql 备份整个数据库到 SQL 文件
mysqldump -u username -p --all-databases > all_databases_backup.sql 备份所有数据库
恢复
命令 说明
mysql -u username -p database_name < backup_file.sql 从 SQL 文件恢复数据库
mysql -u username -p < all_databases_backup.sql 恢复所有数据库

10. 其他常用命令

命令 说明
SHOW STATUS; 显示数据库运行状态
SHOW VARIABLES; 显示数据库系统变量
SHOW PROCESSLIST; 显示当前正在执行的线程
KILL thread_id; 杀死指定的线程
EXPLAIN SELECT * FROM table_name; 分析查询语句的执行计划
SHOW ERRORS; 显示错误信息
SHOW WARNINGS; 显示警告信息

这些命令涵盖了 MySQL 数据库的基本操作,可以帮助你管理数据库、表、数据和用户权限等

相关推荐
明月看潮生1 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原
数据库·青少年编程·postgresql·编程与数学
明月看潮生1 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 14课题、触发器的编写
数据库·青少年编程·postgresql·编程与数学
加酶洗衣粉5 小时前
MongoDB部署模式
数据库·mongodb
Suyuoa5 小时前
mongoDB常见指令
数据库·mongodb
添砖,加瓦5 小时前
MongoDB详细讲解
数据库·mongodb
Zda天天爱打卡5 小时前
【趣学SQL】第二章:高级查询技巧 2.2 子查询的高级用法——SQL世界的“俄罗斯套娃“艺术
数据库·sql
我的运维人生5 小时前
MongoDB深度解析与实践案例
数据库·mongodb·运维开发·技术共享
步、步、为营6 小时前
解锁.NET配置魔法:打造强大的配置体系结构
数据库·oracle·.net
张3蜂6 小时前
docker Ubuntu实战
数据库·ubuntu·docker
神仙别闹7 小时前
基于Andirod+SQLite实现的记账本APP
数据库·sqlite