06、MySQL—列类型

1、整数类型

I.有符号整型

(1) Tinyint:单字节整形,系统采用一个字节来保存的整形:一个字节 = 8位,最大能表示的数值是0-255.

(2) Smallint:双字节整形,系统采用两个字节来保存的整形:能表示0-65535之间

(3) Mediumint:三字节整形,采用三个字节来保存数据

(4) Int:整形(标准整形),采用四个字节来保存数据

(5) Bigint:大整形,采用八个字节来保存数据。

① 创建数据表

② 插入合理数据

③ 插入错误数据(超出对应的数据范围)

错误原因:并不是说tinyint没有这么大的空间,而是因为mysql默认的为整形增加负数。

实际表示的区间为-128,127

实际应用中,应该根据对应的数据的范围来选定对应的整形类型:通常使用的比较多的TINYINT和int。

II.无符号整型

无符号:表示存储的数据在当前字段中,没有负数(只有正数,区间为0-255)


基本语法:

在类型之后加上一个 unsigned

范例:创建无符号整型数

III 显示长度

显示长度:指数据(整型)在数据显示的时候,到底可以显示多长位。

Tinyint(3): 表示最长可以显示3位,unsigned说明只能是正数,0-255永远不会超过三个长度

Tinyint(4):表示最长可以显示4位,-128~127

显示长度只是代表了数据是否可以达到指定的长度,但是不会自动满足到指定长度:如果想要数据显示的时候,保持最高位(显示长度),那么还需要给字段增加一个zerofill属性才可以。

Zerofill:从左侧开始填充0(左侧不会改变数值大小),所以负数的时候就不能使用zerofill,一旦使用zerofill就相当于确定该字段为unsigned

范例:使用zerofill创建数据

说明:

数据显示的时候,zerofill会在左侧填充0到指定位:如果不足3位,那么填充到3位,如果本身已经够了或者超出,那么就不在填充。

说明:

显示长度可以自己设定:超出长度(但是不超出范围)不会影响,只会对不够长度的进行补充(显示长度)

2、小数类型

专门用来存储小数的;在Mysql中将小数类型又分为两类:浮点型和定点型

I 浮点型

浮点型又称之为精度类型:是一种有可能丢失精度的数据类型,数据有可能不那么准确(由其是在超出范围的时候)

说明:浮点型之所以能够存储较大的数值(不精确),原因就是利用存储数据的位来存储指数

整型:所有位都为1


1


1


1


1


1


1


1

计算结果:

浮点型:有部分用于存储数据,有部分用于存指数


1


1


1


1


1


1


1

前三位转换成十进制之后用作10的指数: 10^7 * 数据值

(1) Float

Float又称之为单精度类型:系统提供4个字节用来存储数据,但是能表示的数据范围比整型大的多,大概是10^38;只能保证大概7个左右的精度(如果数据在7位数以内,那么基本是准确的,但是如果超过7位数,那么就是不准确的)。


基本语法:

Float:表示不指定小数位的浮点数


基本语法:

Float(M,D):表示一共存储M个有效数字,其中小数部分占D位


基本语法:

Float(10,2):整数部分为8位,小数部分为2位

① 创建一个数据表保存浮点数据

② 存入数据:合法数据

注意:如果数据精度丢失,那么浮点型是按照四舍五入的方式进行计算

③ 插入数据,超出大小

④ 数据长度刚好满足条件,但是会超出精度

说明:

用户不能插入数据直接超过指定的整数部分长度,但是如果是系统自动进位导致,系统可以承担。

⑤ 浮点数可以采用科学计数法来存储数据

浮点数的应用:通常是用来保存一些数量特别大,大到可以不用那么精确的数据。

(2) Double

Double又称之为双精度:系统用8个字节来存储数据,表示的范围更大,10^308次方,但是精度也只有15位左右。

II 定点数

定点数:能够保证数据精确的小数(小数部分可能不精确,超出长度会四舍五入),整数部分一定精确

(1) Decimal

Decimal定点数:系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行存储,同时小数和整数部分是分开的。


基本语法:

Decimal(M,D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30。

① 创建表:与浮点数对比

② 插入正常数据

③ 插入最大数据

④ 尝试定点数进行四舍五入

定点数的应用:如果涉及到钱的时候有可能使用定点数,涉及到精确度较高的情况下,推荐使用定点数。

原文地址:https://www.cnblogs.com/CSAH/p/11123775.html

时间: 2024-11-16 10:55:42

06、MySQL—列类型的相关文章

MySQL服务 - MySQL列类型、SQL模式、数据字典

一.MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长).是否能够被索引.如何被索引及如何排序等.在关系型数据库系统中,为了实现数据的易于管理,必须为表字段(列)指定对应的列类型.MySQL的列类型可以分为4类:字符型.数值型.日期及时间型.自有类型. 1.字符型: 字符型限定值只能为字符,MySQL的字符类型如下: 类型 最大字符长度 名称及特性 char 2

Mysql列类型

数值型 整型: tinyint:微小的列类型,1个字节,默认有符号,存储范围:-128--127 可选属性:tingyint(M) unsigned zerofill M:宽度(在0填充(zerofill)时才有效),只是显示效果,不影响实际数据的存储范围;unsigned:无符号类型 注意:如果某列是zerofill,那么则是unsigned. smallint:2个字节 mediumint:3个字节 int:4个字节 bigint:8个字节 举例: 创建一个表: 1 create table

mysql 列类型以及属性特点

整形列: 一个字节有8个位,例如:int 类型的列存入数字1,00000000 00000000 00000000 00000001它就在最低位置上存入一个1,由此可见是极大的浪费资源,所以在建立列类型的时候,依实际情况而定. 整型列的可选属性有: unsigned 非负 zerofill 零填充 (M)M表示固定宽度,它主要用于学号编码等,可以用0填至固定宽度.注意:有零填充的列数据库默认为unsigned,即非负. 例如:存入当前列数字1,固定宽度设置5,则存入数据库的数据显示为00001

mysql列类型选择

比如年龄这个字段可以使用  1990-03-15  也可以用  19900315表示在列类型上可以选择 char 和 int:如果一个字段可以选择多种类型,尽量选择一个更快的类型:字段类型优先级   整型>date,time>char,varchar>blob整型,time运算快,节省空间char/varchar要考虑字符集的转换与排序的校对集,速度慢blob无法使用内存临时表enum类型 内部是用整型来存储的,所以速度也是跟int一样的,但是需要注意,如果enum存储的字符串和 cha

MySQL 常用列类型

日期和时间类型为DATETIME.DATE.TIMESTAMP.TIME和YEAR. 注意:在MySQL中,日期时间值使用单引号引起来. 相当于Java中Date,Calender. 最常用的整数类型: MySQL列类型 Java数据类型 ------------------------------------------------------- INT/INTEGER: int/Integer BIGINT: long/Long -------------------------------

列类型概述

数据库中的每个表都是由一个或多个列构成的.可以用 CREATE TABLE 语句创建一个表,创建表时要为每列指定一个类型.列的类型与数据类型相对应,但是比数据类型更为具体,用列类型描述表列可能包含的值的种类以及范围,列的值必须符合规定,不能包含对应的数据类型所允许的所有值.例如,CHAR(16)就规定了存储的字符串值必须是16位.当然不是你必须存储16个字符,而是指列在表中要占16个字符的宽度的. MySQL的列类型是一种手段,通过这种手段可以描述一个表列包含什么类型的值,这又决定了 MySQL

DJango一对一查询,ORM 列类型及列参数

一对一查询 表的创建 # 通过 OneToOneField 创建一对一的关系 from django.db import models # Create your models here. class StaffInfo(models.Model): name = models.CharField(max_length=32, null=True) age = models.CharField(max_length=32, null=True) class Salary(models.Model

mysql之数据表列类型和列约束一

mysql数据表在定义列时,需要确定列的数据类型,以及列的相关属性或是说约束,那么mysql的列类型大致可分为如下: 列类型可分为如下: 1.数值类型 又分为整数和小数 2.时间和日期类型 3.字符类型 稍微有C基础的同学应该不是很陌生,这里呢我不会讲解太多,稍微解释一下就行. 整数部分 整数部分要注意的地方就是字节以及有符号和无符号的区别 我们知晓1byte=8bit 那么2的8次方就是0-255之间 有进制转换的同学应该知道了,那么有符号和无符号是指他需要1位来标识正负数,所以要减去1位,自

MySql学习 (一) —— 基本数据库操作语句、三大列类型

在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面学习MySql的一些高级查询,MySql性能和SQL语句的优化等打个基础. 用博客来记录下学习的过程,方便以后查阅和加强记忆.有错误的地方还请指出! 一.MySql的基本操作命令 注: <>表示参数.[]表示可选项 连接数据库:mysql> mysql -u<username> -p<password>; 显示