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;

浙公网安备 33010602011771号