MySql教程

MySQL数据类型

本文主要是介绍MySQL数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一、整型、非整形
    • 1.整型
    • 2.浮点型
    • 3.字符串类型、二进制数据
    • 3.时间类型
  • 二、约束(constraint)
  • 三、关于数据库中null的理解

一、整型、非整形

1.整型

int、INT
tinyint<smallint<int<bigint (90%)

2.浮点型

(有精度损失的小数)
float<double
带精度的小数
decimal,numeric

3.字符串类型、二进制数据

3.1char vs varchar

char(4)长度为4个字符(不是字节)的数据类型,定长
varchar(4)最多长度为4个字符(不是字节)的数据类型,变长
典型使用char场景:身份证(有字符且定长)、性别(男、女)
剩余场景使用varchar更合适
varchar(有上限)
字符串更长的情况:text smalltext < text <longtext
字符串单引号和双引号都可以
一片文章 ,标题:varchar,正文:text
二进制数据(图片、声音)

3.2二进制数据类型

blob(Binary Large Object)较大的二进制对象
blob < longblob

3.时间类型

date 日期 年月日
time 时间 时分秒
datetime 日期+时间 年于日时分秒
timestamp 时间戳:约等于datetime 年月日时分秒
优点:占用空间较小
缺点:1970.1.1 ~2036-12-31
凡是涉及到时间,都有一个很重要的概念:时区(timezone)
我们的时区:东+8时区、北京时间 “Asia/Shanghai”
数据中表示时间,用一定格式的字符产区表现时间,严格按照该格式去写
“2021-11-20 10:07:18”
重点掌握: int/varchar/blob/date/time/datetime

二、约束(constraint)

用来约定该字段(列)数据的范围,支持哪些数据,不支持那些数据
PK Primary 主键
关系型数据库要求:对于一张表,必须有主键
主键,一条记录的唯一标识,不能重复
通过主见,一定可以确定唯一一条记录
中华人民共和国(抽象成一条记录时),标准意义上,身份证是pk
以银行卡为例,卡号是其pk
实际中还会存在一些复合主键,用过几个字字段的联合,来唯一确定一条记录
实操中,建议主键(pk)使用整形(int、bigint)
配合AI(自动增长)来使用,不会重复
NN :Not Null 勾选上不能为Null,反之,不勾选,允许为NULL
UQ UniQue 唯一的,不能重复
B Binary 二进制显示方式
UN Unisigned 无符号
ZF ZeroFill 用0填充显示
AI Auto Increment 自增
dfault、express该字段的默认值
Comment 该字段的描述

三、关于数据库中null的理解

一条记录中的某个字段为null,一般代表该字段不可知,不可记录
允许nnull&&没有设定default,default就是null
允许null&&设定了default,以设定的default为准
不允许null&&设定了default,以设定的default为准
不允许null&&没有设定default时,没有默认值。

这篇关于MySQL数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!