【MySQL基础】基础知识了解

基础概念

数据库(DataBase,简称DB),用于存储和管理大量数据的仓库。

数据库特点

  1. 持久化存储数据的。其实数据库就是一个文件系统
  2. 方便存储和管理数据
  3. 使用了统一的方式操作数据库-- SQL

数据库有哪些

  • MYSQL: 开源免费的数据库,小型的数据库。已经被 Oracle 收购了,MySQL6.x 版本也开始收费。
  • Oracle: 收费的大型数据库,Oracle 公司的产品。Oracle 收购SUN 公司,收购 MYSQL。
  • DB2 : IBM 公司的数据库产品,收费的。常应用在银行系统中
  • SQLServer: MicroSoft 公司收费的中型的数据库。C#.net等语言常使用。
  • SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具 PowerDesigner
  • SQLite: 嵌人式的小型数据库,应用在手机端。

常用数据库: MYSQLOracle

数据库在网站系统中的作用

  • 前端页面:展示内容和数据给用户看
  • 后台:处理前端发过来的请求,去数据库中查询数据,经过逻辑处理之后响应给前端
  • 数据库:存储和管理数据

数据库类型

  • 关系型数据库:行与列存储,类似excel表,如MySQL,Oracle,Sql Server,DB2, SQLite
  • 非关系型数据库:key:value方式存储,如Redis、MongoDB

MYSQL介绍

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3wWIuOuW-1688556660244)(assets/1688556538915-13.png)]

数据库可视化工具

可以使用命令来操作Mysql,但是对于新手来说,直接使用可视化工具来操作Mysql更加方便,下面是两款工具

  • SQLyog
  • Navicat

Mysql数据库引擎

MYISAM(早期使用)INNODB(默认使用)
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为2倍

使用的区别

  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,事务的处理,多表多用户操作

在物理空间存在的位置区别

  • InnoDB 在数据库表中只有一个 *.frm 文件,以及上级目录下的 ibdata1 文件
  • MYISAM 对应文件:*.frm表结构的定义文件;*.MYD数据文件 (data);*.MYI索引文件 (index)

数据表 列的数据类型

数值类型

一个字节通常等于8个二进制位,即2^8=256

类型说明字节数备注
tinyint十分小的数据1取值范围 -128 到 127
smallint较小的数据2取值范围 -32768 到 32767
mediumint中等大小的数据3取值范围 -8388608 到 8388607
int标准的整数4常用的整数类型,取值范围 -2147483648 到 2147483647
bigint较大的数据8取值范围 -9223372036854775808 到 9223372036854775807
float浮点数4个字节大约能表示6到7位十进制数
double浮点数8个字节大约能表示15位十进制数
decimal字符串形式的浮点数适合用于货币或其他需要精确计算的场合

float和double是浮点数类型,在表示和存储浮点数时有如下区别:

  • 存储空间:float占用4个字节,而double占用8个字节。因此,double具有更高的精度和范围。

  • 精度:float是单精度浮点数,通常能表示6到7位十进制数。而double是双精度浮点数,占用8个字节,能够提供更高的精度,通常被认为是更准确的浮点数表示方式。

  • 性能:由于float存储更少的数据,所以相对于double来说,运算速度会稍快一些。但是,现代计算机通常能够高效地处理双精度浮点数,差异可能并不明显。

因此,在选择float和double时,需要根据具体的使用情况和所需的精度进行权衡。如果精度要求不高,且存储空间和性能更重要,可以选择float。而如果需要更高的精度,可以选择double。

字符串类型

类型说明字节数备注
char字符串固定大小的0~255
varchar可变字符串0~65535常用的变量,类似String
tinytext微型文本2^8 -1
text文本串2^16 -1保存大文本

时间日期类型

类型说明备注
dateYYYY-MM-DD 日期格式
timeHH:mm:ss 时间格式
datetimeYYYY-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 修改时间
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Dam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值