以下是 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 数据库的基本操作,可以帮助你管理数据库、表、数据和用户权限等
发表评论 取消回复