基础概念
数据库(DataBase,简称DB),用于存储和管理大量数据的仓库。
数据库特点
- 持久化存储数据的。其实数据库就是一个文件系统
- 方便存储和管理数据
- 使用了统一的方式操作数据库-- SQL
数据库有哪些
MYSQL: 开源免费的数据库,小型的数据库。已经被 Oracle 收购了,MySQL6.x 版本也开始收费。Oracle: 收费的大型数据库,Oracle 公司的产品。Oracle 收购SUN 公司,收购 MYSQL。DB2: IBM 公司的数据库产品,收费的。常应用在银行系统中SQLServer: MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具 PowerDesignerSQLite: 嵌人式的小型数据库,应用在手机端。
常用数据库: MYSQL,Oracle
数据库在网站系统中的作用
- 前端页面:展示内容和数据给用户看
- 后台:处理前端发过来的请求,去数据库中查询数据,经过逻辑处理之后响应给前端
- 数据库:存储和管理数据
数据库类型
- 关系型数据库:行与列存储,类似excel表,如MySQL,Oracle,Sql Server,DB2, SQLlite
- 非关系型数据库:key:value方式存储,如Redis、MongoDB
MYSQL介绍
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3wWIuOuW-1688556660244)(assets/1688556538915-13.png)]](https://img-blog.csdnimg.cn/88df2d1f78684eb4af04321db6d83a27.png)
数据库可视化工具
可以使用命令来操作Mysql,但是对于新手来说,直接使用可视化工具来操作Mysql更加方便,下面是两款工具
- SQLyog
- Navicat
Mysql数据库引擎
| MYISAM(早期使用) | INNODB(默认使用) | |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间的大小 | 较小 | 较大,约为2倍 |
使用的区别
MYISAM节约空间,速度较快INNODB安全性高,事务的处理,多表多用户操作
在物理空间存在的位置区别
InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的 ibdata1 文件MYISAM对应文件:*.frm表结构的定义文件;*.MYD数据文件 (data);*.MYI索引文件 (index)
数据表 列的数据类型
数值类型
| 类型 | 说明 | 字节数 | 备注 |
|---|---|---|---|
| tinyint | 十分小的数据 | 1 | |
| smallint | 较小的数据 | 2 | |
| mediumint | 中等大小的数据 | 3 | |
| int | 标准的整数 | 4 | 常用的整数类型 |
| bigint | 较大的数据 | 8 | |
| float | 浮点数 | 4个字节 | |
| double | 浮点数 | 8个字节 | 精度问题较大 |
| decimal | 字符串形式的浮点数 | 金融计算的时候,一般是使用decimal |
字符串类型
| 类型 | 说明 | 字节数 | 备注 |
|---|---|---|---|
| char | 字符串固定大小的 | 0~255 | |
| varchar | 可变字符串 | 0~65535 | 常用的变量,类似String |
| tinytext | 微型文本 | 2^8 -1 | |
| text | 文本串 | 2^16 -1 | 保存大文本 |
时间日期类型
| 类型 | 说明 | 备注 |
|---|---|---|
| date | YYYY-MM-DD 日期格式 | |
| time | HH:mm:ss 时间格式 | |
| datetime | YYYY-MM-DD HH:mm:ss | 最常用的时间格式 |
| timestamp | 时间戳,1970.1.1到现在的毫秒数 | 也较为常用 |
| year | 年份表示 |
二进制类型
用来存储二进制文件,如图片、音乐
| 类型 | 字节数 |
|---|---|
| TinyBlob | 最大255 |
| Blob | 最大65K |
| MediumBlob | 最大16M |
| LongBlob | 最大4G |
null
没有值,未知
数据表 列的属性
Unsigned
- 无符号的整数
- 声明了该列的值不能为负数
zerofill
- 0填充的
- 不足的位数,使用0来填充。如int(3),
8被补充为008
自增
- 通常理解为自增,自动在上一条记录的基础上 + 1
- 通常用来设计主键时使用,必须是整数类型
- 可以自定义设计主键自增的起始值和步长
非空
- 假设设置为
not null,如果不给它赋值,就会报错 - 假设设置为
null,如果不填写值,默认就是null
默认
- 给字段设置默认值
- 如gender,设置默认值为0,如果在插入数据的时候,不填写gender的值,默认填写为0
数据表设计 表的常用字段
id主键version使用乐观锁时使用is_deleted逻辑删除create_time创建时间update_time修改时间














![[论文总结]YOLO v1、YOLO v2、YOLO v3、YOLO v4、YOLOv5](https://img-blog.csdnimg.cn/883af388b4ce4f1e94e381079c6fba26.png)




