2026-10-29 22:01:04
MySQL数据库入门常用基础命令及案例如下:
数据库连接与选择
连接MySQL数据库:mysql -u 用户名 -p
选择数据库:USE 数据库名;
表操作
创建表:
CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ...);查看表结构:DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名;
删除表:DROP TABLE 表名;
数据操作
插入数据:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);查询数据:
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件];更新数据:
UPDATE 表名 SET 列名1=值1, 列名2=值2, ... [WHERE 条件];删除数据:
DELETE FROM 表名 [WHERE 条件];高级查询
条件查询:使用 WHERE 子句结合比较运算符(如 =, >, <, <>)和逻辑运算符(如 AND, OR, NOT)。
排序:SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];
分组:SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;
限制结果集:SELECT * FROM 表名 LIMIT 偏移量, 行数;(MySQL特有)
表连接
内连接:SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名=表2.列名;
左外连接:SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名=表2.列名;
右外连接:SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名=表2.列名;
索引操作
创建索引:
CREATE INDEX 索引名 ON 表名 (列名);查看索引:SHOW INDEX FROM 表名;
删除索引:DROP INDEX 索引名 ON 表名;
事务处理
开始事务:START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;
视图操作
创建视图:
CREATE VIEW 视图名 AS SELECT 语句;查看视图:SHOW CREATE VIEW 视图名;
删除视图:DROP VIEW 视图名;
存储过程与函数
创建存储过程:
DELIMITER //CREATE PROCEDURE 过程名(参数列表)BEGIN SQL语句;END //DELIMITER ;调用存储过程:CALL 过程名(参数);
创建函数:
DELIMITER //CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN DECLARE 变量名 数据类型; SQL语句; RETURN 返回值;END //DELIMITER ;调用函数:SELECT 函数名(参数);
触发器操作
创建触发器:
DELIMITER //CREATE TRIGGER 触发器名BEFORE/AFTER INSERT/UPDATE/DELETE ON 表名FOR EACH ROWBEGIN SQL语句;END //DELIMITER ;查看触发器:SHOW TRIGGERS;
删除触发器:DROP TRIGGER 触发器名;
数据库备份与恢复
备份数据库:mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
恢复数据库:mysql -u 用户名 -p 数据库名 < 备份文件.sql
性能优化
使用 EXPLAIN 分析查询执行计划:EXPLAIN SELECT 语句;
优化查询语句,避免全表扫描。
合理使用索引,避免过多索引影响写入性能。
安全设置
创建用户:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';授予权限:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';删除用户:DROP USER '用户名'@'主机名';
常用函数
字符串函数:CONCAT(), SUBSTRING(), LENGTH(), UPPER(), LOWER()
数值函数:ROUND(), CEILING(), FLOOR(), ABS(), MOD()
日期函数:NOW(), CURDATE(), CURTIME(), DATE_FORMAT(), DATEDIFF()
聚合函数:COUNT(), SUM(), AVG(), MAX(), MIN()
条件函数:IF(), CASE WHEN, COALESCE(), NULLIF()
数据类型选择
整数类型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
小数类型:FLOAT, DOUBLE, DECIMAL
字符串类型:CHAR, VARCHAR, TEXT, BLOB
日期时间类型:DATE, TIME, DATETIME, TIMESTAMP, YEAR
枚举与集合类型:ENUM, SET
约束条件
主键约束:PRIMARY KEY
外键约束:FOREIGN KEY
唯一约束:UNIQUE
非空约束:NOT NULL
默认值约束:DEFAULT
自增约束:AUTO_INCREMENT
检查约束:CHECK(MySQL 8.0+支持)
数据库设计原则
规范化设计:遵循第一范式(1NF)、第二范式(2NF)、第三范式(3NF)
适当冗余:在必要时可适当冗余数据以提高查询性能
索引优化:为常用查询条件创建合适的索引
分区策略:对大表考虑使用分区表提高管理效率
常用系统命令
查看数据库列表:SHOW DATABASES;
查看表列表:SHOW TABLES;
查看服务器状态:SHOW STATUS;
查看进程列表:SHOW PROCESSLIST;
查看变量设置:SHOW VARIABLES;
错误处理
查看错误信息:SHOW ERRORS;
查看警告信息:SHOW WARNINGS;
使用 TRY...CATCH 结构处理存储过程中的错误(MySQL 8.0+)
字符集与排序规则
设置数据库字符集:
CREATE DATABASE 数据库名 CHARACTER SET 字符集名 COLLATE 排序规则;设置表字符集:
CREATE TABLE 表名 (...) CHARACTER SET 字符集名 COLLATE 排序规则;常用字符集:utf8, utf8mb4, latin1
常用排序规则:utf8_general_ci, utf8mb4_unicode_ci
复制与集群
主从复制配置
读写分离实现
集群管理基本概念
监控与维护
性能监控:使用 SHOW STATUS 和 SHOW VARIABLES
日志管理:二进制日志、慢查询日志、错误日志
定期维护:ANALYZE TABLE, OPTIMIZE TABLE, CHECK TABLE
实用技巧
使用 LIMIT 分页查询
使用 UNION 合并结果集
使用 EXISTS 替代 IN 进行大数据量子查询
使用 JOIN 替代子查询提高性能
常见问题解决
解决乱码问题:统一客户端、连接、服务器字符集设置
解决锁等待超时:优化事务,减少锁持有时间
解决连接数过多:调整 max_connections 参数
最佳实践
为表添加注释:CREATE TABLE 表名 (...) COMMENT='表注释';
为列添加注释:列名 数据类型 COMMENT '列注释'
使用一致的命名规范
编写清晰的SQL文档
开发工具集成
常用GUI工具:MySQL Workbench, Navicat, HeidiSQL
命令行工具:mysql, mysqldump
编程语言连接:JDBC, ODBC, Python MySQL Connector等
版本特性
MySQL 5.7与8.0的主要区别
新版本特性:窗口函数、CTE、JSON支持等
学习资源推荐
官方文档:
经典书籍:《高性能MySQL》, 《MySQL技术内幕》
在线教程:MySQL官方教程, W3School MySQL教程
进阶学习方向
数据库性能调优
高可用解决方案
分库分表策略
NoSQL与MySQL结合使用
以上是MySQL数据库入门常用的基础命令及案例,涵盖了从基础操作到高级应用的多个方面。