网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
此时我们要是有一个不进行设置则会报错,只有两个都不为空的时候才不会报错
默认值default
某种数据会经常性的出现某一个具体的值,可以在一开始就指定好,在开始时使用默认值
例:
create table t1(age tinyint unsigned default 0);
//age一栏默认设置为0
![(img-2hTFcF04-1650333078958)]](https://img-blog.csdnimg.cn/22ca24a09d694895bc460e52ca8691c5.png)
上面当我们在次插入要是不指定age的值那么就会自动填充为0
not null和default可以同时存在,此时会自动添加default设定的默认值
建议not null和default只设置一个
有默认值就设置default
没有默认值只是不想让它为空就设置not null
列描述comment
comment,没有实际意义,用来描述字段,相当于注释
create table t16(name varchar(20)not null comment '名字',
age tinyint unsigned default 18 comment '用户年龄');
zerofill
设定属性的宽度,如果宽度小于设定的宽度,自动填充0,需要注意的是,这只是显示的结果,只是一种格式化输出
create table if not exists t10(
a int(10) int unsigned default,
b int(10) int unsigned default
);
alter table t10 change a int(10) unsigned zerofill;
![(img-PiY5kUtI-1650333078959)]](https://img-blog.csdnimg.cn/0ceb7fa1e6d74aab8edaa946bf4144b6.png)
主键primary key
主键:primary key用来唯一的约束该字段的数据,不能重复,不能为空,一张表中只能用一个主键
案例
create table t18(id int unsigned primary key comment '学生的学号,作为主键',name varchar(10) not null comment '学生姓名')engine=InnoDB default charset=utf8;
insert into t18 values(1,'孙悟空');
insert into t18 values(1,'猪八戒');
//这时候主键冲突,出错
//要是设置了default,则第一次可以插入,后面就不行了
设置指定列是主键之后,默认不能为空,如果设置了default,默认插入的时候是可以出现空的,但是不推荐(只能使用一次)
主键的删除
alter table t18 drop primary key;
添加主键
alter table t18 add priamry key(id);
复合主键
创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,
create table t19(ip varchar(30) comment 'IP',
port int unsigned comment '断开'
priamry key(ip,port));
只有当两个都相同才会产生主键冲突
自增长auto_increment
create table if not exists t19(
id int unsigned auto\_increment comment '自增长字段',
name varchar(10) NOT NULL comment '用户名'
);
可以自己插一个值,然后他会从前面中取最大值然后进行增长
一般在设置主键的时候,建议设置成与业务无关的数据字段来充当主键,
自增长属性!
注意这个关键字必须用在主键或者下面讲到的唯一键之后
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
唯一键unique
表中很多字段需要唯一性,但是主键只有一个。
例如学生存在大量唯一性的信息:学号,身份证号,电话
不是主键具有唯一性,而是唯一性的数据被选择成为了主键
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
[外链图片转存中…(img-m7iMQy9u-1715810643368)]
[外链图片转存中…(img-jId2kdkb-1715810643369)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新