数据库多表操作一

简介: 数据库多表操作

多表查询

CREATE TABLE DEPT(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
INSERT INTO dept (NAME) VALUES(‘开发部’),(‘市场部’),(‘财务部’);
CREATE TABLE empp(
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 empp(NAME,gender,salary,join_date,dept_id) VALUES(‘孙悟空’,‘男’,7200,‘2013-02-24’,1);
INSERT INTO empp(NAME,gender,salary,join_date,dept_id) VALUES(‘猪八戒’,‘男’,3600,‘2010-12-02’,2);
INSERT INTO empp(NAME,gender,salary,join_date,dept_id) VALUES(‘唐僧’,‘男’,9000,‘2008-08-08’,2);
INSERT INTO empp(NAME,gender,salary,join_date,dept_id) VALUES(‘白骨精’,‘女’,5000,‘2015-10-07’,3);
INSERT INTO empp(NAME,gender,salary,join_date,dept_id) VALUES(‘蜘蛛精’,‘女’,4500,‘2011-03-14’,1);

多表代码 SELECT * FROM empp, dept; 查询多表代码 会出以下结果,多表查询就是除去多余的结果

1 孙悟空 男 7200 2013-02-24 1 1 开发部

1 孙悟空 男 7200 2013-02-24 1 2 市场部

1 孙悟空 男 7200 2013-02-24 1 3 财务部

2 猪八戒 男 3600 2010-12-02 2 1 开发部

2 猪八戒 男 3600 2010-12-02 2 2 市场部

2 猪八戒 男 3600 2010-12-02 2 3 财务部

3 唐僧 男 9000 2008-08-08 2 1 开发部

3 唐僧 男 9000 2008-08-08 2 2 市场部

3 唐僧 男 9000 2008-08-08 2 3 财务部

4 白骨精 女 5000 2015-10-07 3 1 开发部

4 白骨精 女 5000 2015-10-07 3 2 市场部

4 白骨精 女 5000 2015-10-07 3 3 财务部

5 蜘蛛精 女 4500 2011-03-14 1 1 开发部

5 蜘蛛精 女 4500 2011-03-14 1 2 市场部

5 蜘蛛精 女 4500 2011-03-14 1 3 财务部

笛卡尔积:有两个集合A B 去这两个集合所有的组合情况

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

多表查询分类

内连接查询

隐式内连接:使用where条件 SELECT * FROM empp, dept WHERE empp.dept_id = dept.id;
SELECT empp.NAME,empp.gender,dept.NAME FROM empp, dept WHERE empp.dept_id = dept.id;
SELECT
t1.NAME,t1.gender,t2.NAME 把需要查询的定义成 t1 t2
FROM
empp t1,dept t2
WHERE
t1.dept_id = t2.id;

显式内连接:

语法:

SELECT 字段列表 FROM 表1 INNER JOIN 表2 ON 条件;
SELECT * FROM empp INNER JOIN dept ON empp.dept_id = dept.id;

外连接查询

左外连接:SELECT 字段列表 FROM 表1 LEFT OUTER JOIN 表2 ON 条件

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

右外连接:SELECT 字段列表 FROM 表1 RIGHT OUTER JOIN 表2 ON 条件

查询的是右表所有数据以及交集部分

子查询

嵌套查询就是子查询

SELECT * FROM 表名 WHERE 表名.列名 = (其他查询语句);
相关文章
|
2月前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错合集之cdc postgres数据库,当表行记录修改后报错,该如何修改
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL 监控 关系型数据库
实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
关系型数据库 Java 数据库
实时计算 Flink版操作报错合集之flinksql采PG数据库时报错,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之在处理PostgreSQL数据库遇到报错。该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
消息中间件 关系型数据库 数据库
实时计算 Flink版操作报错合集之在使用RDS数据库作为源端,遇到只能同步21个任务,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL 数据库 Python
Django框架数据库ORM查询操作(6)
【7月更文挑战第6天】```markdown Django ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序
50 1
|
2月前
|
存储 监控 安全
安全规范问题之跟数据库交互涉及的敏感数据操作需要有哪些措施
安全规范问题之跟数据库交互涉及的敏感数据操作需要有哪些措施
|
2月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之无法连接到指定的数据库实例,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
DataWorks 关系型数据库 MySQL
DataWorks操作报错合集之从OceanBase(OB)数据库调度数据到MySQL数据库时遇到连接报错,该怎么办
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 安全 关系型数据库
Kingbase(人大金仓数据库)(总结全网精华,虚拟机:从安装到操作数据库一条龙)
KingbaseES 是一款由中国人大金仓信息技术股份有限公司自主研发的通用关系型数据库管理系统(RDBMS),专为中国市场设计,广泛应用于政府、金融、能源、电信等多个关键行业。它是国产数据库的代表之一,以其高安全性、高可用性和高性能著称,符合中国信息技术领域的自主可控要求。以下是关于KingbaseES的一些关键特点和功能:
224 0