在运维工作中,MySQL常用sql语句有哪些?
在运维工作中,MySQL 的 SQL 语句是数据库管理和维护的重要工具。以下是一些常用的 SQL 语句及其应用场景,按功能分类介绍:
1. 数据库管理
-
查看所有数据库
SHOW DATABASES;
用于列出服务器上所有数据库。
-
创建数据库
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建一个新数据库,并指定字符集和校对规则。
-
删除数据库
DROP DATABASE db_name;
删除一个数据库,需谨慎使用。
-
切换数据库
USE db_name;
切换到指定的数据库。
2. 表管理**
-
查看表结构
DESCRIBE table_name;
或
SHOW COLUMNS FROM table_name;
查看表的字段信息。
-
创建表
CREATE TABLE table_name ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
创建一个新表,并定义字段和约束。
-
删除表
DROP TABLE table_name;
删除表,需谨慎使用。
-
修改表结构
-
添加字段:
ALTER TABLE table_name ADD COLUMN column_name column_type;
-
删除字段:
ALTER TABLE table_name DROP COLUMN column_name;
-
修改字段类型:
ALTER TABLE table_name MODIFY COLUMN column_name column_type;
-
3. 数据查询**
-
基本查询
SELECT * FROM table_name;
查询表中的所有数据。
-
条件查询
SELECT * FROM table_name WHERE column_name = 'value';
根据条件筛选数据。
-
排序查询
SELECT * FROM table_name ORDER BY column_name ASC|DESC;
按字段升序(ASC)或降序(DESC)排序。
-
分组查询
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
按字段分组并统计每组的数量。
-
分页查询
SELECT * FROM table_name LIMIT offset, rows;
分页查询,
offset
是起始位置,rows
是返回的行数。
4. 数据操作
-
插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
插入一行数据。
-
更新数据
UPDATE table_name SET column_name = 'new_value' WHERE condition;
更新符合条件的行。
-
删除数据
DELETE FROM table_name WHERE condition;
删除符合条件的行,需谨慎使用。
5. 索引管理
-
查看索引
SHOW INDEX FROM table_name;
查看表的索引信息。
-
创建索引
CREATE INDEX index_name ON table_name (column_name);
为表创建索引。
-
删除索引
DROP INDEX index_name ON table_name;
删除索引。
6. 用户管理
-
查看用户
SELECT user, host FROM mysql.user;
查看所有用户。
-
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
创建新用户。
-
授权
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'host';
给用户授权。
-
删除用户
DROP USER 'username'@'host';
删除用户。
7. 性能优化
-
查看慢查询
SHOW VARIABLES LIKE 'slow_query_log';
查看慢查询日志是否开启。
-
查看当前会话
SHOW PROCESSLIST;
查看当前数据库连接和会话。
-
查看表大小
SELECT table_name, table_rows, data_length + index_length AS total_size FROM information_schema.tables WHERE table_schema = 'db_name';
查看表的大小和行数。
-
分析表
ANALYZE TABLE table_name;
分析表的统计信息,优化查询性能。
8. 备份与恢复
-
备份数据库
mysqldump -u username -p db_name > backup.sql
使用
mysqldump
工具备份数据库。 -
恢复数据库
mysql -u username -p db_name < backup.sql
将备份文件恢复到数据库。
综上所述,这些 SQL 语句是 MySQL 运维工作中的常用工具,掌握它们可以帮助你高效地管理数据库。