热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql三大列类型_列类型学习mysql三大列类型

数值型整型Tinyintsmallintmediumintintbigint参数:(M)unsignedzerofillTinyint1个字节8个位0-2^8-1,0

数值型

整型

Tinyint/ smallint/ mediumint/int/ bigint   参数:(M) unsigned zerofill

Tinyint 1个字节 8个位  0 - 2^8-1  ,  0-255

-2^7 ----> +2^7-1

分析:

Smallint 2个字节 , 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,没有任何意义.

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

小数型

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

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

浮点数占多大的空间呢

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

如果M<&#61;24,点4个字节,否则占8字节

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

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

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

空间上的区别:

Float(M,D), M<&#61;24, 4个字节, 24 

Decimal () ,变长字节.

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

见下例:

Mysql 字符串类型

Char 定长类型

Char(M)  , M 代表宽度, 0<&#61;M<&#61;255之间

例:Char(10)  ,则能输入10个字符.  注意是字符 utf8的话  就是输入10个汉字或者英文&#xff01;&#xff01; eg if id int(5) unsigned zerofilll   name char(4) 可以填4个中文或英文 :中国你好 or ‘aaaa’ 多了的话 就自动截掉多出的部分&#xff01;&#xff01;&#xff01;

Varchar 变长类型

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

类型

类型

宽度

可存字符

实存字符(i<&#61;M)

实占空间

利用率

Char

M

M

i

M

i/M <&#61; 100%

Varchar

M

M

i

i字符&#43;(1-2)字节

i/(i&#43;1-2) 

varchar 数据前面都有1-2个字节作为 记录它的长度的  以方便数据库读取

0000000000

00\0\0\0\0\0 (char型,如果不够M个字符,内部用空格补齐,取出时再把右侧空格删掉)

注:这意味着,如果右侧本身有空格,将会丢失.

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

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

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

1364622701_1189.png

varchar 与 char速度上:定长速度快些

1364624246_8433.jpg

注意: char(M),varchar(M)限制的是字符,不是字节.

即 char(2) charset utf8,能存2个utf8字符.比如&#39;中国&#39;char与varchar型的选择原则:

1:空间利用效率,四字成语表, char(4),

个人简介,微博140字, varchar(140)

2:速度

用户名: char

Text : 文本类型,可以存比较大的文本段,搜索速度稍慢.

因此,如果不是特别大的内容,建议用char,varchar来代替.

Text 不用加默认值(加了也没用).

Blob,是二进制类型,用来存储图像,音频等二进制信息.

意义: 2进制,0-255都有可能出现.

Blob在于防止因为字符集的问题,导致信息丢失.

比如:一张图片中有0xFF字节,这个在ascii字符集认为非法,在入库的时候,被过滤了.

日期时间类型

Year 年(1字节)    95/1995,  [1901-2155],

在insert时,可以简写年的后2位,但是不推荐这样.

[00-69] &#43;2000

[70-99] &#43; 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虽然直观,但计算不便.

为什么建表时,加not null default &#39;&#39; / default 0

答:不想让表中出现null值.

为什么不想要的null的值

答:

不好比较,null是一种类型,比较时,只能用专门的is null和is not null来比较.

碰到运算符,一律返回null

效率不高,影响提高索引效果.

因此,我们往往,在建表时not null default &#39;&#39;/0



推荐阅读
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 本文深入探讨了二叉搜索树(Binary Search Tree, BST)及其操作,包括查找、插入和删除节点。同时,文章还介绍了平衡二叉树(AVL树)的概念及调整方法,并详细讨论了如何判断两个序列是否构成相同的二叉搜索树。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
  • 本文详细介绍了C语言中链表的两种动态创建方法——头插法和尾插法,包括具体的实现代码和运行示例。通过这些内容,读者可以更好地理解和掌握链表的基本操作。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
author-avatar
MM我男神
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有