SQL> --等值连接
SQL> --查询员工信息: 员工号 姓名 月薪 部门名称
SQL> select e.empno,e.ename,e.sal,d.dname
2 from emp e,dept d
3 where e.deptno=d.deptno;
EMPNO ENAME SAL DNAME
---------- ---------- ---------- --------------
7369 SMITH 800 RESEARCH
7499 ALLEN 1600 SALES
7521 WARD 1250 SALES
7566 JONES 2975 RESEARCH
7654 MARTIN 1250 SALES
7698 BLAKE 2850 SALES
7782 CLARK 2450 ACCOUNTING
7788 SCOTT 3000 RESEARCH
7839 KING 5000 ACCOUNTING
7844 TURNER 1500 SALES
7876 ADAMS 1100 RESEARCH
已选择14行。
SQL> --不等值连接
SQL> --查询员工信息: 员工号 姓名 月薪 工资级别
SQL> select * from salgrade;
GRADE LOSAL HISAL
---------- ---------- ----------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
SQL> select e.empno,e.ename,e.sal,s.grade
2 from emp e,salgrade s
3 where e.sal between s.losal and s.hisal;
EMPNO ENAME SAL GRADE
---------- ---------- ---------- ----------
7369 SMITH 800 1
7900 JAMES 950 1
7876 ADAMS 1100 1
7521 WARD 1250 2
7654 MARTIN 1250 2
7934 MILLER 1300 2
7844 TURNER 1500 3
7499 ALLEN 1600 3
7782 CLARK 2450 4
7698 BLAKE 2850 4
7566 JONES 2975 4
已选择14行。
SQL> --外连接
SQL> --按部门统计员工人数: 部门号 部门名称 人数
......
SQL> ed
已写入 file afiedt.buf
1 select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数
2 from emp e,dept d
3 where e.deptno=d.deptno
4* group by d.deptno,d.dname
SQL> /
部门号 部门名称 人数
---------- -------------- ----------
10 ACCOUNTING 3
20 RESEARCH 5
30 SALES 6
---问题,引出外连接概念
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select * from emp where deptno=40;
未选定行
SQL> /*
SQL> 希望: 在最后的结果中,包含某些不成立的记录
SQL> 外连接:
SQL> 左外连接: 当where e.deptno=d.deptno不成立的时候,等号左边所代表的表 任然被包含(显示完全)
SQL> 写法: where e.deptno=d.deptno(+)
SQL> 右外连接: 当where e.deptno=d.deptno不成立的时候,等号右边所代表的表 任然被包含(显示完全)
SQL> 写法:where e.deptno(+)=d.deptno
SQL> */
|
|
|
↓↓↓↓↓
SQL> --判断外连接(个人见解)
SQL> --1、首先判断左连接还是右连接(看=两边要哪个表e(emp),d(dept)完全显示)
SQL> --如果要完全显示的表在右边,那么就是右连接,如果要显示的表在左边,即左连接
SQL> --比如上面要完全显示的是d(dept)表(因为需求是显示所有部门的人数,即使没有人,也要显示出来)
SQL> --,那么where e.deptno = d.deptno就是右连接
SQL> --2、根据右连接或者左连接判断+号的位置
SQL> --如果是左连接,那么+号写在右边
SQL> --如果是右连接,那么+号写在左边
SQL> select d.deptno,d.dname,count(e.empno)
2 from emp e,dept d
3 where e.deptno(+)=d.deptno
4 group by d.deptno,d.dname
5* order by 1
SQL> /
DEPTNO DNAME COUNT(E.EMPNO)
---------- -------------- --------------
10 ACCOUNTING 3
20 RESEARCH 5
30 SALES 6
40 OPERATIONS 0
SQL> host cls
SQL> --自连接
SQL> --查询员工信息:***的老板是***
SQL> set linesize 120
SQL> col sal for 999
SQL> col sal for 9999
SQL> host cls
SQL> /
SQL> --自连接:通过表的别名,将同一张表视为多张表
SQL> select e.ename||'的老板是'||b.ename
2 from emp e,emp b --内连接
3 where e.mgr=b.empno(+); --左外连接
E.ENAME||'的老板是'||B.ENAME
----------------------------
FORD的老板是JONES
SCOTT的老板是JONES
JAMES的老板是BLAKE
TURNER的老板是BLAKE
MARTIN的老板是BLAKE
WARD的老板是BLAKE
ALLEN的老板是BLAKE
MILLER的老板是CLARK
ADAMS的老板是SCOTT
CLARK的老板是KING
BLAKE的老板是KING
KING的老板是
已选择14行。
-----又一个重点知识点:*****************
SQL> --层次查询 (遍历树,递归查询)
--level是一个伪列,它的值代表树的层数(顶层(倒树)-->最后一层 1-->n)
SQL> select level,empno,ename,sal,mgr
2 from emp
--[where condition]
3 start with mgr is null --从大boss开始
4 connect by prior empno=mgr --相当于where条件部分 mgr字段为员工的上司编号
5 order by 1; --按照level排序
LEVEL EMPNO ENAME SAL MGR
---------- ---------- ---------- ----- ----------
1 7839 KING 5000
2 7566 JONES 2975 7839
2 7698 BLAKE 2850 7839
2 7782 CLARK 2450 7839
3 7902 FORD 3000 7566
3 7521 WARD 1250 7698
3 7900 JAMES 950 7698
3 7934 MILLER 1300 7782
3 7499 ALLEN 1600 7698
3 7788 SCOTT 3000 7566
3 7654 MARTIN 1250 7698
3 7844 TURNER 1500 7698
4 7876 ADAMS 1100 7788
4 7369 SMITH 800 7902
已选择14行。
--解读:connect by prior empno=mgr
--prior 指的上一条记录,整条意思是"上一条记录的empno的这条记录的mgr"
--因为这个是从最上层的开始的,它已经没有了上层
--为了更好的理解,把本条记录(start with..) 理解为树的中间
--那么它的上一条记录,也就是它的父节点的empno是这条记录的mgr
SQL> /*
SQL> -- 执行的过程:
SQL> --1. KING: start with mgr is null ---> empno=7839 祖先
SQL> --2. where mgr = 7839; ---> 7566 7698 7782 --子类
SQL> --3. where mgr in (7566 7698 7782)*/ --子类
SQL> spool off
相关推荐
电路仿真软件PSIM简介
PSIM的基本使用操作...
oracle sql语句之多表查询
--多表之间有公共列 多表查询的分类: 联合条件 1、内联接(查询两张表之间相同数据) 2、外联接(查询 两张表中的数据,一张表显示所有数据(主),另外一张表只显示满足条件的数据(从),没有对应的数据以null填充) 2.1、左外联接(左侧表为主表,右侧表为从表(null)) 2.2、右外联接(右侧表为主表,左侧为从表(null)) 2.3、完全外联接(了解:) 3、
UDS诊断ISO14229新手入门篇
这个命令的格式稍微复杂一点。sub-function = 0x06 用于读取某个 DTC 及其相关的环境数据,此时 parameter 为 4 个 byte,前三个 byte 用于标识我们要读取的 DTC,第四个 byte 用于标识要读取的环境数据的范围,UDS 规定使用 FF 来表示读取所有的环境数据,各厂家可以要根据自己的需求定义其他的值来代表要读取的环境数据的范围。环境数据包括 DTC 状态,优先级,发生次数,老化计数器,时间戳,里程等,厂家还可以根据自己的需求定义一些此 DTC 产生时的测量数据。
游标,动态,for循环
--小测:输出各部门员工的部门名称和工号、姓名,工资。 要求: 各部门工资最高的放在前面 在“DALLAS”地方的部门名称后加上“*”。 ·三种实现方式 1 通过显式游标 2 通过FOR循环 3 通过动态SQL方式 ----------------------------------------显示游标 [sql] view p
【PADS-开发指南】
馒头破戒大师
9、自动定理证明的发展历程与关键技术
本文全面介绍了自动定理证明的发展历程、关键技术及其实际应用,包括消解原理、参数化、支撑集策略等核心方法,并探讨了算法优化、数据结构优化及并行计算等提升效率的手段。同时,文章展望了未来发展方向,如深度学习在定理证明中的应用、交互式定理证明以及高阶逻辑的研究前景。
负载均衡连接方法oracle,oracle 负载均衡连接方式常用SQL语句备忘录
1.---表中有重复记录用SQL语句查询出来select * from Recharge where RechargeSerial in (select RechargeSerial from Recharge group by RechargeSerial having count(*)>1)2.oracle des加密函数方法create or replace function encr...
uni-app - 刘海屏(Iphone X)底部横杠(——)白色区域块(安全距离处更改颜色)解决方案
场景:因为要做无tabbar页面,所以在配置文件中取消底部导航栏。取消后,iPhoneX(刘海屏)底部就出现如下图所示白色安全区域问题:这个问题,是因为uni-app默认会为iPhoneX(刘海屏)留出安全距离,这个安全距离的背景色就是白色。所以,如果你将页面颜色设置为其他颜色,就会与默认白色冲突。有2个不同的解决方案(原生占位),虽然原理是一样,但使用的场景不同,请根据您的需求来采纳。
oracle备忘录
【代码】oracle备忘录。
近五年体内微/纳米机器人赋能肿瘤精准治疗综述:以 GBM 为重点
摘要 微/纳米机器人在实体瘤治疗领域展现出突破性潜力,通过主动运动能力解决传统纳米药物递送效率低、渗透不足等核心问题。2021-2025年间形成三条技术路线:1) 磁驱、声驱等运动增强递送实现深层渗透;2) 与免疫治疗融合实现原位免疫唤醒;3) 针对胶质母细胞瘤开发跨屏障递送系统。研究重点从单一运动性能转向"运动-分布-疗效"的系统评价,需建立标准化指标评估运动学参数、肿瘤分布均匀性和安全性。未来挑战在于临床转化的可制造性、闭环操控及生物相容性优化,特别是对血脑屏障穿透等复杂场景的系统集
PCL 基于法线微分(DoN)的点云分割【2026最新版】
基于法线微分的分割。博客长期更新,本文最新更新时间为:2026年5月10日。
ORACLE使用备忘录
1.将一个用户SCHEMA下的表的增删查改权限赋予另一个用户 --假设现在要将test_u用户的SCHEMA下的所有表操作权限赋予test_user GRANT ALL ON test_tab TO test_user ;--将test_tab这表的操作权限赋予 test_user 这个用户 REVOKE ALL ON test_tab FROM test_user ;--将test_tab...
【笔试真题】- 华子-2025.12.17-研发岗
难度:中等难度:中等偏难难度:中等K小姐是一名服务器运维工程师,她负责监控公司服务器的访问日志。服务器采用指数退避策略来优化访问频率,每次重试的时间间隔会按照某种规律增长。经过一段时间的监控,K小姐记录了 nnn 个访问时间点,第 iii 个时间点的值为 a[i]a[i]a[i](可能有重复)。现在,她想分析这些访问时间点是否符合某种特定的模式。具体来说,对于给定的参数对 (x,y)(x, y)(x,y),她想知道:有多少个访问时间点 a[i]a[i]a[i] 满足 a[i]=xK+ya[i] = x^K
Oracle Pl/sql 配置备忘录
PL/SQL配置: 注意:请下载最新的oracle instant客户端..有些pl/sql Developer不支持老版本的.. 还有种情况是原来装过oracle客户端..再用pl/sql的..配置的客户端地址可能不起效果..需要确定pl/sql指定的oracle目录到底是那个 可以通过连接不存在的 数据库sid...弹出错误中可以显示 找不到d:\oracleclient\tnsna...
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
备忘录录录
truncate table 表名。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
ORACLE、MYSQL数据库基础知识备忘录
ORACLE 1、单引号包含的是char/varchar2字符串,区分大小写;另外,双引号包含的是对象名,也区分大小写(默认是大写) to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') 不能用to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') 原因是在to...
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
Spark SQL函数 对比 Oracle SQL函数 备忘录
0、逻辑查询的各个阶段 执行顺序 T-SQL逻辑查询的各个阶段(编号代表顺序) (5)SELECT DISTINCT TOP(<top_specification>) <select_list> (1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> (2)WHERE <where_predicate&
oracle怎么排查死锁问题,ORACLE死锁故障排查的一般性手法的备忘录
ORACLE死锁故障排查的一般性手法的备忘录故障现象:两个Java写的后台批处理同时执行时,发生了死锁现象。排查手法:通过查询视图,找到被锁住的对象v$locked_object,根据其locked_mode,判断其锁类型查询SQL语句:select l.xidusn, l.object_id, o.owner, o.object_name,l.session_id, l.oracle_usern...
Oracle总结+备忘录
#网上找到一些资料,当做我的Oracle备忘录吧! 一、Oracle常用命令 1、set linesize 100; 设置长度 2、set pagesize 30; 设置每页显示数目 3、em a.sql 打开记事本 4、@ a 执行文件a中的代码,可指定文件的路径 @d:a.txt 5、conn 用户名/密码 根据用户名和...
oracle spatial运维操作备忘录,持续更新中……
oracle spatial运维操作备忘录,持续更新中……数据环境创建表空间新建自定义坐标系表的相关操作修改元数据表SRID指向并新建SRID数据库的导入导出通过DBLINK导出dump方式整个用户导出。通过create ...as...导入指定数据 数据环境 创建表空间 1.创建表空间查看用户使用的表空间,分别查询所有用户: select distinct tablespace_name from user_tables; 2.查看一共该用户下有多少表空间: select t.tablespace_na
Oracle备忘录(八)--表
SQL> /* SQL> SQL类型 SQL> 1. DML(Data Manipulation Lanuage 数据操作语言): select insert update delete SQL> 2. DDL(Data Definition Language 数据定义语言): create/alter/drop/truncate table SQL> ...
oracle 锁表、解锁的语句
可能是由于公司使用的Oracle服务器是安装在阿里云上面的原因,经常出现执行执行数据库的CRUD的时候断线了。导致表被锁死!每次都要手动解锁才行。然而哪个解锁表的SQL语句老是忘记,于是备忘录一下。估计公司的Oracle服务器只要还是在云上面可能还是会一直需要用到,方便自己。 下面的语句用来查询哪些对象被锁: select object_name,machine,s.sid,s.serial...
Oracle备忘录
定制工具导出目录 1.首先登录到系统库(包含:系统表,数据源的定义信息,菜单的定义信息等) 系统库查看: 定制工具——数据源——库资源管理 2.查找语句找需要导出的根目录(例如:数据录入) select * from HY_RW_MENU(此表为:系统表名) SELECT * FROM HY_RW_MENU WHERE NAME LIKE '数据录入' 条件属性配置 ...
ORACLE备忘录
1、查看包体内容:SELECT TEXT FROM USER_SOURCE WHERE NAME = 包体名;2、查看注解:SELECT USER_TAB_COLS.COLUMN_ID, USER_TAB_COLS.COLUMN_NAME,USER_TAB_COLS.DATA_TYPE, USER_TAB_COLS.DATA_LENGTH,USER_TAB_COLS.NULLABL
oracle安装备忘录
先安装vmwaretools双击解压缩即可。。
Oracle数据库管理命令备忘录
Oracle数据库使用中用的的命令,经常用,记下来方便查询。
7175



被折叠的 条评论
为什么被折叠?



