mysql(2)主键 外键 约束类型,多对多关系

约束类型
NOT NULL 指示某类不能存储NULL值
UNIQUE 保证每列有唯一的值
DEFAULT 规定没有给列赋值时的默认值
PRIMARY KEY 前两个的结合。确保某列(或两个列多个列的结合)有唯一  (主键约束,又不为空又是唯一的)
标识,有助于更容易更快速地找到表中的一个特定记录。
FOREIGN KEY 保证一个表中的数据匹配另一个表的值的参照完整性
CHECK 保证列中的值符合指定的条件。对于mysql数据库,进行分析,但是
忽略CHECK子句,语法上不报错而已

create table student(
   sn int not null,
   name varchar(20)
);


//删表,无论有没有这个表都删除,就算不存在也不报错
drop table if exists student;


create table student(
   sn int unique,
   name varchar(20)
);

create table student(
   sn int unique,
   name varchar(20) default'不知道'
);
insert into student values(null,null);
//这个是查询不到默认值的,因为null也当做一个数被赋给了name列


//查询name的默认值,并没有给name列赋值
insert into student(sn) values(null);

 


主键

 

//表类似类
create table student(
   id int primary key;
   sn int unique,
   name varchar(20) default'不知道'
);
insert into student values(1,23,'sd');
insert into student values(2,34,'de');
//主键只是为了标识,可以累加,每次加一方便操作
create table student(
   id int primary key auto_increment;
   sn int unique,
   name varchar(20) default'不知道'
);
//保证主键自增,不用管
//增加时可以这样增加,若不写auto_increment,则不能像下面插入,因为少一列
insert into student(sn,name) values(23,'fe');
insert into student(sn,name) values(24,'gh');

create table classes(
     id int primary key auto_increment,
     name varchar(20)
);

 


外键  关联其他表的主键或唯一键


班级表


一个班级对应许多同学

//一个同学属于一个班级,外键写在同学里
create table student(
   id int primary key auto_increment;
   sn int unique,
   name varchar(20) default'不知道'
   classes_id int,//所属班级
   foreign key(classes_id) references classes(id)
);
//classes_id int,
   foreign key(classes_id) references classes(id)这就把两张表关联起来了,学生的class_id属性对应到班级表的id里

insert into class (id,name) values(1,'2020届5班');
//关联班级之后在给学生表中插入时,要写上班级,因为相当于多了一个属性
insert into student(sn,name,classes_id) values (23,'sd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值