标题:“对等连接”的深入理解
数据库核心:关系型
关系的体现:一个表设置编号,其它表使用这个编号。通过“编号”是否相等来体现“关系”。
关键字:“编号相等”
用途:多表连接的条件
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.
分享到:
相关推荐
Oracle 数据库表连接(Join)知识点总结 Oracle 数据库表连接(Join)是指从两个或多个表中检索数据,并且将它们组合成一个结果集的操作。连接操作可以大大提高数据库查询的效率,特别是在需要访问多个表中的字段...
蓝牙实现对等网络连接
结果表明,传输服务提供商和接入服务提供商的域间流量与对等连接策略之间存在较强的关联,而内容服务提供商的域间流量与对等连接策略的关联性较弱,主要采取开放式对等连接。根据服务提供商在信息流传输中的作用,...
2.连接操作2.1创建对等连接2.2 对等连接创建之后通网配置3.测试是否连接成功3.1连接端云主机验证:3.2对端云主机验证: 一、两个天翼云账号,云主机是相同区域 1.记录的相关信息: 1.1被连接的账户凭证; 1.2被连接...
实现Win2000与Win98的对等连接
当有其他账户向您账户申请创建对等连接时,在您私有网络控制台对等连接选项卡中将展示一条状态为待接受的对等连接。1) 登录云服务器控制台,单击导航条【私有网络】,在
当有其他账户向您账户申请创建对等连接时,在您私有网络控制台对等连接选项卡中将展示一条状态为待接受的对等连接。1) 登录云服务器控制台,点击导航条【私有网络】,在
:evergreen_tree:Redwood Redwood是一个高度可配置的分布式实时数据库,用于管理许多对等节点之间共享的状态树。 想象一下Redux存储之类的东西,但分布在应用程序的所有用户中,:evergreen_tree:Redwood Redwood是一...
网络游戏-家庭网络中实现动态组网时的设备对等连接方法.zip
网络游戏-用于在移动通信网络中建立对等连接的方法和装置.zip
网络游戏-基于对等连接的家庭网络中多个控制设备的协调工作方法.zip
凝视peerd是一个AWS VPC对等连接管理工具。它基于一个简单的yaml文件创建VPC对等的全网,并管理创建,删除和路由表更新的整个生命周期,以使VPC对等在各个帐户和区域中有用。欢迎捐款。 ./peerd.py --helpusage: ...
@goodware/mysql:一个 mysql2-promise 助手链接要求ES5+(推荐使用 lts/dubnium 或更高版本)特征通过 mysql2-promise 创建数据库连接,可选择从池中创建数据库连接,并使用指数退避重试处理 AWS RDS IAM 无密码...
第4章 组建Windows对等网
大型网站架构设计方案 ——数据库存储设计 方案一:Mysql Cluster (Mysql集群) 数据库系统介绍 高性能、高可用性、冗余和可扩展性,数据在集群内部的对等数据节点之间相互复制。 数据复制采用同步机制,每个数据...
有关对等网的组件与使用方法,是一个不错的文档 有关对等网的组件与使用方法,是一个不错的文档
达梦大规模并行处理集群组件(DM Massively Paralleling Processing Cluster Component,缩写 DMMPP)是基于达梦数据库管理系统研发的完全对等无共享式的并行集群组件,支持将多个DM7节点 组织为一个并行计算网络,...
网络游戏-一种基于对等网络的异构数据库同步方法.zip
计算机原理与应用,组建对等网实验报告!
OrbitDB分散式Web的对等数据库OrbitDB是无服务器的分布式对等数据库。 OrbitDB使用IPFS作为其数据存储,而IPFS Pubsub使用OrbitDB自动同步数据库OrbitDB是一个无服务器的分布式对等数据库。 OrbitDB使用IPFS作为其...