mysql数据库-外键

什么是外键?
外键的作用就是一个表中某列的值必须来自另一个表某列的值,否则数据将无法插入,这就是外键的作用
       外键使用的条件?
  所有的外键都必须在innodb表中使用,而mysqlisam表中是无法使用外键的
    什么是innodb表,mysqlisam表?
  mysqlisam表不支持事务处理,而innodb表支持事务处理,
    什么是事务处理?
  请看我将的pdo连接数据库吧,那里面将的比较详细了,就是一个自动提交,事务回滚。
   下面我演示一下外键的语法
在mysql数据库中打开命令框
show databases;  查看本机数据库
create database shujuku default character set gbk collate gbk_bin;   创建数据库名叫shujuku 字符集编码为gbk  连接校对胃gbk_bin
use shujuku;进入数据库shujuku
create table student(
id int primary key auto_increment,  创建一个列名叫id 类型为int类型   并设置为主键(primary key) 自动递增(auto_increment)
name varchar(8) not null,   创建一个name列名  类型是varchar型  不能为空(not  null)
sex char(2) not null    创建一个sex列名   类型是char 不能为空
)engine=innodb;               设置表的类型 
create table course(
cno int primary key auto_increment,  
cname varchar(8)  not null
);
create table score(
id int priary key,
cname vacahr(8) not null,
score double(1) default 0,
CONSTRAINT book_customer foreign key(id) references student(id) on delete cascade on update cascade,
CONSTRAINT book_customer foreign key(cname) references course(cname) on delete cascade on update cascade
)engine=innodb;   #红色部分代表着次外键名称

 蓝色部分就是重点,
foreign key(id) references student(id) on delete cascade on update cascade
意思讲的是 在本章表中(即是在score表中)的id列的值,必须是来自student表中的id值, 当我们对表student.id列进行删除、更新时相应的score表中的id也随之发生改变.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值