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