无论是数据库管理员、开发人员还是数据分析师,熟练掌握MySQL命令语句都是提升工作效率、优化数据管理和实现复杂查询的基础
本文将全面而深入地总结MySQL中的核心命令语句,帮助读者从入门到精通,高效管理MySQL数据库
一、数据库与表的管理 1. 创建数据库与表 sql CREATE DATABASE database_name; 此命令用于创建一个新的数据库
创建表则使用`CREATE TABLE`语句,需指定表名、列名及其数据类型: sql CREATE TABLE table_name( column1 datatype constraints, column2 datatype constraints, ... ); 例如,创建一个用户信息表: sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 2. 查看数据库与表结构 sql SHOW DATABASES; 显示所有数据库
查看特定数据库中的表: sql USE database_name; SHOW TABLES; 查看表结构: sql DESCRIBE table_name; 或 sql SHOW COLUMNS FROM table_name; 3. 修改与删除 修改表结构常用`ALTER TABLE`,如添加列: sql ALTER TABLE table_name ADD column_name datatype constraints; 删除列: sql ALTER TABLE table_name DROP COLUMN column_name; 删除数据库或表: sql DROP DATABASE database_name; DROP TABLE table_name; 二、数据操作 1.插入数据 sql INSERT INTO table_name(column1, column2,...) VALUES(value1, value2,...); 批量插入: sql INSERT INTO table_name(column1, column2,...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...; 2. 查询数据 基本的`SELECT`语句: sql SELECT column1, column2, ... FROM table_name; 条件查询: sql SELECT column1, column2, ... FROM table_name WHERE condition; 排序与限制结果集: sql SELECT column1, column2, ... FROM table_name ORDER BY column_name【ASC|DESC】 LIMIT number; 聚合函数与分组: sql SELECT COUNT(), AVG(column_name), SUM(column_name), MAX(column_name), MIN(column_name) FROM table_name GROUP BY column_name; 3. 更新数据 sql UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 4. 删除数据 sql DELETE FROM table_name WHERE condition; 三、高级查询与优化 1. 连接查询 内连接: sql SELECT a.column1, b.column2, ... FROM table1 a INNER JOIN table2 b ON a.common_field = b.common_field; 左连接: sql SELECT a.column1, b.column2, ... FROM table1 a LEFT JOIN table2 b ON a.common_field = b.common_field; 右连接与全连接类似,只是方向不同
2. 子查询 在`SELECT`、`FROM`、`WHERE`等子句中使用子查询: sql SELECT column1 FROM table_name WHERE column2 IN(SELECT column2 FROM another_table WHERE condition); 3.索引与性能优化 创建索引以加速查询: sql CREATE INDEX index_name ON table_name(column_name); 删除索引: sql DROP INDEX index_name ON table_name; 分析表并优化: sql ANALYZE TABLE table_name; OPTIMIZE TABLE table_name; 4. 事务处理 MySQL支持ACID特性的事务处理,确保数据的一致性和完整性
使用`START TRANSACTION`、`COMMIT`和`ROLLBACK`控制事务: sql START TRANSACTION; -- SQL statements COMMIT; --提交事务 -- 或 ROLLBACK; -- 回滚事务 四、用户与权限管理 1. 创建与删除用户 sql CREATE USER username@host IDENTIFIED BY password; DROP USER username@host; 2.授予与撤销权限 sql GRANT ALL PRIVILEGES ON database_name. TO username@host; REVOKE ALL PRIVILEGES ON database_name. FROM username@host; 精细控制权限,如只授予SELECT权限: sql GRANT SELECT ON database_name. TO username@host; 3.刷新权限 更改权限后,执行以下命令使更改生效: sql FLUSH