创建表的完整性约束 和 整型类型

创建表的完整性约束

宽度:

  对存储数据的限制

  char(1) 只能存一个字符

  如果超了 mysql会自动帮你截取

    1 插入的时候 mysql会自动截取 (浪费资源)

    2 会直接报错(mysql严格模式)提示无法存储:Data too long for column 'name' at row 1 (推荐)

使用数据库的准则 能尽量少让数据库干活就尽量少干活

约束条件初识>>> null 与 not null  相当于None

  alter table t5 modify name char not null; 

  not null该字段不能插空

类型和中括号内的约束
类型约束的是数据的存储类型
而约束是基于类型之上的额外限制

字段类型 整型类型

TINYINT SMALLINT MEDIUMINT INT BIGINT

有符号 有正负

 

TINYINT   
默认是否有符号 默认是带有符号的(-128,127)
超出限制会如何 超出之后只会存最大值或者最小值

create table t6(id TINYINT);

有符号修改为无符号 alter table 表名 modify 字段名 TINYINT unsigned ;

char后面的数字是用来限制存储数据的长度的


特例:只有整型后面的数字不是用来限制存储数据的长度 而是用来控制展示的数据的位数   (符号也算一位 加上符号最大11位 )
int(8) 够/超8位有几位存几位,不够8位空格填充

  强调:**对于整型来说,数据类型后的宽度并不是存储限制,
  而是显示限制,所以在创建表时,
  如果字段采用的是整型类型,完全无需指定显示宽度, 默认的显示宽度,足够显示完整当初存放的数据

只要是整型 都不需要指定宽度 因为有默认的宽度 足够显示对应的数据

   
修改约束条件 不够8位的情况下 用0填充

zerofill  0填充多余的位数

not null 不能为空
unsigned 无正负符号
zerofill 0填充多余的位数

 

posted @ 2019-08-19 20:13  LD_Dragon  阅读(779)  评论(0编辑  收藏  举报