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学习笔记 1:初涉MySQL、数据类型与操作数据表
- mysql 基本操作 数据类型、常用函数、存储引擎特点 (第二章)
- MySQL数据表相关操作-创建与测试数据类型
- MySQL从入门到放弃第二章:数据类型与操作数据表
- MySQL 数据类型和数据表操作:查找插入记录
- MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- MySQL day1---初涉MySQL 基本操作 数据类型 约束
- mysql 数据类型与操作数据表
- 对MySQL中JSON数据类型的操作和分析
- MySQL数据类型+简单操作
- MySQL(二) —— 数据类型与操作数据表
- MySQL之数据类型与操作数据表
- MySQL学习笔记-数据类型与操作数据表
- MySQL之数据类型与操作数据表
- MySQL数据类型与操作数据表
- MySQL 第一篇:数据类型和操作数据库结构
- MySQL学习笔记2:数据类型与操作数据表
- MySQL——数据类型与操作数据表
- (2)Mysql数据类型以及对数据表的操作
- Mysql表操作和 DECIMAL(N,M)数据类型