mysql--基本语句3-多表查询1
1 use learn_db ; 2 3 # 创建主表 4 create table class_teachers( 5 id int primary key auto_increment not null comment '班主任ID', 6 name varchar(20) not null comment '班主任名字' , 7 gender boolean default 0 comment '0:保密,1:男,2:女' , 8 age int comment '班主任年龄' 9 10 ) ; 11 # 主表插入数据 12 insert into class_teachers(name, gender, age) values ('冰冰', 2, 22), 13 ('丹丹', 2, 25), 14 ('歪歪', 1, 27), 15 ('珊珊', 2, 26), 16 ('小雨', 2, 30); 17 18 # 创建子表 19 create table class_students( 20 id int primary key auto_increment not null comment '学生ID', 21 name varchar(20) not null comment '学生姓名' , 22 teacher_id int not null comment '班主任ID' 23 24 ) engine = innodb ; 25 26 # 子表插入数据 27 insert into class_students(name, teacher_id) values ('学生1', 2), 28 ('学生2', 4), 29 ('学生3', 1), 30 ('学生4', 3), 31 ('学生5', 1), 32 ('学生6', 3), 33 ('学生7', 2) ; 34 35 # 查询主表 36 select * from class_teachers ; 37 # 查询子表 38 select * from class_students ; 39 40 # 创建外键(在子表中创建) 41 drop table class_students; 42 show tables ; 43 44 create table class_students( 45 id int primary key auto_increment not null comment '学生ID', 46 name varchar(20) not null comment '学生姓名' , 47 teacher_id int not null comment '班主任ID' , 48 foreign key (teacher_id) references class_teachers(id) 49 50 ) engine = innodb ; 51 52 insert into class_students(name, teacher_id) values ('学生1', 2), 53 ('学生2', 4), 54 ('学生3', 5), 55 ('学生4', 3), 56 ('学生5', 5), 57 ('学生6', 3), 58 ('学生7', 2) ; 59 60 # teacher 61 select * from class_teachers ; 62 # student 63 select * from class_students ; 64 65 66 # 插如外键 67 show create table class_students2 ; 68 alter table class_students2 add constraint teacher_id foreign key (teacher_id) references class_teachers(id) ; 69 show create table class_students2 ; 70 # 删除外键 71 alter table class_students2 drop foreign key teacher_id ; 72 show create table class_students2 ; 73 74 # 连级删除 75 /* 76 foreign key (子表字段) references + 主表(主表字段) on delete cascade 77 -- 删除连级 78 alter table + 表名 drop foreign key + 外键名 79 -- 连接删除后子表对应字段为Null ,子表的外键不能设置not null 80 alter table + 表名 add constraint + 外键名 foreign key (子表字段) references + 主表(主表字段) 81 82 */ 83 84 select * from class_students, class_teachers ; 85 select * from class_teachers, class_students ; 86 87 select * from class_teachers, class_students where class_teachers.id=class_students.teacher_id ; 88 select * from class_students,class_teachers where class_students.teacher_id=class_teachers.id ; 89 select class_students.name, class_teachers.name from class_students,class_teachers where class_students.teacher_id=class_teachers.id and class_students.name='学生3';
本文来自博客园,作者:关于段主任的一切,转载请注明原文链接:https://www.cnblogs.com/fairylandfuture/p/15068109.html

浙公网安备 33010602011771号