mysql取得列类型_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 tableclass(2 id int primary key auto_increment,--id 自增长

3 name varchar(20),4 age tinyint

5 );

插入数据:

1 insert into class(name,age) values ('张三',25),('李四',26),('王五',27);

然后更改列的定义实验zerofill:可以看到age1前面填充了4个0

alter table class add age1 tinyint(5) zerofill;insert into table class(age1) values (3);--插入一条数据--查询结果:

select * fromclass;--结果显示如下:

id | name | age |age1----+------+------+-------

1 | 张三 | 25 | NULL

2 | 李四 | 26 | NULL

3 | 王五 | 27 | NULL

4 | NULL | NULL | 00003

设置列的默认值,一般这样结合设置:可以省去not null,但是一般推荐这样使用。

1 not null default '默认的值'

2 --添加一列设置默认值

3 alter table class add age2 tinyint not null default 10;4 --查询结果

5 select * fromclass;6 +----+------+------+-------+------+

7 | id | name | age | age1 | age2 |

8 +----+------+------+-------+------+

9 | 1 | 张三 | 25 | NULL | 10 |

10 | 2 | 李四 | 26 | NULL | 10 |

11 | 3 | 王五 | 27 | NULL | 10 |

12 | 4 | NULL | NULL | 00003 | 10 |

13 +----+------+------+-------+------+

小数型:浮点型,定点型

float(M,D) M:精度(总位数,不包含小数点),D:标度(小数点后面的位数) 比如:float(6,2)表示的范围是:-9999.99-->9999.99

1 --创建一个表

2 create tablegoods(3 name varchar(20) not null default ' ',4 price float(6,2) not null default 0.00

5);6 --增加一列

7 alter table goods add price1 float(6,3) not null default 100.000

8 --插入数据

9 insert into goods (name,price) values ('跑步机',99,300),('饮水机',199,700);10 --查询数据:

11 select * fromgoods;12 +--------+--------+---------+

13 | name | price | price1 |

14 +--------+--------+---------+

15 | 跑步机 | 99.00 | 300.000 |

16 | 饮水机 | 199.00 | 700.000 |

17 +--------+--------+---------+

再插入一条数据:

insert into goods (name,price,price1) values ('跑步机1',99.685,300),('饮水机1',99.675,700)--查询出来的数据:

select * fromgoods;+---------+--------+---------+

| name | price | price1 |

+---------+--------+---------+

| 跑步机 | 99.00 | 300.000 |

| 饮水机 | 199.00 | 700.000 |

| 跑步机1 | 99.69 | 300.000 |

| 饮水机1 | 99.67 | 700.000 |

+---------+--------+---------+

注意:这里的price按照四舍五入应该是99.69和99.68的,但是查询出来的数据却是99.69和99.67;这是因为Mysql采取的不是数学上的四舍五入,而是采用银行的四舍五入:即1,2,3,4舍,6,7,8,9入;而5就是根据5前面的一位数来确定是舍还是入:1,3,5,7就舍掉,0,2,4,6就加上.

定点型 decimal 比float精度要高些。

alter table goods add bigprice float(9,2) not null default 0.00

alter table goods add decimalprice decimal(9,2) not null default 0.00插入数据:insert into goods (name,bigprice,decimalprice) values ('自行车',123456.23,123456.23)

查询数据;select * fromgoods;+---------+--------+---------+-----------+--------------+

| name | price | price1 | bigprice | decimalprice |

+---------+--------+---------+-----------+--------------+

| 跑步机 | 99.00 | 300.000 | 0.00 | 0.00 |

| 饮水机 | 199.00 | 700.000 | 0.00 | 0.00 |

| 跑步机1 | 99.69 | 300.000 | 0.00 | 0.00 |

| 饮水机1 | 99.67 | 700.000 | 0.00 | 0.00 |

| 自行车 | 0.00 | 100.000 | 123456.23 | 123456.23 |

+---------+--------+---------+-----------+--------------+--这里没有明显的区别,修改一下数据:

update goods set bigprice=1234567.23 and decimalprice=1234567.23 where name='自行车'

select * fromgoods;+---------+--------+---------+------------+--------------+

| name | price | price1 | bigprice | decimalprice |

+---------+--------+---------+------------+--------------+

| 跑步机 | 99.00 | 300.000 | 0.00 | 0.00 |

| 饮水机 | 199.00 | 700.000 | 0.00 | 0.00 |

| 跑步机1 | 99.69 | 300.000 | 0.00 | 0.00 |

| 饮水机1 | 99.67 | 700.000 | 0.00 | 0.00 |

| 自行车 | 0.00 | 100.000 | 1234567.25 | 123456.23 |

+---------+--------+---------+------------+--------------+

这里小数位最后一个是25,一个是23了,所以decimal比float精确,因此银行业务一般是采取的decimal类型。

字符型

char(M):M个字符,如果小于M个字符,实占M个字符,利用率:<=100%,不够M个字符的,最后用空格补起。

varchar(M):M个字符,存储的数据小于M个字符,设为N,N<=M,利用率小于100%,因为有一两个字节要用来记录占用的空间。

create tablestu(

namechar(8) not null default '',

waihaovarchar(10) not null default '')insert into stu values ('一二三四五六七','一二三四五六七')insert into stu values ('一二三','一二三')select * fromstu;+------------------+--------------------+

| name | waihao |

+------------------+--------------------+

| 张三 | 三儿 |

| 啊啊是个大傻逼啊 | 大傻逼啊打打的的的 |

| 一二三四五六七 | 一二三四五六七 |

| 一二三 | 一二三 |

+------------------+--------------------+--在字符串后面加连接符来看是否丢失空格:

select concat(name,'!'),CONCAT(waihao,'!') fromstu;+-------------------+---------------------+

| concat(name,'!') | CONCAT(waihao,'!') |

+-------------------+---------------------+

| 张三! | 三儿! |

| 啊啊是个大傻逼啊! | 大傻逼啊打打的的的! |

| 一二三四五六七! | 一二三四五六七! |

| 一二三! | 一二三 ! |

+-------------------+---------------------+

通过select查询到的结果发现,char型的丢了空格,varchar由于有1-2字节记录占用的情况,不会丢失空格。

速度上char快,varchar稍慢,要去字节里面取存储了多少值。

因此char和varchar的区别:

char是的范围0-255,varchar 0-65535左右,char是创建就全部分配空间,varchar是用多少分配多少,同时char由于最后不足的数据会用空格代替,因此如果存储的数据末尾有空格,取值出来会把空格丢掉,会照成空格丢失,而varchar不会。同时char速度较快,varchar速度稍慢。

选取原则:

1.空间利用效率 四字成语表,char(4);微博140字,varchar(140)

2.速度 用户名:char,

text 文本串,可以存较大的文本段,搜索速度比较慢,如果不是特别大,推荐用varchar,text不能设置默认值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XtraBackup全备与增量备份

一、XtraBackup安装 下载地址&#xff1a;http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安装步骤&#xff1a; How to build XtraBackup on Linux Prerequisites -------------$ yum install cmake gcc gcc-c libaio libaio-devel automake autocon…

《大话设计模式》 国外资料

It is not easy to remember all design patterns. Here are some stories about design patterns which might help! Creational Singleton – Only one president in AmericaFactory – A factory that produces humanAbstract Factory – An abstract factory to produce CP…

DHCP基本配置

第一步 安装 DHCP [rootlocalhost ~]# yum install dhcp dhcp-devel DHCP文件简介 /etc/dhcp/dhcpd.conf #主配置文件&#xff0c;除了括号那栏&#xff0c;其它都要结尾 ; 这样的分号 /var/lib/dhcpd/dhcpd.leases #IP地址租约在这里 第二步 配置 DHCP 主文件配置[rootlocalho…

python arcgis 图书_arcgis python

本书作者是GIS发方面的知名作者&#xff0c;曾著有《JavaScript构建Web和ArcGIS Server应用实战》(Building Web and Mobile ArcGIS Server Applications with JavaScript)一书。 本书内容易学易懂&#xff0c;帮助读者成为GIS发高手。《面向ArcGIS的Python脚本编程》是一本指导…

scrapy 让指定的spider执行指定的pipeline

处理scrapy中包括多个pipeline时如何让spider执行制定的pipeline管道&#xff11;:创建一个装饰器from scrapy.exceptions import DropItemimport functools当有多个pipeline时,判断spider如何执行指定的管道 def check_spider_pipeline(process_item_method): functools.wr…

五大常用算法之三:贪心算法

一、基本概念&#xff1a; 所谓贪心算法是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架&#xff0c;算法设计的关…

python学习笔记列表和元组(三)

列表&#xff08;list&#xff09;是Python以及其他语言中最常用到的数据结构之一。Python使用使用中括号 [ ] 来解析列表。列表是可变的&#xff08;mutable&#xff09;——可以改变列表的内容。对应操作&#xff1a;1、查&#xff08;[]切片操作&#xff09; name [tom,张三…

python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...

我试图做一个单元测试来检查这个python函数(dispatch)是否传递了正确的参数来处理\u结果。在在dispatch中调用处理“unu result”的函数时&#xff0c;有没有方法“劫持”输入参数&#xff1f;我没有在调度函数中修改代码的权限。在以下是单元测试中的want预览&#xff1a;impo…

博客园客户端UAP开发随笔 -- App连接云端内容的桥梁:WebView

当你辛苦的从网上爬下来一篇文章之后&#xff0c;怎么在你的应用内展示这些包含HTML标记的文章&#xff1f;如果你使用的是Javascript开发应用&#xff0c;恭喜你&#xff0c;直接塞进页面就可以了&#xff0c;同时说明你很熟悉页面开发&#xff0c;而现在windows也支持这种方式…

listview与gridview点击时的背景色取消

在布局文件里面的listview控件添加以下代码android:listSelector"#00000000" //透明色 可以自己选择点击颜色转载于:https://www.cnblogs.com/yulook/p/5219932.html

解决yum命令失效,vim: command not found

安装python3模块时&#xff0c;yum命令无法执行错误:**/usr/bin/yum: line 3: import: command not found/usr/bin/yum: line 4: try:: command not found/usr/bin/yum: line 5: import: command not found/usr/bin/yum: line 6: except: command not found/usr/bin/yum: line …

C4.5

C4.5是机器学习算法中的另一个分类决策树算法&#xff0c;它是基于ID3算法进行改进后的一种重要算法&#xff0c;相比于ID3算法&#xff0c;改进有如下几个要点&#xff1a; 用信息增益率来选择属性。ID3选择属性用的是子树的信息增益&#xff0c;这里可以用很多方法来定义信息…

(周日赛)Sort the Array

题意&#xff1a;一段数字&#xff0c;逆置其中两个使其递增 DescriptionBeing a programmer, you like arrays a lot. For your birthday, your friends have given you an array a consisting of ndistinct integers. Unfortunately, the size of a is too small. You want a…

jqgrid学习(三)

1.修改jqgrid自带的行编辑按钮样式 //jqgrid默认的行编辑样式 {name : ,index : ,width : 70,fixed : true,sortable : false,resize : false,formatter : actions,},//修改每行的编辑按钮图标为目标样式//当表格中数据加载完毕后&#xff0c;执行此方法 loadComplete : functi…

事件Event对象

事件event对象 当事件发生时&#xff0c;会向调用函数传递一个event对象&#xff0c;event对象记录当前事件发生时的环境信息。 一个事件只能对应一个event对象&#xff0c;并且event对象是短暂存在的。 DOM中的event对象的使用方法 1、在HTML标记中&#xff0c;通过事件来调用…

解决mac osx下pip安装ipython权限的问题

1pip install ipython --user -U下面是pip install gevent的错误提示&#xff0c; 又是 Operation not permitted … 12345#xiaorui.ccpip install gevent...raise Error, errorsError: [(/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_marker…

谈谈分布式事务之三: System.Transactions事务详解[下篇]

在前面一篇给出的Transaction的定义中&#xff0c;信息的读者应该看到了一个叫做DepedentClone的方法。该方法对用于创建基于现有Transaction对 象的“依赖事务&#xff08;DependentTransaction&#xff09;”。不像可提交事务是一个独立的事务对象&#xff0c;依赖事务依附于…

HDU——2444 The Accomodation of Students

The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)                    Total Submission(s): 7086 Accepted Submission(s): 3167 Problem DescriptionThere are a group of studen…

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能&#xff0c;乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的&#xff0c;这不愧为一项伟大的设计。今天我们就针对iOS的触摸事件&#xff08;手势操作&#xff09;、运动事件、远程控制…

关于Hyper-V备份的四大注意事项

尽管Hyper-V备份相对简单&#xff0c;但备份管理员仍需注意四大问题。这四方面的问题在创建备份时可能不太重要&#xff0c;但在备份恢复时影响甚大。 1、对于虚拟机来说不仅意味着虚拟磁盘 就目前来看&#xff0c;企业在执行Hyper-V备份时最常见的误区就是把虚拟机当做物理服务…