首页 > 代码库 > mysql 中多表 总结
mysql 中多表 总结
1.多表的创建语法
alter table 从表名 add constraint 外键名 foreign key (从表类名) references 主表名(主表列);
准备数据:
CREATE DATABASE one2many; USE one2many; #创建学生表 CREATE TABLE stu ( stuid VARCHAR(32) PRIMARY KEY, NAME VARCHAR(32), number INT , adress VARCHAR(32) ); INSERT INTO stu VALUES (‘s001‘,‘huluwa‘,123456,‘葫芦山‘); INSERT INTO stu VALUES (‘s002‘,‘automan‘,654321,‘北海道‘); #创建成绩表 CREATE TABLE score( scoid VARCHAR(32), chinese INT, math INT, english INT, studentid VARCHAR(32) #在成绩表中添加一列,存放学生表中学生ID ); INSERT INTO score VALUES(‘sc1‘,100,90,90,‘s001‘); INSERT INTO score VALUES(‘sc2‘,90,80,90,‘s002‘); INSERT INTO score VALUES(‘sc3‘,90,70,70,‘s001‘); INSERT INTO score VALUES(‘sc4‘,100,95,95,‘s002‘);
在上述两个表中,score表中的seudentid类存储了stu表中学生的信息,可以通过成绩在score表中查询到studentid后,在stu表中通过studentid的值查到该成绩对应的学生的信息,但此时两个表并没有添加外键关系,可以随意从表可以随意添加符合数据类型的值(这个值在主表中没有对应的信息).主表可以随意删除学生信息,删除后从表将查询不到,但是对应的考试成绩还存在,简单说就是主表可以随意删除数据,从表可以随意添加数据,这是不符合业务逻辑的
添加主键约束
ALTER TABLE score ADD CONSTRAINT stu_score FOREIGN KEY (studentid) REFERENCES stu(stuid);
此时主表随意删除数据(从表中未删除)或从表随意添加数据(主表中没有对应的值)时就会报错.------a foreign key constraint fails
2.多表的查询
1.
mysql 中多表 总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。