MySQL存储过程

一、外键

外键的主要作用是约束两个表之间数据的关联。

比如有个学生表,学生表中有学号,另外一个表为成绩表,统计成绩的使用以学号为依据

(也就是说,统计的时候学号只能从学生表中获取),

成绩表和学生表之间主要使用学号作为数据的联结。我们可以将学号设置为外键。

如何创建外键

1.创建学生表

CREATE TABLE jing(
id int not null auto_increment PRIMARY key,
s_no VARCHAR(50) not null,
s_name VARCHAR(50) not null
)

2、创建成绩表

CREATE TABLE jing01(
id int not null auto_increment PRIMARY key,
s_no VARCHAR(50) not null,
s_score INT(3) not null
)

建立外键关系

数据表--【右键】--【设计表】

 

 

 

 3、创建课程表

CREATE TABLE jing02(
id int not null auto_increment PRIMARY key,
c_no VARCHAR(50) not null,
c_name VARCHAR(50) not null
)

成绩表中要显示每个学员没门课程的成绩。

成绩表中需要有 c_no 表示课程id

成绩表中的 c_no 依赖 课程表中的 c_no, 所以需要再在 成绩表中为 c_no再建一个 外键。

--更改表结构
ALTER TABLE fanmao_students.jing01
add COLUMN c_no VARCHAR(50) not null AFTER id;

添加数据

INSERT INTO 	jing02(c_no,c_name) values ('2-301','语文');
INSERT INTO   jing02(c_no,c_name) VALUES ('2-303','英语');
INSERT INTO   jing02(c_no,c_name) VALUES ('2-302','数学');

添加外键

 

 

--统计所有学生姓名,课程名称,以及对应课程成绩

select jing.s_name, jing02.c_name, jing01.s_score from jing
LEFT join jing01
ON
jing.s_no = jing01.c_no
LEFT JOIN jing02
on
jing02.c_no = jing01.c_no;

  

 

posted @ 2020-11-10 19:58  Jing01  阅读(85)  评论(0)    收藏  举报