您的位置:首页 > 房产 > 家装 > 零基础怎么学美工_下载应用_淘宝运营培训班去哪里学_seo技术

零基础怎么学美工_下载应用_淘宝运营培训班去哪里学_seo技术

2025/8/27 14:53:04 来源:https://blog.csdn.net/2301_79722622/article/details/147566332  浏览:    关键词:零基础怎么学美工_下载应用_淘宝运营培训班去哪里学_seo技术
零基础怎么学美工_下载应用_淘宝运营培训班去哪里学_seo技术

文章目录

  • 表的约束
    • 空属性
    • 默认值
    • 列描述
    • zerofill
    • 主键
    • 总结

表的约束

1. 为什么要有表的约束?
因为要保证数据的完整性和可约束性,合法性

空属性

  1. 两个值:null(默认的)和not null(不为空)
  2. 数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。
  3. not null 是不允许插入的是空值
  • 案例
create table myclass(
class_name varchar(20) not null,
class_room varchar(20) not null,
other varchar(20)
);
insert into myclass (class_name,class_room,other) values('高三3班','101教室','普通班');
// 默认的是可以为空的
insert into myclass (class_name,class_room) values('高三3班','101教室');
// 该句是错误的, 是不允许插入的是空值,约束
insert into myclass (class_name,class_room) values('高三3班',null);

在这里插入图片描述

默认值

  1. 默认值:一开始就设定好的值,如果用户不输入值,就使用默认设定的值,如果用户输入了值,就使用用户输入的值
create table t13(
name varchar(20) not null,
age tinyint unsigned default 18,
gender char(1) default '男'
);
insert into t13 (name,age,gender) values('张三',19,'女');
insert into t13 (name) values('李四');

在这里插入图片描述
2. 如果既设置了not null 又设置了default,不显示写列名是可以的,默认插入的就是default值

在这里插入图片描述
在这里插入图片描述
3. not null 和 default 的使用
在这里插入图片描述
4. 如果显示地设置为了 not null,mysql是不会给你自动加上default的

在这里插入图片描述

列描述

  1. 列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。
  2. 列描述就像我们写的注释一样
create table t15(
name varchar(20) not null comment '这个是用户的姓名',
age tinyint unsigned default 18 comment '这个是用户的年龄',
gender char(1) default 18 comment '这个是用户的性别'
);

在这里插入图片描述

zerofill

  1. zerofill是用于进行宽度的填充的,如果少于给定的宽度,那么会在该数字的前面加上0,比如int(10),10再加上zerofill就表示填充宽度是10

在这里插入图片描述
2. 修改约束,将列b的属性修改为int(1) unsigned zerofill

在这里插入图片描述
3. zerofill 如果宽度足够就按照你写的原样写出,如果不够宽度填充0,下图的填充宽度为4
在这里插入图片描述

4. zerofill 默认的无符号整数是 2 ^ 32 - 1,是10位,有符号整数是 -2 ^ 31 ~ 2 ^ 31 - 1,是11位

在这里插入图片描述

主键

  1. 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空一张表中最多只能有一个主键;主键所在的列通常是整数类型。
// 对id进行主键约束
create table test_key(
id int unsigned primary key comment '学号不能为空',
name varchar(20) not null
);
  • 案例

PRI表示这个列属性是主键

在这里插入图片描述
在这里插入图片描述

2. 主键冲突,相同的key不允许插入

在这里插入图片描述
3. 根据主键的唯一性可以修改对应的列属性

在这里插入图片描述
4. 去掉该表中的主键

alter table test_key drop primary key;

在这里插入图片描述
5. 建好表之后添加主键

alter table test_key add primary key(id);
// 删除名字为孙权的列
delete from 表名 where name='孙权';

6. 复合主键:不意味着一个表中的主键,只能添加给一列,一个主键可以被添加到一列或者多列上

// 规定一个学生只能选择一门课程
// id和course_id合起来不重复
// 也就是同一个人可以选择多门课程,一个课程可以被多个人选择
// 但是一个人不能选择两次同一门课程
create table t18(
id int unsigned,
course_id int unsigned comment '课程编号',
score tinyint unsigned comment '这个学生改门课程考的分数',
primary key(id,course_id)
);

在这里插入图片描述

7. 不能插入id和course_id都相同的主键

在这里插入图片描述

总结

1. 主键是用来衡量一行一行表中的信息是唯一的,主键是唯一的
2. 复合主键两个合起来是唯一的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com