mysql基本结构及操作

MySQL 基本结构

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

数据库(Database)

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

表(Table)

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

列(Column)

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

  • 整数类型:INTTINYINTBIGINT
  • 字符串类型:VARCHARCHARTEXT
  • 日期时间类型:DATEDATETIMETIMESTAMP
  • 浮点数类型:FLOATDOUBLEDECIMAL

行(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
 
相关推荐
martin10174 分钟前
Oracle 11g 数据库卡顿排查与实战优化:一次真实的慢 SQL 定位全过程
数据库·后端
Linux Huang6 分钟前
spring注册组件/服务无效,问题排查
大数据·服务器·数据库·spring
SweetCode11 分钟前
汉诺塔问题
android·java·数据库
橙汁味的风25 分钟前
4数据库安全性
数据库·oracle
天竺鼠不该去劝架30 分钟前
传统财务管理瓶颈:财务机器人如何提升效率
大数据·数据库·人工智能
码农爱学习31 分钟前
嵌入式Linux利用core-dump文件和gdb工具分析程序崩溃问题
linux·数据库·postgresql
猿小喵1 小时前
MySQL数据库binlog解析
数据库·mysql
橙汁味的风1 小时前
6关系数据理论
数据库
牛魔王_11 小时前
SqlServer 大数据量分页查询
数据库·sqlserver·分页·查询·翻页
醉风塘1 小时前
MongoDB持久化深度解析:从数据安全到性能平衡的艺术
数据库·mongodb