首页 > 其他分享 >多表查询-概述,内连接,外连接

多表查询-概述,内连接,外连接

时间:2022-10-11 17:02:56浏览次数:61  
标签:多表 name gender 连接 dept 概述 emp join id

多表查询-概述

笛卡尔积:

  有两个集合A,B。取这两个集合的所有组成情况

  要完成多表查询,需要消除无用的数据

CREATE TABLE dept(
	id INT PRIMARY KEY auto_increment,
	name VARCHAR(20)
);
INSERT INTO dept (NAME) VALUE ('开发部'),('市场部'),('财务部');


CREATE TABLE emp(
	id INT PRIMARY KEY auto_increment,
	name VARCHAR(10),
	gender CHAR(1),
	salary DOUBLE,
	join_date date,
	dept_id INT,
	FOREIGN KEY (dept_id) REFERENCES dept(id)
);

insert into emp(name,gender,salary,join_date,dept_id) VALUES ('孙悟空','男',7200,'2013-02-24',1);
insert into emp(name,gender,salary,join_date,dept_id) VALUES ('猪八戒','男',3600,'2010-12-02',2);
insert into emp(name,gender,salary,join_date,dept_id) VALUES ('唐僧','男',9000,'2008-08-08',2);
insert into emp(name,gender,salary,join_date,dept_id) VALUES ('白骨精','女',5000,'2015-10-07',3);
insert into emp(name,gender,salary,join_date,dept_id) VALUES ('蜘蛛精','女',4500,'2011-03-14',1);

  

多表查询-内连接

隐式内连接:使用where条件消除无用数据

-- 查询员工表的名臣,性别 ,部门表的名称
SELECT emp.name,emp.gender,dept.name from emp,dept where emp.dept_id = dept.id

 

显式内连接:

语法:select 字段列表 from 表名1 [inner] join 表名2 on 条件

SELECT * from emp inner join dept on emp.dept_id = dept.id

 

多表查询-外连接

左外连接:

  语法:select 字段列表 from 表1 left [outer] join 表2 on  条件

  查询的事左表所有数据以及其交集部分

SELECT t1.*,t2.name from emp t1 left join dept t2 on t1.dept_id = t2.id

  

右外连接:

  语法:select  字段列表 from  表1 right [outer] join  表2 on 条件

  查询的事右边表所有数据以及其交集部分

SELECT t1.*,t2.name from emp t1 right join dept t2 on t1.dept_id = t2.id

  

标签:多表,name,gender,连接,dept,概述,emp,join,id
From: https://www.cnblogs.com/yuzong/p/16779679.html

相关文章

  • SpringBoot学习-(十三)SpringBoot中建立WebSocket连接(STOMP)
    STOMP协议介绍STOMP,StreamingTextOrientatedMessageProtocol,是流文本定向消息协议,是一种为MOM(MessageOrientedMiddleware,面向消息的中间件)设计的简单文本协议。它提......
  • 514多表关系多对多关系实现和515多表关系一对一关系实现
    多对多关系实现1.如学生和课程,分析: 多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键  一对一关......
  • mysql 的连接问题
    --查看mysql的最大连接数showvariableslike'%max_connections%'--查看此时mysql的连接数量showstatuslike'Threads%'--查看mysql的连接的用户的信息s......
  • 512多表关系介绍和513多表关系介绍一对多关系实现
    多表关系介绍1.一对一(了解):如:人和身份证。分析:一个人只有一个身份证,一个身份整只能对应一个人2.一对多(多对一):如部门员工。分析:一个部门有多个员工,一个员工只能,对应一个部......
  • 范式概述和三大范式详解
    范式概述概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求,设计关系数据库时,尊从不同的规范要去,射击诸合理的关系型数据库,这些不......
  • 东方通配置瀚高数据库连接池:“autoCommit”问题处理
    瀚高数据库目录环境症状问题原因解决方案环境系统平台:N/A版本:4.5.7,6.0症状项目使用了东方通的连接池,配置的瀚高数据库,运行提示“couldnotinspectJDBCautocommitmode;......
  • navicat远程连接数据库遇到的问题 11001 unknown error
    今天用navicate连接docker中的MySQL数据库时出现了以下的错误原因:输入主机的IP时在后面多打了一个空格键去除空格之后即可正确连接了......
  • 多表关系-案例
    多表关系-案例--创建旅游线路分类表tab_categore--cid旅游限度分类主键,自动增长--cname旅游线路分类名称非空,唯一字符串100CREATETABLEtab_category( cidIN......
  • 范式概述和三大范式详解
    范式概述数据库设计的范式概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求设计数据库时,遵从不同的规范要求,设计出合理......
  • 多表关系介绍和多表关系_一对多关系实现,多对多关系实现、一对一关系实现
    多表关系介绍多表之间的关系:一对一(了解):比如:人和身份证分析:一个人只有一个身份证,一个身份证只能对应一个人多对一(一对多)比如:部门......