标签:varchar 字节 自动 mysql table 默认值 name
数据类型
1、数值类型
tinyint、smallint、mediumint、int或integer、bigint分别对应1、2、3、4、8个字节的存储空间,以上均为有符号补码表示的整数。
float和double分别为4个字节和8个字节的大小的浮点数
如果在相应类型后面加关键字unsigned,则变为无符号数。
decimal:M>=D,M表示有效数的精度,范围1-65;D表示小数点后的位数
- 整数的位数必须小于等于m-d,不然报错。小数的位数可以大于d位。多出d位时会做四舍五入,截取到d位。
- 以上均不包括小数点、符号的位数。数字的总长度是m位,保存后的小数位最多是d位。如果保存后是整数,小数位不会补0。
2、时间日期类型
date、time、year、datetime分别对应年月日,时分秒,年,年月日时分秒
timestamp:参考
3、字符类型
(1)char和varchar
- 两者都需要指定n值,最大存储字符数不能超过n
- char是定长,无论存储多少内容,都会占据n;varchar是变长,按内容的实际长度占据空间。
- char的最大n值为255,varchar的最大为65535
(2)其它
tinytext、text、mediumtext和longtext用于存储文本数据,分别的最大容量为1、2、4、8个字节表示的整数。
tinyblob、blob、mediumblob和longblob用于存储二进制数据,分别的最大容量为1、2、4、8个字节表示的整数。
是否允许为空
默认的,字段允许为null。如果不允许,则需要特别声明
not null
默认值
用关键字default声明,其后为默认值内容
age int unsinged default 10, name varchar(10) default 'zzzz'
默认值是当插入记录时,只插入部分字段的情况下,未插入字段的值会以默认值填充
自动增长
(1)自动增长的字段必须是整数类型
(2)自动增长的字段不要求一定是无符号数
(3)自动增长字段默认从1开始
(4)在新增记录时,要么插入全部字段,将自动增长字段的值设为null,要么插入部分字段
(5)可以在创建表时声明自动增长的初始值
(6)delete语句并不能清除自动增长记录
(7)自动增长字段在一张表中只能存在一个,且必须声明为主键
主键和外键
(1)只有InnoDB表才支持主键和外键
(2)主键可以为多个列
(3)外键列必须建立索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引
(4)外键关系的两个表的列必须是数据类型相似,也就是可以互相转换类型的列,比如int和tinyin可以,而int和char不行
数据库引擎
innodb:支持事务和主外键
myisam
create table table_name()engine=innodb;
默认编码
(1)在创建数据库时指定
create database database_name charset utf8;
(2)在创建数据表时指定
create table table_name()default charset=utf8;
标签:varchar,字节,自动,mysql,table,默认值,name 来源: https://www.cnblogs.com/heibaimao123/p/13789828.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。