mysql综合学习四 列类型学习

mysql三大列类型:数值型、字符型、日期型

 

1.1、数值型

整型

tinyint、smallint、mediumint、int、bigint(M) unsigned zerofill

整型系列所占字节与存储范围的关系

定性:占字节越多,存储范围越大

下面是具体的数字分析

Tinyint   1个字节   8个位     unsigned(无符号): 0 - 2^8-1 , 0-255 ; 有符号: -2^7 ----> +2^7-1

smallint  unsigned(无符号): 16位 0----2^16-1 = 65535  有符号:-2^15 ---> +2^15-1, -32768 -> 32767

一般而言,设某类型 N字节  N字节 , 8N位.  0 ----> 2^8N-1   -2^(8N-1) ---> +2^(8N-1) -1; 对于int型 : 占的字节越多,存储的范围也越大.

整型系统的可选参数 : XXint(M) unsigned zerofill 例: age tinyint(4) unsigned ,或者 stunum smallint(6) zerofill; Unsigned: 代表此列为无符号类型, 会影响到列的存储范围. (范围从0开始) (不加unsinged, 则该列默认是有符号类型,范围从负数开始) 

Zerofill: 代表0填充, 即: 如果该数字不足参数M位, 则自动补0, 补够M位. 1: 如果没有zerofill属性, 单独的参数M,没有任何意义.

如果设置某列为zerofill,则该列已经默认为 unsigned,无符号类型.

 

1.2、小数型

Float(M,D),decimal(M,D)

M叫"精度" ---->代表"总位数",而D是"标度",代表小数位.(小数右边的位数)

浮点数占多大的空间呢

答: float 能存10,,, ,10^-38

如果M<=24, 点4个字节,否则占8字节

用来表示数据中的小数,除了float---浮点.

还有一种叫定点decimal,定点是把整数部分, 和小数部分,分开存储的.

比float精确,他的长度是变化的.

空间上的区别:

Float(M,D), M<=24, 4个字节, 24 <M <=53, 8个字节

Decimal () ,变长字节.

区别: decimal比float精度更高, 适合存储货币等要求精确的数字, 见下例:

 

2、字符串型

Char(M)   Varchar(M)  Text  文本类型

2.1、Char 定长类型 

char(M)、M代表宽度,0<=M<=255之间

例如:char(10),则能输入10个字符

2.2、Varchar 变长类型 

Varchar(M), M代表宽度, 0<=M<=65535(以ascii字符为例,utf822000左右)

类型

类型 宽度 可存字实存字符(i<=M) 实占空间 利用率

Char M M i M i/M <= 100% Varchar M M i i字符+(1-2)字节 i/(i+1-2) < 100%

0000000000

00\0\0\0\0\0 (char型,如果不够M个字符,内部用空格补齐,取出时再把右侧空格删掉) 注:这意味着,如果右侧本身有空格,将会丢失.

Char(M)如何占据M个字符宽度?

答: 如果实际存储内容不足M个,则后面加空格补齐.

取出来的时候, 再把后面的空格去掉.(所以,如果内容最后有空格,将会被清除).

速度上: 定长速度快些

注意: char(M),varchar(M)限制的是字符,不是字节. 即 char(2) charset utf8, 能存2个utf8字符. 比如'中国'char与varchar型的选择原则:

1:空间利用效率, 四字成语表, char(4), 个人简介,微博140字, varchar(140) 2:速度 用户名: char

Char 与 varchar相关实验

Text : 文本类型,可以存比较大的文本段,搜索速度稍慢. 因此,如果不是特别大的内容,建议用char,varchar来代替. Text 不用加默认值 (加了也没用).

Blob,是二进制类型,用来存储图像,音频等二进制信息. 意义: 2进制,0-255都有可能出现. Blob在于防止因为字符集的问题,导致信息丢失. 比如:一张图片中有0xFF字节, 这个在ascii字符集认为非法,在入库的时候,被过滤了.

 

3、日期时间类型

Year 

年(1字节) 95/1995, [1901-2155], 在insert时,可以简写年的后2位,但是不推荐这样若后两位范围在[00-69] 则代表2000 +后两位数。若在[70-99]代表1900+后两位

即: 填2位,表示 1970 - 2069

Date 

日期 1998-12-31

范围: 1000/01/01 ,9999/12/31

Time 

时间 13:56:23

范围: -838:59:59 -->838:59:59

datetime 

时期时间 1998-12-31 13:56:23 范围: 1000/01//01 00:00:00 ---> 9999:12:31 23:59:59

时间戳: 

是1970-01-01 00:00:00 到当前的秒数.

一般存注册时间,商品发布时间等,并不是用datetime存储,而是用时间戳. 因为datetime虽然直观,但计算不便.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值