无论是构建复杂的企业级应用,还是开发轻量级网站,MySQL都能提供强大的支持
而要高效地使用 MySQL,掌握一系列常用数据库命令是基础中的基础
本文将深入介绍 MySQL 的核心命令,帮助你从数据创建到维护,全面掌控你的数据库环境
一、数据库与表的创建与管理 1. 创建数据库 sql CREATE DATABASE database_name; 这是创建新数据库的最基本命令
在执行此命令前,确保你有足够的权限
`database_name` 应替换为你希望创建的数据库名称
2. 删除数据库 sql DROP DATABASE database_name; 当某个数据库不再需要时,可以使用此命令将其删除
注意,此操作不可逆,会永久删除数据库及其所有数据
3. 使用数据库 sql USE database_name; 在执行表或数据的操作前,需先选择目标数据库
4. 创建表 sql CREATE TABLE table_name( column1 datatype constraints, column2 datatype constraints, ... ); 创建表时,需定义表名及各列的数据类型和约束条件(如 PRIMARY KEY, NOT NULL 等)
例如: sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 5. 删除表 sql DROP TABLE table_name; 删除表会永久移除该表及其所有数据,操作需谨慎
6. 修改表结构 -添加列: sql ALTER TABLE table_name ADD column_name datatype constraints; -删除列: sql ALTER TABLE table_name DROP COLUMN column_name; -修改列: sql ALTER TABLE table_name MODIFY COLUMN column_name new_datatype new_constraints; -重命名列(MySQL 5.7+ 支持): sql ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name new_datatype new_constraints; -重命名表: sql ALTER TABLE old_table_name RENAME TO new_table_name; 二、数据操作 1. 插入数据 sql INSERT INTO table_name(column1, column2,...) VALUES(value1, value2,...); 例如: sql INSERT INTO users(username, email) VALUES(john_doe, john@example.com); 2. 查询数据 sql SELECT column1, column2, ... FROM table_name WHERE condition; `SELECT` 可用来选择所有列
例如: sql SELECT - FROM users WHERE username = john_doe; 3. 更新数据 sql UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 例如: sql UPDATE users SET email = john_new@example.com WHERE username = john_doe; 4. 删除数据 sql DELETE FROM table_name WHERE condition; 例如: sql DELETE FROM users WHERE username = john_doe; 5. 批量插入数据 sql INSERT INTO table_name(column1, column2,...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...; 三、高级查询与优化 1. 聚合函数 -COUNT():计数 -SUM():求和 -AVG():平均值 -- MAX() 和 MIN():最大值和最小值 例如: sql SELECT COUNT() FROM users; 2. 分组与排序 -GROUP BY:按指定列分组 -ORDER BY:按指定列排序(ASC 升序,DESC 降序) 例如: sql SELECT username, COUNT() FROM users GROUP BY username ORDER BY COUNT() DESC; 3. JOIN 操作 -INNER JOIN:内连接,返回两个表中匹配的记录 -LEFT JOIN:左连接,返回左表中的所有记录及右表中匹配的记录 -RIGHT JOIN:右连接,返回右表中的所有记录及左表中匹配的记录 -FULL OUTER JOIN(MySQL 不直接支持,需通过 UNION 模拟) 例如: sql SELECT users.username, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id; 4. 索引管理 -创建索引: sql CREATE INDEX index_name ON table_name(column1, column2,...); -删除索引: sql DROP INDEX index_name ON table_name; 索引能显著提高查询性能,但也会增加写操作的开销,因此需根据实际情况合理创建
5. 优化查询 使用`EXPLAIN` 命令分析查询计划,找出性能瓶颈
例如: sql EXPLAIN SELECT - FROM users WHERE username = john_doe; 四、备份与恢复 1. 数据导出 使用`mysqldump` 工具导出数据库或表: bash mysqldump -u username -p database_name > backup_file.sql 2. 数据导入 将导出的 SQL 文件导入到数据库中: bash mysql -u username -p database_name < backup_file.sql 五、安全与维护 1. 用户管理 -创建用户: sql CREATE USER username@host IDENTIFIED BY password; -授权: sql GRANT ALL PRIVILEGES ON database_name. TO username@host; -撤销权限: sql REVOKE ALL PRIVILEGES ON database_name. FROM username@host; -删除用户: sql DROP USER username@host; 2. 数据库维护 -检查表: sql CHECK TABLE