蚌埠市建设银行网站网站开发人员的前景

当前位置: 首页 > news >正文

蚌埠市建设银行网站,网站开发人员的前景,深圳龙岗网站建设公司,比价网站 源码文章目录 【Mysql】 数据类型数据类型分类数值类型1. tinyint类型2. bit类型3. 小数类型 字符串类型1.char2.varchar3. 日期和时间类型4. enum 和 set 【Mysql】 数据类型 mysql中数据类型的作用#xff1a; 约束操作者的行为更清晰的代码逻辑不同的功用 – 例如#xff0c… 文章目录 【Mysql】 数据类型数据类型分类数值类型1. tinyint类型2. bit类型3. 小数类型 字符串类型1.char2.varchar3. 日期和时间类型4. enum 和 set 【Mysql】 数据类型 mysql中数据类型的作用 约束操作者的行为更清晰的代码逻辑不同的功用 – 例如年龄使用数字生日姓名等消息使用子符串 更为重要的是类型约束即如果操作者不按数据类型进行数据插入时该条sql数据会被直接拒绝 数据类型分类 数值类型 1. tinyint类型 tinyint类型使用演示 如下 我们知道有符号的tinyint的存储范围就是 -128 ~ 127当我们想插入数据128时是直接报错的而不像c/c 会发生截断 说明: 在MySQL中整型可以指定是有符号的和无符号的默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的
而如果想将tinyint 设置为无符号的只需要在设置列字段时在类型加上unsigned即可变成无符号之后tinyint的存储范围就变成了0 ~ 255; id tinyint unsigned2. bit类型 基本语法 bit[(M)] : 位字段类型。M表示每个值的位数范围从1到64。如果M被忽略默认为1。而我们通过类型表中是没有我们c中的bool类型的而实际上bit(1)就可以表示mysql中的bool类型即bit(1) 类型的变量的值不是0就是1 但mysql中的bit类型神奇之处远不止如此 bit使用案例 我们先创建一个张表然后插入几个数据 插入数据和查看表中显示 神奇的事情我们会发现使用bit()存储的变量是使用acill值的形式显示的10就是我们的’ \n’ 3. 小数类型 float 使用 float[(m, d)] [unsigned] : M指定显示长度d指定小数位数占用空间4个字节例 我们先创建一个工资表出来 float(4,2) 即表示显示长度为4小数位数为2为数值范围 -99.99 ~ 99.99 而后插入几条数据: 我们会发现mysql保存数据时对于99.99499.995这些超出数据范围的数据会先对其进行4舍5入而后再判断是否合法 说明 float类型mysql在保存值时会进行4舍5入float类型使用unsigned时并不会将tinyint类型一样数值类型会变大 例float(4,2) 数值范围为 0 ~ 99.99 decimal使用 decimal(m, d) [unsigned] : 定点数m指定长度d表示小数点的位数说明 decimal使用起来和float是没什么区别的但dicimal的精度比float要高很多当小数位超过7位时建议都使用decimal类型 例 我们会发现当插入的数据大于8位小数时使用float存储是不够精准的 说明 decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略默认为0.如果m被省略默认是10。 即decimal默认情况下decimal(10,0) 字符串类型 1.char 语法 char(L): 固定长度字符串L是可以存储的长度单位为字符最大长度值可以为255例子 我们先创建一张表类型为char(6) 接着我们插入几个数据进去 我们印象当中utf8中一个中文大概是3字节大小而我们指定的大小不是为6吗 使用length函数求字符串的字节数查看一下字符串长度 也就是说mysql中的一个字符,并不是我们c/c的字符类型char)mysql中的字符即可以是中文也可以是英文所以我们char(6) ,表示的字符长度为6而是字节大小为6 2.varchar 语法 varchar(L): 可变长度字符串L表示字符长度最大长度65535个字节注 最大长度为65535个字节以字节为单位而char最大长度是以字符为单位的 而varchar实际使用上也是和char是一样的但只是存储上细节不一样 char() 是直接将指定长度的空间开辟出来 而varchar()是使用多少数据空间就开多少空间 例char(6) ,varchar(6) ,插入数据 “中国”,char存储是使用的6个字符大小的空间早就开好了varchar存储是2个字符大小 比喻char就好像c语言中的静态数组一开始数组大小就固定了就开好了固定大小的空间而varchar就像动态数组用多少开多少
例 创建与上面相同的表结构 查看所插入的数据 3. 日期和时间类型 date :日期 ‘yyyy-mm-dd’ 占用三字节 datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 占用八字节 timestamp 时间戳从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致占用四字节
例子 创建一个生日表 插入数据 insert into birthday(t1,t2) values(1997-7-1,2008-8-8 12:1:1);如下 我们会发现我们没有插入t3 ,而t3默认是以当前的时间戳更新的 查看一下具体表结构 下面我们将表数据进行修改一下再查看一下表 我们会发现当我们对表数据进行更新时t3也会更新为最新的修改时间这实际上是timestamp类型在作怪 说明 timestamp类型插入数据时如果没有指定数值就为当前的时间戳更新数据时也没有指定的话数值也会被更新为修改时的时间戳或许有些数据库的版本的timestamp类型默认是没有上面这些行为就像我的数据库版本书写timestamp类型需要自己添加字段 not null default current_timestamp on update current_timestamp; 详情可以看看这篇文章 timestamp 4. enum 和 set enum类型使用 语法 enum枚举“单选”类型enum(选项1,选项2,选项3,…);例 再往里面插入数据 我们会发现使用数字1也可以表示enum当中的第一个选项 说明 该设定只是提供了若干个选项的值最终一个单元格中实际只存储了其中一个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,3,…最多65535个当我们添加枚举值时也可以添加对应的数字编号。 set类型使用 set集合“多选”类型 set(选项值1,选项值2,选项值3, …);说明 该设定只是提供了若干个选项的值最终一个单元格中设计可存储了其中任意多个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,4,8,16,32… 最多64个 例 有一个调查表votes需要调查人的喜好 比如登山游泳篮球武术中去选择(可以多选)男女[单选] mysql create table votes(

  • username varchar(30),
  • hobby set(登山,游泳,篮球,武术), –注意使用数字标识每个爱好的时候想想Linux权限采用比特位位置来个set中的爱好对应起来
  • gender enum(男,女)); –注意使用数字标识的时候就是正常的数组下标如下 接下来我们插入俩个数据 insert into votes values(Juse,登山,篮球,2); insert into votes values(小王,3,男);即实际上set中的数据也是数子存储存储的3代表12俩个爱好的合成 小结 enum类型可以使用于单项选择set使用于多项选择 如下 [外链图片转存中…(img-M01iTbhF-1684973250081)] 接下来我们插入俩个数据 insert into votes values(Juse,登山,篮球,2); insert into votes values(小王,3,男);[外链图片转存中…(img-jlr5afO4-1684973250081)] 即实际上set中的数据也是数子存储存储的3代表12俩个爱好的合成 小结 enum类型可以使用于单项选择set使用于多项选择虽然说enum和set都可以直接使用数字对数据进行表示但是我们插入和查询数据时不推荐使用数字表示可读性低