您的位置:首页 > 数据库 > MySQL

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

2017-10-21 19:38 465 查看

列类型

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

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;




插入数据:可以直接是小数,也可以是科学记数法。

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

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

定点型

定点型:绝对的保证整数部分不回被四舍五入(不会丢失精度),小数部分有可能(理论小数部分也不会丢失精度)

插入数据:定点数的整数部分一定不能超出长度(进位也不可以),小数部分的长度可以随意超出(系统自动四舍五入)。

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

数据需要精确,一定要定点,如果数据需要粗略的、比较大的,用浮点数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql