2020年10月25日 22:40 __ _ _ _ _

文章配图

点击这里关注”程序员Bob”

文章配图
文章配图

I am not afraid of tomorrow for I have seen yesterday and love
today.我不害怕明天,因为我经历过昨天,又热爱今天。

文章配图

小编有好几天没写MySQL了,还记得在那天晚上突然觉得有点不习惯,怀念平时写文章的那种感觉以及排版带来的美感(虽说小编的排版也属实不咋地
文章配图
文章配图
文章配图
,但还是会经常变变风格啥的,哈哈哈)。

上次小编已经将SQL的 三大操作(库操作,表操作以及数据操作)
简单介绍完啦,后面还会有相关的列类型和列属性以及索引…今天就先来介绍MySQL的列类型啦,说到SQL的数据类型,其实有很多和C语言差不多的,比如整数类型,浮点数类型,字符串类型等等,当然其中也会有改动,都有各自的特点。
这里就先介绍SQL数值类型中的 整数类型和浮点数类型 啦~

文章配图

SQL:数据类型
数据类型: 所谓的数据类型,其实是对数据进行统一的分类,从系统的角度来看是为了能够使用统一的方式进行管理,从而更好的利用有限的空间。

SQL中将数据类型分成了三大类:数值类型,字符集类型和时间日期类型。大致示意图如下:

文章配图

数值型:这一听就知道是数值啦,系统将相关数值分成了整数类型和小数类型。

列类型:整数型

整数型: 存放整型数据,在SQL中更多的是需要考虑如何节省磁盘空间,所以系统将整形细分成了5类:

  1. Tinyint(常用): 使用一个字节存储表示的状态最多为256种(八个字节最大表示256个)

  2. Smallint:使用2个字节存储,表示的状态最多为65536

  3. mediumint:使用3个字节存储

  4. int(常用): 使用四个字节存储

  5. Bigint:使用八个字节存储

文章配图

在表中创建相关整数类型:


--  创建整形 create table my_int( int_1 tinyint, int_2 smallint, int_3 int, int_4 bigint  )charset utf8;
  • 创建一张整形表(如上):插入数据:只能插入范围内的整型

在表中插入相关数据:


 -- 插入数据insert into my_int values (100,100,100,100);  -- 有效数据insert into my_int values ('a','b','199','f');  -- 无效数据insert into my_int values (255,10000,100000,1000000);  -- 错误:超出范围

分别执行如下:

文章配图

在SQL中,数值类型全部都是默认为有符号,比如正负。

而有时候需要使用 无符号数据限定 ,例如需要给数据类型进行限定(使用):int unsigned;- -无符号:

从0开始语句:alter table my_int add int_5 tinyint unsigned;

执行如下:

文章配图

根据需要,有时候会在类型中添加 零填充
,如:zerofill(零填充)→自动变成无符号。其意义(显示宽度):保证数据格式(比如在需要用年月份时)
相关语句:


alter table my_int add int_7 tinyint(2) zerofill;insert into my_int values (1,1,1,1,1,1,1);insert into my_int values (100,100,100,100,100,100,100);

执行如下:

文章配图

To:
在使用整型数据时,需要关注的大概为:如何创建整型表,如何插入整型数据以及需要注意是否为无符号类型,至于对于表的一些操作还是需要大家自己去康康表操作啦,相关表操作:
MySQL基础学习之大战表操作

列类型:浮点数

学过C语言的大概都清楚浮点数类型啦,简单来说就是小数,但在SQL中又有所不同。 小数型: 带有小数点或者范围超出整型的数值范围。
在SQL中:由于系统的需要,将小数细分成两种: 浮点型(小数点浮动,精度有限,且会丢失精度)和定点型(小数点固定,精度固定,不会丢失精度)
浮点型: 浮点型数据是一种精度型数据,因为超出指定范围之后,会丢失精度(自动四舍五入)。 浮点型理论分为两种:

  • float(单精度):占用4个字节存储数据,精度范围大概为7位左右

  • double(双精度):占用8个字节存储数据,精度范围大概为15位左右

**创建浮点数表 **创建浮点数表,浮点的使用方式:直接float表示。用法:float(M,D)【M代表总长度,D代表小数部分长度,整数部分长度为M-D】

相关语句:


-- 浮点数(10位在精度范围之外,6位在精度范围之内)create table my_float(f1 float,f2 float(10,2),f3 float(6,2))charset utf8;

执行如下:

文章配图

插入数据: 可以直接是小数,也可以是科学计数法 浮点型数据的插入:整形部分不能超出长度,但小数部分可以超出长度(系统会自动四舍五入)
相关语句:


-- 插入数据insert into my_float values (1234.10,1234.10,1234.10);-- 符合条件insert into my_float values (123456789,12345678.99,9999.99);-- 最大值insert into my_float values (3e38,3.01e7,1234.56);  -- 科学计数法

上面是符合规范的,下面演示相关错误语句:


-- 超出长度的限制insert into my_float values (123456,1234.12345678,123.1234567);  -- 小数部分可行,整数部分超出(不会报错)insert into my_float values (123456,1234.12,12345.12);  -- 整数部分超出(会报错)

执行如下:

文章配图

文章配图

往期推荐:

洛谷 || 最厉害的学生 2020-10-18

MySQL基础学习之大战数据操作 2020-10-17

关于小编 2020-10-06

为你,千千万万遍.

关注 程序员Bob 公众号,与你一起终生学习

一键三连,就差你了

预览时标签不可点

阅读




__