MySQL表格建立的简单实例

表格的图样

表格的参数可以自己取,也可以去网上搜索一个练习(如果和博主一样是一个取名困难者),本文中的表格的参数是搜索的一个模板。

class
cid caption
1 三年二班
2 一年三班
3 三年一班
student
sid sname gender class_id
1 钢蛋 1
2 铁锤 1
3 山炮 2
course
cid cname teacher_id
1 生物 1
2 体育 1
3 物理 2
teacher
tid tname
1 波多
2 苍空
3 饭岛
score
sid student_id course_id number
1 1 1 60
2 1 2 59
3 2 2 100

以上就是全部的表格。

思路分析及代码

首先浏览5个表格,在其中寻找之间的联系,我们可以发现class表和teacher表最简单,没有受到其他表格的影响,也就是没有外键,所以优先建立这两个表格。

CREATE TABLE `class`(
        #将cid设为主键并自增
	`cid` INT PRIMARY KEY AUTO_INCREMENT,
	`caption` VARCHAR(80) NOT NULL UNIQUE
);
CREATE TABLE `teacher`(
        #将tid设为主键并自增
	`tid` INT PRIMARY KEY AUTO_INCREMENT,
	`tname` VARCHAR(80) NOT NULL
);

将两个表格建立好后,浏览剩下的三个表格,发现student表和course表都只涉及一个外键,分别和class表的编号与teacher表的编号有关联,跟随这两个参数变化,说明各自涉及一个外键。

CREATE TABLE `student`(
        #将sid设为主键,自增
	`sid` INT PRIMARY KEY AUTO_INCREMENT,
	`sname` VARCHAR(80) NOT NULL,
	`gender` ENUM('男','女') DEFAULT'男',
	`class_id` INT,
        #根据表的列,将各自的列设置好后,再添加外键
	FOREIGN KEY (`class_id`) REFERENCES `class`(`cid`)
);

与上表同理:

CREATE TABLE `course`(
	`cid` INT PRIMARY KEY AUTO_INCREMENT,
	`cname` VARCHAR(80) NOT NULL UNIQUE,
	`teacher_id` INT,
	FOREIGN KEY (`teacher_id`) REFERENCES `teacher`(`tid`)
);

最后只有一个表了:

CREATE TABLE `score`(
	`sid` INT PRIMARY KEY AUTO_INCREMENT,
	`student_id` INT,
	`course_id` INT,
	`number` INT UNSIGNED,
        #将两个外键添加
	FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`),
	FOREIGN KEY (`course_id`) REFERENCES `course` (cid)
);
#添加数据
INSERT `class` (`caption`) VALUES ('三年二班');
INSERT `class` (`caption`) VALUES ('一年三班');
INSERT `class` (`caption`) VALUES ('三年一班');
INSERT `student` (`sname`,`gender`,`class_id`) VALUES ('钢蛋','女',1);
INSERT `student` (`sname`,`gender`,`class_id`) VALUES ('铁锤','女',1);
INSERT `student` (`sname`,`gender`,`class_id`) VALUES ('山炮','男',2);
INSERT `teacher` (`tname`) VALUES ('波多');
INSERT `teacher` (`tname`) VALUES ('苍空');
INSERT `teacher` (`tname`) VALUES ('饭岛');
INSERT `course` (`cname`,`teacher_id`) VALUES ('生物',1);
INSERT `course` (`cname`,`teacher_id`) VALUES ('体育',1);
INSERT `course` (`cname`,`teacher_id`) VALUES ('物理',2);
INSERT `score` (`student_id`,`course_id`,`number`) VALUES (1,1,60);
INSERT `score` (`student_id`,`course_id`,`number`) VALUES (1,2,59);
INSERT `score` (`student_id`,`course_id`,`number`) VALUES (2,2,100);

 

你可能感兴趣的:(小白)