数据库学习之MySQL (二十四)—— DDL(二)数据类型

前言 ´・ᴗ・`

  • 本篇内容将会帮助你学习几乎所有数据库用到的数据类型 并告诉你哪些常用 哪些看看就好

几个基本数据类型

注意varchar(5) 指的是5个字符 不是字节!!事实上一般都是字符 字节也只有我们之前的LENGTH()函数(这么反人类

代码 解释
int 整形
double float 浮点型
char 固定长度的字符串
varchar 可变长度的字符串
text 较长的字符串
date 日期
time 时间
timestamp 时间戳

我们归纳一下…

  • 字符串型
    • 短字符串
      • 可变 varchar(n)
        n: 1~65535
        节省空间
        CPU性能耗损大(要计算)
        适合字符体积变化很大的场合
      • 固定 char(n)
        n:1~255
        节约CPU性能
        空间浪费
        适合固定长度的场合
    • 长字符串
      • blob 音频 图片 视频
      • text 长字段(博文比如)
  • 数值型
    • 整数 INT
    • 小数
      • 浮点数 double
      • 定点数 decimal
        用于精确度稳定的场合 比如钱
  • 日期型
    • 时间戳 timestamp
      受时区影响
    • 时间 datetime
      不受时区影响
    • date 日期
    • time 具体时间时分秒
  • 枚举型 ENUM

时间戳 vs datetime

我们可以创一个表格 一列是时间戳 一个是datetime

CREATE TABLE table1(
	t1 DATETIME,
	t2 TIMESTAMP
);

然后 INSERT INTO table1 VALUES(NOW(),NOW());
table1 就是那刚刚创立的表格

然后 我们利用SET time_zone='+10:00'
更改我们的时区为东10区
我们是东八区 不信的话你就:

SHOW VARIABLES LIKE 'time_zone';

枚举型 ENUM

ENUM enumerate
我们可以限定数据 比如限定有线的情况 性别 男 女:

CREATE TABLE table1(c1 ENUM('男','女'))

整形

其实常用的就是INT(n) n指的是字符 n位数也就是
下面是其他整形类型的大小:
如果insert的数据超过这个范围 就是报out of range 错误

名称 字节数 最大范围
Tinyint 1 2^8
Smallint 2 2^8*2
Mediumint 3 2^8*3
Int/integar 4 2^8*4
Bigint 8 2^8*8

另外提一下两个关键字:

  • UNSIGNED 就是无符号 一般默认是有符号的
    无符号 就是数据大小拓展一倍(原来两倍)
    为啥是两倍?没有符号位嘛

  • ZEROFILL 也就是 filled with zeros 让0填充空位 比如123 -> 00000123 当INT(8)

    扫描二维码关注公众号,回复: 9090663 查看本文章

浮点数 定点数

浮点数 顾名思义 小数点浮动的数值 比如从123.4 -> 123.400 然而定点数就只能是123.4 你加上0.01 还是123.4
这就是钱 特别适合定点数——都是000.00的形式 小数位数固定

详细来说 涉及 计算机组成原理 操作系统

计算机中的数除了整数之外,还有小数。如何确定小数点的位置呢?通常有两种方法:
一种是规定小数点位置固定不变,称为定点数。
另一种是小数点的位置不固定,可以浮动,称为浮点数。

  • 通常用定点数来表示整数和纯小数,分别称为定点整数和定点小数
  • 对于既有整数部分、又有小数部分的数,一般用浮点数表示。
    为啥?方便计算啊
    能用定点数 当然定点CPU计算更少
    不能用定点 那就出大招——浮点运算

定点数运算:
如果同样的小数点位置 直接相加就好了
但是不同小数点位置呢?
浮点数计算可以解决 定点数计算 记录小数点位置的大问题

所以一般 我们实际使用 就用定点纯小数 定点整数 运算方便
不是纯小数或者整数的 就浮点解决

总结 ´◡`

这一节在上一节的基础上 深入讲了讲数据类型 其实用的时候看一下就行 不需要记忆 只需要记住常用的:)
下一站:数据库学习之MySQL (二十五)—— DDL(三)约束 - 列级约束 表级约束 语法

另外,

  • 想系统的学习数据库嘛?
    MySQL专栏

  • python这么火 想要深入学习python 玩一下简单的应用嘛?可以看我专栏 还在持续更新中哦:
    python应用

  • 小孩子才做选择 大人全都要!对后端感兴趣吗?收下它吧:)
    手把手带你学后端(服务端)

  • 谢谢大佬支持! 萌新有礼了:)
    在这里插入图片描述

发布了39 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43178828/article/details/104202053