Mysql数据库入门——常用基础命令及案例

Mysql数据库入门——常用基础命令及案例
最新回答
你好调皮

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支持等

  • 学习资源推荐

    官方文档:

    https://dev.mysql.com/doc/

    经典书籍:《高性能MySQL》, 《MySQL技术内幕》

    在线教程:MySQL官方教程, W3School MySQL教程

  • 进阶学习方向

    数据库性能调优

    高可用解决方案

    分库分表策略

    NoSQL与MySQL结合使用

以上是MySQL数据库入门常用的基础命令及案例,涵盖了从基础操作到高级应用的多个方面。