MySQL基础学习第九课(了解使用,交叉连接、内连接、自连接查询的方法)

                                                              以实验作业进行讲解
1.进入mysql服务器中,首先执行"drop database if exists two"语句,以此确保打开的mysql中没有数据库two。
2.创建名为two的数据库。

3.练习题使用数据库two并按以下要求创建数据表department。

(1)字段did:设置数据类型int(4)、非空约束、主键约束。 //非空约束:not null 主键约束:primary key

(2)字段dname:设置数据类型varchar(36)。

操作如下:

 并插入以下数据:

4.继续使用数据库two创建数据表employee。

(1)字段id:设置数据类型int(4)、非空约束、主键约束。

(2)字段name:设置数据类型varchar(36)。

(3)字段age:设置数据类型int(2)。

(4)字段did:设置数据类型int(4)、非空约束。

操作如下:

并插入如下数据:

 交叉连接:交叉连接返回的结果是被连接的两个表中所有数据行的笛卡尔积,也就是返回第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数,例如:department表中有四个部门,employee表中有四个员工,那么交叉连接的结果就是连接排序在一起,一般情况下很少使用。

例题:使用交叉连接查询部门(department)表和员工(employee)表中所有数据。

代码为:select * from department,employee;

操作如下:

 内连接(inner join):又称简单连接和自然连接,是一种常见的连接查询。内连接使用比较运算符对两个表中的数据进行比较,并列出与连接匹配的数据行,组合成新的记录,也就是说在内连接查询中,只有满足条件的记录才能出现在查询结果中。

例题:使用内连接查询department和employee部门号(did)相同的员工部门及姓名。

代码为: select department.dname,employee.name from employee join department on department.did=employee.did;

操作如下:


 

例题:使用where条件语句实现以上的查询功能。

代码为:select department.dname,employee.name from employee,department where department.did=employee.did;

自连接查询:自连接查询是一种特殊的内连接,它是指相互连接的表格在物理上为同一个表,但是逻辑上分为两个表。

                                                              employee

employee as P1                                                                                              employee as P2

as:设置别名                                                                                                         as:设置别名

                                                                                             

 例题:使用employee表,利用自连接查询“王红”所在的部门有那些员工。

代码为:select p2.* from employee as p1 join employee as p2 where p1.did=p2.did;

操作如下:

 例题:使用where条件语句实现以上的查询功能。

代码为:select p2.* from employee as p1 join employee as p2 where p1.did=p2.did and p1.name="王红";

操作如下:

 

                                             

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值