美文网首页
连接查询

连接查询

作者: 大晴天小阳光 | 来源:发表于2017-11-25 16:49 被阅读0次

SQL表连接查询(inner join、full join、left join、right join)

有两个表,一个是班级表,一个是学生表。

class 表的数据

student 表的数据

一、内连接-inner jion :

查询学生的名字和所在班级的名字

select stu_name,class_name from student as s,class as c where c.class_no = s.class_no;

上面就是我们最常见的inner join,即内连接,把符合class.class_no = student.class_no条件的元组才选出来,也可以写成:

select stu_name,class_name from student as s inner join class as c on c.class_no=s.class_no; 

查询结果

二、左连接-left join:

左连接是把左边的表的元组全部选出来:

select * from student s left join class c on s.class_no =c.class_no;

上面语句就是把左边的表,即student表中的元组全部选出,尽管有些学生在表中是没有班级的,也选了出来,选出的结果为:

三、右连接-right join:

右连接就是把右边表的数据全部取出,不管左边的表是否有匹配的数据:

select * from student s right join class c  on s.class_no=c.class_no

四、全连接-full join:

把左右两个表的数据都取出来,不管是否匹配:

select * from student  s full join class c on s.class_no = c.class_no;   

好像不支持全连接

#建表及数据准备

drop table if exists class;

create table class(

class_no int(2) unsigned zerofill primary key auto_increment comment '班级编号',

class_name varchar(30) not null comment '班级名称'

);

insert into class values(1, '培优班');

insert into class values(2, '普通班');

insert into class values(3, '提升班');

insert into class values(4, '高级班');

drop table if exists student;

create table student(

stu_no int(2) unsigned zerofill primary key auto_increment comment '学员编号',

stu_name varchar(30) not null comment '学员姓名',

stu_sex varchar(3) not null comment '学员性别',

stu_age tinyint(2) unsigned zerofill comment '学员年代',

grade double(5,2) zerofill comment '成绩',

class_no int(2) unsigned zerofill comment '所在班级编号',

foreign key(class_no) references class(class_no)

);

insert into student values(01, '李白', '男', 18, 60, 01);

insert into student values(02, '杜甫', '男', 20, 76, 01);

insert into student values(03, '张飞', '男', 32, 80, 02);

insert into student values(04, '韩信', '男', 26, 98, 02);

insert into student values(05, '了龙', '男', 27, 56, 02);

insert into student values(06, '大乔', '女', 17, 88, 01);

insert into student values(07, '小乔', '女', 16, 96, 01);

insert into student values(08, '小乔', '女', 16, 90, 01);

insert into student values(09, '关哥', '男', 32, 80, 02);

insert into student values(10, '刘备', '男', 36, 98, null);

连接查询的分类

1: 内连接

2: 外连接

3: 自然连接

相关文章

  • mysql连接查询,自关联,子查询

    mysql支持三种类型的连接查询,分别为:内连接查询,左连接查询,右连接查询 内连接查询: 左连接查询: 右连接查...

  • mysql-数据查询语句-多表

    连接查询 连接查询,是关系数据库中最主要的查询,包括等值查询、自然连接查询、非等值查询、自身连接查询、外连接查询和...

  • python学习笔记-数据库06_连接查询

    连接查询可以实现多表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成连接查询可以分为:内连接查询左连接...

  • EF Core 备忘

    模糊查询sql linq 内连接查询sql linq 左连接查询sql linq 左连接查询(连接内带条件)sql...

  • mysql的用法3

    -- ==============连接查询==================-- 1.连接查询: 同时查询多个表...

  • Mysql--连接查询和子查询

    连接查询和子查询 一、连接查询 1.1 概念 连接查询:也可以叫跨表查询,需要关联多个表进行查询 1.2 根据年代...

  • 52 SQL 复习 语句关系代数(三)

    多表查询 等值连接查询和非等值连接查询 JOIN ON 自然连接 自身连接 注意,如果属性名在参与连接的各个表中是...

  • 第三天下午、自连接、子连接、分页查询

    自连接 查询每个员工的编号、姓名、领导姓名 外连接查询 连接查询代码 课下作业题 子查询(分页查询) 查找工资最高...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

网友评论

      本文标题:连接查询

      本文链接:https://www.haomeiwen.com/subject/dbbxuxtx.html