网站后台管理密码忘记,太原网站建设tygytc,做网站需要什么手续资料,计算机专业主要学什么内容基本数据类型 一、数值类型举例表结构1. 整数类型zerofill属性 与 int(n) 中 n 的关系 2.bit类型3. 小数类型float类型decimal类型 二、字符串类型1. char2. varchar如何选择定长或变长字符串#xff1f; 3. 日期时间类型(date datetime timestamp)4. enum枚举类型5. set多选类… 基本数据类型 一、数值类型举例表结构1. 整数类型zerofill属性 与 int(n) 中 n 的关系 2.bit类型3. 小数类型float类型decimal类型 二、字符串类型1. char2. varchar如何选择定长或变长字符串 3. 日期时间类型(date datetime timestamp)4. enum枚举类型5. set多选类型 一、数值类型
举例表结构
字段名称字段类型是否NULL键值默认值附加信息FieldTypeNullKeyDefaultExtraidintNoUNI(唯一键Nullauto_incrementnameverchar(10)NoPRI(主键)NullgenderenumNomanagetinyintYesNulltelphoneintYesNullhome_idintyesMUL(外键)Null
1. 整数类型
类型字节数值范围(带符号)不带符号tinyint1-128 ~ 1270 ~ 255smallint2-32768 ~ 327670 ~ 65535mediumint3-8388608 ~ 83886070 ~ 16777215int4-2147483648 ~ 21474836470 ~ 4294967295bigint8-9223372036854775808 ~ 92233720368547758070 ~ 2^(8 * 8) - 1
在MySQL中整型可以指定是有符号的和无符号的默认是有符号的。可以通过unsigned来说明某个字段是无符号的无符号案例
mysql create table tt2(num tinyint unsigned);
mysql insert into tt2 values(-1); -- 无符号范围是 0 - 255
ERROR 1264 (22003): Out of range value for column num at row 1
mysql insert into tt2 values(255);
Query OK, 1 row affected (0.02 sec)
mysql select * from tt2;
------
| num |
------
| 255 |
------
1 row in set (0.00 sec)zerofill属性 与 int(n) 中 n 的关系 int(n) 中的 n 为显示宽度只有当它与 zerofill 属性配合时才会显现它的作用 在创建表结构时如果创建int类型字段且没有设置宽度mysql默认显示宽度为11位,有个符号位。 添加zerofill属性时该列会自动变成无符号整型unsigned且默认显示宽度为10位。这是因为zerofill的主要目的是为了在显示数字时在左边填充零以达到指定的显示宽度而对于负数这种填充零的操作没有意义。 示例没有zerofill属性 mysql create table t1(- id int- );
)
Query OK, 0 rows affected (0.00 sec)
mysql insert into t1 values(10); #插入一条数据
mysql insert into t1 values(1); #插入一条数据
Query OK, 1 row affected (0.00 sec)
mysql select * from t1;
------
| id |
------
| 10 |
------
| 1 |
------示例有zerofill属性 mysql create table t1(- id int zerofill- );
)
Query OK, 0 rows affected (0.00 sec)
mysql insert into t1 values(10); #插入一条数据
mysql insert into t1 values(1); #插入一条数据
Query OK, 1 row affected (0.00 sec)
mysql select * from t1;
---------------
| id |
---------------
| 0000000010 |
---------------
| 0000000001 |
---------------2.bit类型
用法bit(m)——create table 表名 ( 字段名 bit(m)); 位字段类型。M表示字段的bit位数范围从1到64。如果M被忽略默认为1。 介绍
bit字段在显示时是按照ASCII码对应的值显示(如果在一个bit字段插入数字 65查看时显示 A)如果我们有这样的值只存放0或1这时可以定义bit(1)。这样可以节省空间
3. 小数类型
float类型
float[(m, d)] [unsigned] : M指定显示长度d指定小数位数默认无符号。 例 float(4,2) 无符号时范围是 -99.99 ~ 99.99 有符号时范围是 0 ~ 99.99 若插入一个数 99.985四舍五入储存为99.99.
固定占用空间4个字节有精度损失float表示的精度大约是7位MySQL在保存指定小数位数以外的值时会进行四舍五入
decimal类型
decimal(m, d) [unsigned] : m指定长度d表示小数点的位数
decimal类型精度更高decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略默认为0.如果m被省略默认是10
建议如果希望小数的精度高推荐使用decimal
二、字符串类型
字符串类型储存内容占用字节char(4)A4 * 3 12varchar(4)A1 * 3 1 4char(4)abcd4 * 3 12varchar(4)abcd4 * 3 1 13char(4)abcde报错超出长度varchar(4)abcde报错超出长度
1. char
char(L): 固定长度字符串L是可以存储的固定的字符长度最大长度值可以为255。
2. varchar
varchar(L): 可变长度字符串L表示可储存的最大字符长度最大长度65535个字节可根据储存内容缩小储存大小。 说明 关于varchar(L),L到底是多大这个L值和表的编码密切相关
varchar长度可以指定为0到65535之间的值但是有1 - 3 个字节用于记录数据大小所以说有效字节数是65532。当我们的表的编码是utf8时varchar(n)的参数n最大值是65532/321844[因为utf中一个字符占用3个字节]如果编码是gbkvarchar(n)的参数n最大65532/232766因为gbk中一个字符占用2字节。
如何选择定长或变长字符串
如果数据确定长度都一样就使用定长char比如身份证手机号md5如果数据长度有变化,就使用变长(varchar), 比如名字地址但是你要保证最长的能存的进去。定长的磁盘空间比较浪费但是效率高。变长的磁盘空间比较节省但是效率低。定长的意义是直接开辟好对应的空间。变长的意义是在不超过自定义范围的情况下用多少开辟多少。
3. 日期时间类型(date datetime timestamp)
常用的日期有如下三个
date :日期 ‘yyyy-mm-dd’ 占用三字节datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 占用八字节timestamp 时间戳从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致占用四字节
4. enum枚举类型
用法enum(选项1,选项2,选项3,...); 该设定只是提供了若干个选项的值最终一个单元格中实际只存储了其中一个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,3,…最多65535个当我们添加枚举值时也可以添加对应的数字编号 当在创建表结构中字段类型时选择enum类型并设置选项后在此表中插入数据时只能从设置的选项中多选一。
5. set多选类型
用法set(选项值1,选项值2,选项值3, ...); 该设定只是提供了若干个选项的值最终一个单元格中设计可存储了其中任意多个值而且出于效率考虑这些值实际存储的是“数字”因为这些选项的每个选项值依次对应如下数字1,2,4,8,16,32… 最多64个。 当在创建表结构中字段类型时选择enum类型并设置选项后在此表中插入数据时可以从设置的选项中多选。
说明不建议在添加枚举值集合值的时候采用数字的方式因为不利于阅读。