数据库介绍
数据库
-
含义:存储和管理数据的仓库,用户可以进行增删改查等操作
-
本质:一款基于网络通信的应用程序
-
分类:
-
关系型数据库:数据之间彼此有关系或约束,通常以表格形式存储,存储类型的限制
eg:mysql,Oracle,db2,sql server
-
非关系型数据库:数据通常以key—value方式存储
eg:redis,mongobd
-
-
特点:
- 持久化存储
- 保证数据的有效性
- 读写速度极高
数据库管理系统
- 本质:管理数据的一个软件
关系型数据库管理系统
- 分类:
- 关系型数据库服务端:负责管理不同的数据库
- 关系型数据库客户端:向服务端传输数据或获取数据
sql介绍
由来:支持多种编程语言来充当客户端操作mysql,采用统一的语言(SQL语句)
作用:实现数据库客户端和服务端之间的通信
MySQL数据库
- 含义:是一个关系型数据库管理系统
- 特点:
- 开源,不用付费
- 使用标准的sql数据语言格式
- 可存放大型数据量,处理上千万条数据
- 可安装在不同的操作系统,提供多种编程语言的操作接口
重要概念
MySQL主要存储引擎
针对不同的数据应该有不同的处理机制来存储,而存储引擎就是不同的处理机制
- innodb:是MySQL5.5版本及之后默认的存储引擎,存储数据更安全
- myisam:是MySQL5.5版本之前默认的存储引擎,速度比innodb更快
- memory:内存引擎(数据全部存放在内存中),断电数据丢失
- blackhole:无论怎么存,都立刻消失(黑洞)
tips:show engines; # 查看引擎
数据介绍
数据类型
- 用途:创建表时,为表中字段设置数据类型
- 原则:够用就行,节省存储空间
- 常用类型:
- 整数:tinyint,int
- 浮点数:decimal,double
- 字符串:char,varchar
- 日期时间:date,time,datetime
- 枚举:enum
- 说明:
- 整型默认情况下是带符号的,存储年龄,等级,id等等
- int(10):括号中数字无作用,因此只需写int
- decimal:decimal(10,2)表示存5位数,小数占2位
- char:固定长度的字符串,若位数不满则自动补空格,默认长度为1
- varchar:可变长度的字符串
- 对于图片、视频等文件,不存储在数据库中,而是上传到服务器,然后在表中存储他的保存路径
- text字符串存储大文本,一般字符超过4000是推荐使用
类型 | 字节大小 | eg |
---|---|---|
date | 4 | '2022-12-09' |
time | 3 | '22:00:00' |
datetime | 8 | '2022-12-09 22:00:00' |
数据约束
-
含义:在限定数据类型的基础上额外增加要求
-
常见约束:
- 主键primary key:物理上存储的顺序,类型为int unsigned
- 非空not null:此字段不能为空
- 唯一unique:此字段值不允许重复
- 默认default:不填写时使用默认值
- unsigned:无符号
- zerofill:宽度超出填充0
- 外键foreign key:对关系字段进行约束,为关系字段填写值时会到关联的表中修改数据,若关联字段不存在则抛出异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~