mysql基本结构及操作

MySQL 基本结构

MySQL 是一种关系型数据库管理系统(RDBMS),其核心结构由多个层次组成,包括逻辑结构和物理结构。以下是 MySQL 的基本组成部分:

数据库(Database)

数据库是 MySQL 的最高层级,用于存储和管理一组相关的数据表。一个 MySQL 实例可以包含多个数据库,每个数据库独立存储。

表(Table)

表是数据库中的核心组件,用于存储结构化数据。表由行(记录)和列(字段)组成,每个列定义了数据类型和约束条件(如主键、外键等)。

列(Column)

列是表的字段,定义了数据的类型和属性。常见的列数据类型包括:

  • 整数类型:INT、TINYINT、BIGINT
  • 字符串类型:VARCHAR、CHAR、TEXT
  • 日期时间类型:DATE、DATETIME、TIMESTAMP
  • 浮点数类型:FLOAT、DOUBLE、DECIMAL

行(Row)

行是表中的一条记录,包含多个列的值。每一行通常通过主键(Primary Key)唯一标识。

索引(Index)

索引用于加速数据检索,类似于书籍的目录。常见的索引类型包括:

  • 主键索引(Primary Key)
  • 唯一索引(Unique Index)
  • 普通索引(Index)
  • 全文索引(Fulltext Index)

视图(View)

视图是基于一个或多个表的虚拟表,不存储实际数据,仅保存查询定义。视图可以简化复杂查询或限制数据访问权限。

存储过程和函数(Stored Procedure & Function)

存储过程和函数是一组预编译的 SQL 语句,可以在数据库中重复调用。存储过程支持参数传递和流程控制(如条件判断、循环)。

触发器(Trigger)

触发器是与表关联的特殊存储过程,在特定事件(如插入、更新、删除)发生时自动执行。

用户和权限(User & Privilege)

MySQL 通过用户和权限系统管理数据库访问。每个用户可以分配特定的权限(如 SELECT、INSERT、UPDATE、DELETE)。

物理文件结构

MySQL 的数据存储在磁盘上的文件中,主要包括:

  • 表结构文件:.frm(MySQL 8.0 后不再使用)
  • 数据文件:.ibd(InnoDB 引擎)、.MYD(MyISAM 引擎)
  • 索引文件:.MYI(MyISAM 引擎)
  • 日志文件:如二进制日志(binlog)、错误日志(error log)

存储引擎

MySQL 支持多种存储引擎,不同引擎具有不同的特性和优化方向:

  • InnoDB:支持事务、行级锁、外键,适用于高并发场景。
  • MyISAM:不支持事务,表级锁,适用于读密集型场景。
  • Memory:数据存储在内存中,速度快但重启后数据丢失。

连接与退出MySQL

连接MySQL服务器:

bash 复制代码
mysql -u username -p
 

输入密码后即可登录。

退出MySQL:

sql 复制代码
exit;
 
sql 复制代码
quit;
 

数据库操作

查看所有数据库:

sql 复制代码
SHOW DATABASES;
 

创建数据库:

sql 复制代码
CREATE DATABASE dbname;
 

删除数据库:

sql 复制代码
DROP DATABASE dbname;
 

选择数据库:

sql 复制代码
USE dbname;
 

表操作

查看当前数据库中的表:

sql 复制代码
SHOW TABLES;
 

创建表:

sql 复制代码
CREATE TABLE tablename (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
);
 

查看表结构:

sql 复制代码
DESCRIBE tablename;
 
sql 复制代码
SHOW COLUMNS FROM tablename;
 

删除表:

sql 复制代码
DROP TABLE tablename;
 

数据操作

插入数据:

sql 复制代码
INSERT INTO tablename (column1, column2, ...) 
VALUES (value1, value2, ...);
 

查询数据:

sql 复制代码
SELECT column1, column2, ... FROM tablename WHERE condition;
 

更新数据:

sql 复制代码
UPDATE tablename 
SET column1 = value1, column2 = value2, ...
WHERE condition;
 

删除数据:

sql 复制代码
DELETE FROM tablename WHERE condition;
 

索引操作

创建索引:

sql 复制代码
CREATE INDEX indexname ON tablename (column1, column2, ...);
 

删除索引:

sql 复制代码
DROP INDEX indexname ON tablename;
 

用户与权限管理

创建用户:

sql 复制代码
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
 

授予权限:

sql 复制代码
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host';
 

撤销权限:

sql 复制代码
REVOKE ALL PRIVILEGES ON dbname.* FROM 'username'@'host';
 

删除用户:

sql 复制代码
DROP USER 'username'@'host';
 

事务操作

开始事务:

sql 复制代码
START TRANSACTION;
 

提交事务:

sql 复制代码
COMMIT;
 

回滚事务:

sql 复制代码
ROLLBACK;
 

备份与恢复

备份数据库:

bash 复制代码
mysqldump -u username -p dbname > backup.sql
 

恢复数据库:

bash 复制代码
mysql -u username -p dbname < backup.sql
 
相关推荐
心梦缘-雪雁1 小时前
SQL Server 查询数据存在哪个表里
数据库
lusklusklusk2 小时前
Python 巡检脚本:进程运行状态、数据库写入时效检查及邮件通知与告警
数据库·python·oracle
GeW2 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
SelectDB2 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
曼岛_2 小时前
[图解密码学]第4章 古典密码
java·数据库·密码学
瀚高PG实验室3 小时前
HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理
数据库·postgresql·瀚高数据库
龙腾AI白云3 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
数据库·python·机器学习·知识图谱
KaiwuDB4 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
数字新视界4 小时前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
学IT的周星星5 小时前
LangGraph:用「流程图」的方式编排 Agent
数据库·人工智能·大模型·llm·流程图·agent