mysql city_LuffyCity-MySQL综合练习50实例

1、请创建如下表,并添加相应约束;

3402a334f71d3313aa132ca23cec335e.png

2、自行构造测试数据;

新建数据库

创建表

构造测试数据

#Step1-创建数据库LuffyCity_MySQL;

#CREATE DATABASELuffyCity_MySQL CHARSET utf8;

#Step2-创建数据表;

#1、创建年级表class_grade(因为class表的外键要参考class_grade表的gid字段);CREATE TABLEclass_grade (

gidINT NOT NULL PRIMARY KEYAUTO_INCREMENT,

gnameVARCHAR (12) NOT NULL UNIQUE#年级的名称也是唯一值;指定存储引擎为InnoDB,字符编码为utf8后续不再赘述;

) ENGINE= INNODB CHARSET =utf8;

#2、创建班级表class(因为学生表的外键class_id要参考班级表的cid字段);CREATE TABLEclass (

cidINT NOT NULL PRIMARY KEYAUTO_INCREMENT,

captionVARCHAR (16) NOT NULL UNIQUE,

#班级名称也为唯一值;

grade_idINT NOT NULL,CONSTRAINT fk_class_grade FOREIGN KEY (grade_id) REFERENCES class_grade (gid) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE= INNODB CHARSET =utf8;

#3、学生表student(与class表多对一关系);CREATE TABLEstudent (

sidINT NOT NULL PRIMARY KEYAUTO_INCREMENT,

snameVARCHAR (12) NOT NULL,

gender ENUM ('男', '女') DEFAULT '男' NOT NULL,

class_idINT NOT NULL,CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES class (cid) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE= INNODB CHARSET =utf8;

#4、老师表teacher(因为课程表的外键teacher_id要参考老师表的tid字段);CREATE TABLEteacher (

tidINT NOT NULL PRIMARY KEYAUTO_INCREMENT,

tnameVARCHAR (8) NOT NULL) ENGINE= INNODB CHARSET =utf8;

#5、课程表course(因为成绩表的外键course_id要参考课程表的cid字段);CREATE TABLEcourse (

cidINT NOT NULL PRIMARY KEYAUTO_INCREMENT,

cnameVARCHAR (8) NOT NULL UNIQUE,

#课程名唯一值;

teacher_idINT NOT NULL,CONSTRAINT fk_teacher FOREIGN KEY (teacher_id) REFERENCES teacher (tid) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE= INNODB CHARSET =utf8;

#6、成绩表(因为成绩表的外键course_id要参考课程表的cid字段);CREATE TABLEscore (

sidINT NOT NULL UNIQUEAUTO_INCREMENT,

student_idINT NOT NULL,

course_idINT NOT NULL,

scoreINT NOT NULL,CONSTRAINT fk_student FOREIGN KEY (student_id) REFERENCES student (sid) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_course FOREIGN KEY (course_id) REFERENCES course (cid) ON DELETE CASCADE ON UPDATE CASCADE,PRIMARY KEY(student_id, course_id) #多字段联合主键;

) ENGINE= INNODB CHARSET =utf8;

#7、班级任职表teach2cls;CREATE TABLEteach2cls (

tcidINT NOT NULL UNIQUEAUTO_INCREMENT,

tidINT NOT NULL,

cidINT NOT NULL,CONSTRAINT fk_teacher1 FOREIGN KEY (tid) REFERENCES teacher (tid) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_class1 FOREIGN KEY (cid) REFERENCES class (cid) ON DELETE CASCADE ON UPDATE CASCADE,PRIMARY KEY(tid, cid)

) ENGINE= INNODB CHARSET =utf8;

#Step3-插入测试数据;

#年级表;创建6个年级;INSERT INTOclass_grade (gname)VALUES('一年级'),

('二年级'),

('三年级'),

('四年级'),

('五年级'),

('六年级');

#班级表;每个年级指定n个班级;INSERT INTOclass (caption, grade_id)VALUES('一年级1班', 1),

('一年级2班', 1),

('一年级3班', 1),

('二年级1班', 2),

('二年级2班', 2),

('三年级1班', 3),

('四年级1班', 4),

('四年级2班', 4),

('四年级3班', 4),

('四年级4班', 4),

('五年级1班', 5),

('六年级1班', 6),

('六年级2班', 6);

#学生表;INSERT INTOstudent (sname, gender, class_id)VALUES('高志粉', '女', 1),

('李静瓶', '女', 2),

('崔晓昭', '男', 3),

('崔晓姗', '女', 4),

('崔晓思', '女', 5),

('崔青良', '男', 6),

('崔晓磊', '男', 7),

('高志国', '男', 8),

('崔晓岩', '女', 9),

('高晨曦', '女', 10),

('陈浩', '男', 11),

('陈浩茹', '女', 10),

('高若曦', '女', 9),

('武倩倩', '女', 12),

('武若冰', '女', 13);INSERT INTOteacher (tname)VALUES('崔树齐'),

('宋俊泽'),

('孙增良'),

('张传伟'),

('邓琼');INSERT INTOcourse (cname, te

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值