mysql与python的关系_Python学习笔记——mysql数据库建立关系表与连接查询

建立关系表

假如我们现在要建立三张表

学生表(students):

id

name

gender

科目表(subjects):

id

title

成绩表(scores):

id

score

stutid(外键)

subid(外键)

create database stu chartset=utf8;

use stu;

create table students(int id auto_increment primary key,name varchar(10) not null,gender bit default 1 )

create table subjects(int id auto_increment primary key,title varchar(10) not null)

create table scores(int id auto_increment primary key,score decimal(4,1) not null,stuid int,subid int,foreign key(stuid) references students(id),foreign key(subid) references subjects(id));

最有一个分数表的建立,也可以先建立表,然后在添加外键

建立表:create table scores(int id auto_increate primary key not null,score decimal(4,1) not null);

添加外键:alter table scores add constraint stu_scores foreign key(stuid) references students(id);

alter table scores add constraint sub_scores foreign key(subid) references subjects(id);

从建立数据库,到建立表,全部完成。外键的建立是重点。

连接查询

不管是那种连接,join 左边的表 在头,右边的表在尾

inner join

我们想查询成绩,想要显示名字,科目,分数这样形式的显示(小明,语文,95)

select students.name , subjects.title , scores.score from scores inner join scores.stuid = students.id inner join scores.subid = subjects.id;

有关系的所有数据会显示,如果没有关系的 就不会显示

例如,小明没有语文成绩,则就不会显示小明语文成绩这一项

left/right join

例子同上

select students.name , subjects.title , scores.score from scores left join scores.stuid = students.id left join scores.subid = subjects.id;

以左表为准,就算左表中有部分数据在右表中没有数据,也要显示出来,没有数据的地方填写null

使用right关键字同理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值