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 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队1 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光2 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓12012 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色2 小时前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_2 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4532 小时前
管理项目服务器连接数据库
数据库·后端
沙振宇2 小时前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql
杨云龙UP3 小时前
CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程
数据库·oracle
ezl1fe3 小时前
RAG 每日一技(十八):手写SQL-RAG太累?LangChain的SQL智能体(Agent)前来救驾!
数据库·人工智能·后端