MySql(三、列操作和数据类型)

来源:互联网 发布:程序员数学2pdf百度云 编辑:程序博客网 时间:2024/06/08 16:25

列类型

数据类型:对数据进行统一的分类,从系统的角度出发,为了能够使用统一的方式进行管理,更好的利用有限的磁盘空间。

SQL中将数据类型分成了三大类:

1、数值类型2、字符串类型3、时间日期类型

这里写图片描述

1、数值型
数值型数据:都是数值,系统将数值型分为整数型和小数型。
SQL种的数据类型全部都是默认有符号:分正负。

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

tinyint:迷你整型,使用一个字节存储,表示的状态最多为256种(常用)smallint:小整型,使用两个字节存储,表示的状态最多为65536种mediumint:中整型,使用三个字节存储int:标准整型,使用四个字节存储(常用)bigint:大整型,使用八个字节存储可使用unsigned控制是否有正负可以使用zerofill来进行前导零填充

创建一张整型表

--创建一张整型表create table my_int (int_1 tinyint,int_2 smallint,int_3 mediumint,int_4 int,int_5 bigint) charset utf8;

插入数据:只能插入整型,只能插入范围内的数据。

SQL种的数据类型全部都是默认有符号:分正负。
有时候需要使用无符号数据:需要给数据类型限定:int unsigned; –无符号:从0开始。
eg:

--给表增加一个无符号类型alter table my_int add int_6 tinyint unsigned;

这里写图片描述

显示宽度:
查看表结构的时候,发现每个字段的数据类型之后都会自带一个括号,里面有指定的数字。
没有特别的含义,只是默认的告诉用户可以显示的形式而已。实际上用户是可以控制的。

显示宽度并不改变数据的实际大小。
显示宽度的意义:在于当数据不够显示宽度的时候,会自动让数据变成对应的显示宽度。通常需要搭配一个前导0来增加宽度。不改变值大小。前导0叫做zerofill;

小数型
小数型:带有小数点或者范围超出整型的数据类型。
SQL中:将小数型细分为两种:浮点型和定点型。
浮点型:小数点浮动,精度有限,而且会丢失精度(会四舍五入)。
定点型:小数点固定,精度固定,不回丢失精度(不会四舍五入)。

浮点型:
浮点型数据是一种精度型数据:因为超出指定范围之后,会丢失精度(自动四舍五入)
float:单精度,占用4个字节存储数据。
double:双精度,占用8个字节存储数据。

浮点的使用方式:
直接float表示没有小数部分;float(M,D):M代表总长度,D代表小数部分长度。
如果数据要求精度,数据小的时候可以用浮点型,数据大的时候不要用浮点型。

--创建浮点数表:create table my_float(f1 float,f2 float(10,2),f3 float(6,2)) charset utf8;

这里写图片描述

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

浮点数如果是因为系统进位导致整数部分超出指定的长度,那么系统也允许成立。

定点型
定点型:绝对的保证整数部分不回被四舍五入(不会丢失精度),小数部分有可能(理论小数部分也不会丢失精度)
插入数据:定点数的整数部分一定不能超出长度(进位也不可以),小数部分的长度可以随意超出(系统自动四舍五入)。

浮点数因为进位导致长度溢出没有问题,但是定点数不行。

数据需要精确,一定要定点,如果数据需要粗略的、比较大的,用浮点数。

原创粉丝点击