当前位置: 首页 > news >正文

初识MySQL,数据库相关概念,库操作,表操作

文章目录

  • MySQL基础
    • 什么是MySQL?
    • 为啥要数据库?
    • 服务器、数据库、表关系三者
    • MySQL的架构
    • SQL语句分类
  • 库的基本操作
    • C 新增/创建一个数据库
    • R 查看数据库
    • U 修改数据库
    • D 删除数据库
    • 备份和恢复数据库
  • 表操作
    • C 创建表
    • R 查看表
    • U 修改表
    • D 删除表

MySQL基础

什么是MySQL?

  • mysqld是数据库的服务端

  • mysql是数据库的客户端

  • mysql是一种基于CS模式,提供了一套数据存储服务的网络服务

  • 而数据库是在磁盘或内存中存储的特定数据结构的方法

MySQL是世界上最受欢迎的免费开源的项目,上手比较简单

为啥要数据库?

文件保存数据存在缺点:

  • 安全性
  • 不利于数据查询和管理–比如我想查询某个字段,很困难
  • 不利于存储海量数据

数据库是为了高效解决数据存储和查询的设计

服务器、数据库、表关系三者

MySQL的架构

详细架构图如下:

注:上图源自网络

初学阶段先理解三层架构:

MySQL是一种网络服务,那么就可以把它当成一家餐厅:

  • 第一层:连接层(前台)

    • 监听新连接,账号密码校验,管理连接
  • 第二层:服务层(后台)

    • 负责所有逻辑处理,不碰真实的数据:
      • 语法检查:保证每条命令的改动都是安全且正确
      • 查询优化:帮助用户选择最高效的方式
      • 权限判断:判断当前操作你是否有权限,无权限直接拦截

    服务层主要负责SQL解析,优化

  • 第三层:存储引擎

    • 真正存数据、读数据的地方
      • InnoDB引擎:支持事务、锁、崩溃恢复
      • MyISAM引擎:不支持事务

    服务层发指令,引擎层去硬盘/内存存取数据

SQL语句分类

DDL:data definition language 数据定义,维护存储数据的结构

DML:data manipulation language 数据操作,对表中数据操作

DCL:data control language 数据控制,权限和事务的管理

库的基本操作

C 新增/创建一个数据库

createdatabasedb_name[各种选项]

在Linux中创建一个目录

这里选项着重介绍一下数据库的两个编码集:

  • 数据库编码集:数据库未来存储数据的编码格式
  • 数据库校验集:数据库读取时采用的编码格式

要保证操作时用的同一个编码格式

# 查看当前的默认字符集和校验集showvariableslike'character_set_database';showvariableslike'collation_database';

R 查看数据库

showdatabases;# 显示所有数据库showcreatedatabasedb_name;# 显示创建数据库时的语句usedb_name;# 使用这个数据库selectdatabase();# 查看当前在哪个数据库

U 修改数据库

alterdatabasedb_name[选项]# 例如修改校验集和字符集alterdatabasetest_dbcharset=gbkcollate=gbk_chinese_ci;

D 删除数据库

dropdatabasedb_name;

删除之后整个目录里的所有文件全没了,不要随意删库

备份和恢复数据库

备份:

mysqldump-P3306-u root-p 密码-B 数据库名1数据库名2...>新的路径

直接把所有有效操作的命令备份了!

只备份一个库里的几个表:

mysqldump-P3306-u root-p 密码-B 数据库名 表一 表二...>新的路径

还原:

source 备份的文件.sql

如果在备份时,没有-B的选项,恢复数据库时,要先创建空的数据库,然后使用这个数据库,再使用source还原

表操作

C 创建表

createtabletable_name(列名 列属性,列名 列属性,列名 列属性)[characterset字符集collate校验集engine存储引擎];

R 查看表

showtables;#查看所有表desctable_name;#查看详细信息showcreatetabletable_name\G;#查看创建时的详细信息

U 修改表

# 新增一列altertabletable_nameadd列名 列属性;# 修改一列的属性altertabletable_namemodify列名 新数据类型;# 删除这一列altertabletable_namedrop列名;# 修改表名称altertabletable_namerenameto新的表名;# 修改列名称altertable_name change 旧列明 新列名 属性;# 指定字段插入insertinto表名字(字段1,字段2...)values(1,2...);# 全列插入,没有省略字段insertinto表名字values(1,2...);

D 删除表

droptabletable_name;

done~

http://www.jsqmd.com/news/707389/

相关文章:

  • 2026年3月景观棚公司推荐,伸缩篷/膜结构车棚/景观棚/电动推拉棚/遮阳棚/停车棚/体育看台,景观棚定做厂家哪家好 - 品牌推荐师
  • 告别alert!用vConsole给你的Vue/React移动端项目做个‘移动版F12’调试面板
  • 机器人定位导航技术:多传感器融合与状态估计算法解析
  • Clang在Dev-C++中如何静态链接标准库
  • IDEA里Maven多模块项目显示多个Root?别慌,三步搞定项目结构混乱
  • JAVA基础之反射
  • H.266/VVC编解码技术解析与开源实现VVenC/VVdeC
  • STM32简介与选型
  • Java的java.lang.foreign优化模式
  • 英语阅读_choosing a career in your future
  • UG/NX二次开发实战:如何为选择对象控件设计一个健壮的“清空”功能(附NX12.0.2.9代码)
  • 别再只把VRRP当主备了!实战配置华为/华三交换机实现负载分担,让网络带宽翻倍
  • KBase 深度解析:蚂蚁数科的金融级知识工程“发动机”
  • idea的java项目如何用exe4j来打包jar成exe并手动配置jre?
  • Transformer模型推理优化实战指南
  • 从‘锯齿波’到‘马鞍波’:一个嵌入式工程师调试异步电机FOC的实战笔记
  • 2026靠谱的黄山市网红民宿怎么选厂家推荐榜,商务型/亲子型/观景型/网红打卡型/经济型厂家选择指南 - 海棠依旧大
  • 用STM32CubeMX和HAL库5分钟搞定TCRT5000循迹小车(附完整代码)
  • Notte框架:混合智能体模式实现低成本高可靠的Web自动化
  • 法律AI实战:基于RAG与大模型微调构建智能法律助手
  • 手把手教你为UniApp微信小程序项目配置安全的WSS WebSocket连接(Vue3版)
  • 2026环保装备数字孪生平台对比选型
  • 本地AI助手AgenticSeek部署指南:私有化自主代理框架实践
  • 机器学习新手必知的10大误区与解决方案
  • JS Agent实战指南:从零构建企业级AI智能体应用
  • 2026市面上成都空调深度清洗公司排行厂家推荐榜,分体式/中央空调/商用中央空调深度清洗厂家选择指南 - 海棠依旧大
  • 告别懵圈!用示波器实测LIN总线报文帧,手把手教你分析同步间隔与校验和
  • 西门子博途V17程序块加密实战:从‘专有技术保护’到‘防拷贝’,手把手教你保护PLC代码(附避坑点)
  • Janus-Pro-7B MySQL数据库优化顾问:慢查询分析与索引建议
  • Arm CMN-600处理器事件接口设计与低功耗优化