`
java1573
  • 浏览: 123350 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

数据库“对等连接”的深入理解

SQL 
阅读更多

标题:“对等连接”的深入理解

数据库核心:关系型
关系的体现:一个表设置编号,其它表使用这个编号。通过“编号”是否相等来体现“关系”。

关键字:“编号相等”
用途:多表连接的条件
select *
from 表1,表2
where 表1.编号=表2.编号

更广泛的理解:
1、相关子查询
select 字段1,
(
  select count(字段2) from 表2
  where 表1.编号=表2.编号
)
from 表1
2、exists子句(存在)
select 字段1 from 表1
where not exists
(
  select *  from 表2
  where 表1.编号=表2.编号
)

3、from子查询(最灵活)
select 字段1
from 表1,
(
 select * from 表2
) a
where a.编号=表1.编号


4、多表更新
update 表1 set 字段1=(
   select 字段1 from 表2
   where 表1.编号=表2.编号
)
where 条件

 


需求:更新年龄在20以上(包括20)的姓名
--普通写法
update emp_memo t set t.ename='aa' where t.age>=20

--多表更新
update emp_memo t set t.ename=
(
  select e.ename from emp e
  where t.empno=e.empno
)
where t.age>=20

--提交
commit


测试数据:
prompt PL/SQL Developer import file
prompt Created on 2007-10-12 by Administrator
set feedback off
set define off
prompt Dropping EMP...
drop table EMP cascade constraints;
prompt Dropping EMP_MEMO...
drop table EMP_MEMO cascade constraints;
prompt Creating EMP...
create table EMP
(
  EMPNO    NUMBER(4) not null,
  ENAME    VARCHAR2(10),
  JOB      VARCHAR2(9),
  MGR      NUMBER(4),
  HIREDATE DATE,
  SAL      NUMBER(7,2),
  COMM     NUMBER(7,2),
  DEPTNO   NUMBER(2)
)
;
alter table EMP
  add constraint PK_EMP primary key (EMPNO);
alter table EMP
  add constraint FK_DEPTNO foreign key (DEPTNO)
  references DEPT (DEPTNO);

prompt Creating EMP_MEMO...
create table EMP_MEMO
(
  EMPNO NUMBER(4),
  ENAME VARCHAR2(10),
  MEMO  VARCHAR2(50),
  AGE   NUMBER
)
;
comment on table EMP_MEMO
  is '多表更新:将dept中员工姓名更新到dept2的员工姓名';

prompt Disabling triggers for EMP...
alter table EMP disable all triggers;
prompt Disabling triggers for EMP_MEMO...
alter table EMP_MEMO disable all triggers;
prompt Disabling foreign key constraints for EMP...
alter table EMP disable constraint FK_DEPTNO;
prompt Loading EMP...
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, to_date('09-06-1981', 'dd-mm-yyyy'), 2450, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300, null, 10);
commit;
prompt 14 records loaded
prompt Loading EMP_MEMO...
insert into EMP_MEMO (EMPNO, ENAME, MEMO, AGE)
values (7369, null, '了解LOVO', 15);
insert into EMP_MEMO (EMPNO, ENAME, MEMO, AGE)
values (7521, null, '榕城→蓉城', 25);
insert into EMP_MEMO (EMPNO, ENAME, MEMO, AGE)
values (7521, null, '蓉城→LOVO', 23);
insert into EMP_MEMO (EMPNO, ENAME, MEMO, AGE)
values (7369, null, 'LOVO报名', 30);
commit;
prompt 4 records loaded
prompt Enabling foreign key constraints for EMP...
alter table EMP enable constraint FK_DEPTNO;
prompt Enabling triggers for EMP...
alter table EMP enable all triggers;
prompt Enabling triggers for EMP_MEMO...
alter table EMP_MEMO enable all triggers;
set feedback on
set define on
prompt Done.

分享到:
评论

相关推荐

    数据库代码示例.rar

    综上所述,"数据库代码示例.rar"可能涵盖了一系列与数据库交互的实例,涉及了数据库的连接、查询、操作和优化等方面,这对于学习和理解数据库技术具有很高的价值。通过深入研究这些示例,开发者可以提升自己在数据...

    分布式数据库课件与习题

    本课件与习题集合主要涵盖了分布式数据库的基础理论、设计原则以及实际应用,旨在帮助学习者深入理解和掌握这一领域的核心概念。 一、分布式数据库的基本概念 1. 分布式数据库系统(Distributed Database System, ...

    18 深入理解StatefulSet(一):拓扑状态.pdf

    在深入探讨StatefulSet之前,我们需要理解其设计背景,即有状态应用和无状态应用的区别,以及为何无状态应用的编排方法无法满足有状态应用的需求。 有状态应用(StatefulApplication)是指那些实例间存在不对等关系...

    分布式数据库课件资料宝典

    这份“分布式数据库课件资料宝典”无疑是深入理解这一领域的绝佳资源。下面,我们将详细探讨分布式数据库的相关知识点。 一、分布式数据库的基本概念 分布式数据库系统是由两个或多个相互连接的局部数据库组成的,...

    对等图-导入和导出数据库

    通过研究这些代码,可以深入理解导入和导出过程的细节。 8. **服务器无状态**:对等图的一个核心特性是它通常不依赖中心服务器。理解这种去中心化的架构如何影响数据库的同步和一致性是至关重要的。 通过以上知识...

    分布式数据库知识资料

    分布式数据库是一种特殊的数据库系统,它将数据分布在不同的物理位置上,通过网络进行...通过学习这份资料,读者可以深入理解分布式数据库的原理,掌握如何设计和管理分布式数据库系统,以应对现代企业级应用的挑战。

    分布式数据库技术与应用课件

    邵佩瑛教授的《分布式数据库技术与应用》第二版讲稿,为我们提供了深入理解和掌握这一技术的宝贵资源。下面将详细阐述分布式数据库的基本概念、重要特性以及相关应用。 一、分布式数据库基本概念 分布式数据库是由...

    实现在对等网络中的p2p聊天软件

    综上所述,实现P2P聊天软件需要深入理解P2P网络原理、通信协议、加密技术、分布式存储和前端开发等多个领域。"Graph Chat"可能是一个用于展示这些概念的项目,它可能利用图形化的方式来表示网络拓扑和节点间的交互,...

    基于Java的实例源码-OrientDB(基于Java的实例源码-文档数据库) 社区版.zip

    5. **使用与集成**:在Java项目中集成OrientDB,开发者需要了解如何配置数据库连接、创建数据库、操作文档、执行查询以及处理事务。源码分析可以帮助理解这些过程,同时提供示例代码作为参考。 6. **图形数据库**:...

    ASP网站实例开发源码——Play99_P2P电视频道(源码+数据库).zip

    在Play99_P2P电视频道的实例中,你可以深入理解ASP如何处理用户请求,生成动态内容,以及与数据库交互来实现视频频道的管理和播放。 1. **ASP基础** - **脚本语言**:ASP支持VBScript和JScript,VBScript是默认的...

    达梦数据库大规模并行处理MPP技术白皮书.pdf

    白皮书强调了几个基本概念,例如执行节点(EP)、主从EP、数据分布、MAL系统、全局连接与本地连接等,并对MPP并行执行计划进行了深入分析,包括并行计划相关操作符、并行计划的生成、数据分布与并行执行计划的关系,...

    文件夹监控,文件解析,操作数据库

    ADO(ActiveX Data Objects)是微软提供的一个数据库访问接口,允许程序员通过OLE DB或ODBC标准连接各种数据库,如SQL Server、Oracle、MySQL等。使用ADO,可以执行SQL语句,插入、更新、删除数据,以及获取查询结果...

    基于语义异构数据库的概念格分布式构造算法研究.pdf

    文章中提到的异构信息系统分类,包括语义异构、平台异构、语法异构和构造异构,这些分类都是对信息系统异构性的一种描述,有助于深入理解异构问题的本质。 最后,文章中提到的定义1、定义2、定义3、定义4给出了形式...

    Peer to Peer Replication - Chs

    通过以上步骤的学习和实践,参与者不仅能够掌握SQL Server 2008对等复制的基本操作流程,还能深入理解其背后的技术原理和最佳实践。这对于在真实工作环境中部署和维护高可用性的数据库系统具有重要的意义。

    最全APP蓝牙连接功能.自动适配

    在深入探讨蓝牙连接功能之前,我们需要理解蓝牙的工作原理。蓝牙技术允许设备之间短距离无线通信,通过建立一对对等的连接,设备可以相互通信并交换数据。BLE技术进一步优化了这一点,它降低了功耗,同时提供了足够...

    SQLSERVER自学通

    5. **查询语言T-SQL**:深入学习SELECT语句,包括选择、投影、连接、分组、排序、子查询、联接操作等。掌握聚合函数如COUNT、SUM、AVG、MIN、MAX的使用。 6. **视图和存储过程**:理解视图的概念和用途,如何创建和...

    PaperDB:基于IPFS和Orbit-DB的分布式,对等,类似于Firestore的No-SQL数据库解决方案

    **PaperDB:构建分布式No-SQL数据库的新方案** PaperDB是一种创新的数据库解决方案,它结合了...通过深入理解IPFS、Orbit-DB以及No-SQL数据库的工作原理,开发者可以充分利用PaperDB构建高效、安全的去中心化应用。

    windowsnt 技术内幕

    怎样准备70-073考试 理解工作站与客户端 理解为什么要参加70-073测试 理解Windows NT体系结构 深入理解用户模式内核模式 Windows NT Executive简介 理解Windows NT内存模型的优点 理解中央管理的优点 登录到Windows ...

    网络游戏-对等网络中点到点最短路径计算系统.zip

    首先,我们要理解对等网络的工作原理。在P2P网络中,每个节点(通常是游戏玩家的计算机)都具有相同的权利和功能,可以发送和接收数据。这种分布式架构减少了中心服务器的压力,因为数据传输和处理任务由所有参与...

    易语言简单ASP网络验证源码.rar

    学习这个源码,开发者可以深入理解网络验证的核心逻辑,同时熟悉易语言与ASP的结合应用。这对于想要从事Web开发,尤其是使用易语言的开发者来说,是一个很好的起点。此外,它还能帮助理解服务器端脚本如何与数据库...

Global site tag (gtag.js) - Google Analytics