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
相关推荐
从零搭建A股量化交易系统:开源框架选型与实战部署指南
本文详细介绍了从零搭建A股量化交易系统的完整流程,重点分析了开源框架VNPY和QMT的选型与实战部署。内容涵盖系统架构设计、策略开发、性能优化及实盘过渡方案,为开发者提供了一套完整的A股实盘量化交易解决方案,助力高效构建稳定可靠的量化交易系统。
oracle sql语句之多表查询
--多表之间有公共列 多表查询的分类: 联合条件 1、内联接(查询两张表之间相同数据) 2、外联接(查询 两张表中的数据,一张表显示所有数据(主),另外一张表只显示满足条件的数据(从),没有对应的数据以null填充) 2.1、左外联接(左侧表为主表,右侧表为从表(null)) 2.2、右外联接(右侧表为主表,左侧为从表(null)) 2.3、完全外联接(了解:) 3、
【技术实践指南】Python解析FactSet Revere供应链数据:构建企业级断裂与重构监测指标
本文提供了一份企业级Python实践指南,详细解析如何利用FactSet Revere供应链数据库,构建供应链断裂与重构监测指标。内容涵盖数据清洗、关系对筛选、时间序列处理及核心指标(断裂、恢复、转移)的工程化实现,旨在帮助数据工程师与分析师搭建自动化、可解释的供应链风险监控系统。
游标,动态,for循环
--小测:输出各部门员工的部门名称和工号、姓名,工资。 要求: 各部门工资最高的放在前面 在“DALLAS”地方的部门名称后加上“*”。 ·三种实现方式 1 通过显式游标 2 通过FOR循环 3 通过动态SQL方式 ----------------------------------------显示游标 [sql] view p
Unity Animancer插件(一)基本使用
Animancer是什么?资源商店主页我们来通过Animancer实现一个最基本的动画播放效果。首先创建一个脚本,编写如下代码 很容易理解,就是在时播放一个指定的动画片段。接下来为角色添加、和刚刚编写的,并为字段赋值 接下来运行游戏就可以看到效果了 此时角色身上的组件可以看到当前动画的各项参数 下面我们来实现通过按键控制角色在于之间转换。新创建一个脚本。在代码中监听Y轴上的输入。然后根据监听到的数值判断角色状态,并播放相应的动画 给对应字段赋值后,启动游戏看下效果 下面来实现一个开枪效果。在默认状态下,角色
【脑电信号处理与特征提取】P2-夏晓磊:脑电的神经起源与测量
ElectroEncephaloGraphyTherefore, EEG produces a graphed representation of the electrical activity occurring in a person’s brain.(把一个人的大脑中的电活动画出来)脑电头皮表面记录到的大脑活动产生的电信号(微伏)。(记录位置:硬脑膜/大脑皮层表面- ECoG,神经元群- LFP与MUR/MUA:活动位置:心电、眼电、肌电等)脑电图电压随时间变化的波形图。
负载均衡连接方法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...
MacX DVD Ripper Pro for Mac(DVD解码器) 6.2.120190416免激活版
只需要5分钟即可转档一张DVD光碟!并允许我们在编码之前预览、编辑、裁剪、修剪或扩展视频。第一款也是唯一一款能够支持DVD到MP4,H.264,MOV,FLV,MPEG4等所有格式DVD(新DVD,99-标题DVD,损坏和无法播放的DVD)和翻录DVD / ISO映像的工具,AVI,QT,MP3等。借助350多种预设配置文件MacX DVD Ripper Pro for Mac(DVD解码器) 6...
oracle备忘录
【代码】oracle备忘录。
Qt软件开发-Qt编译zlib完成文件压缩解压(win10)
在软件开发中进行有需求需要将生成的一些文件打包上传到服务器,或者从服务器下载压缩包下来内部解压。或者自己做一些打包工具,那么使用zlib开源就可以很方便的完成。接下来介绍在zlib在windows下如何利用Qt进行编译,调用,介绍mingw、msvc,32/64位编译办法,完成zip文件打包生成例子。可以单文件压缩打包,多文件压缩打包,目录压缩打包等等。
【NVIDIA】Jetson Orin Nano系列:烧写Ubuntu22.04
Jeson Orin Nano系列:烧写Ubuntu22.04 电脑主机可以是Ubuntu20.04
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...
10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用
虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。
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)
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
备忘录录录
truncate table 表名。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
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...
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数据库使用中用的的命令,经常用,记下来方便查询。
SQL 注入备忘录
本文翻译自:https://portswigger.net/web-security/sql-injection/cheat-sheet 这份SQL注入备忘录包含一些有用的语法示例,您可以使用这些语法来执行各种任务,这些任务在执行SQL注入攻击时经常出现。 字符串连接 您可以将多个字符串连接成为一个字符串。 DBS Payload Oracle ‘foo’||‘bar’ Microsoft ‘foo’+‘bar’ PostgreSQL ‘foo’||‘bar’ MySQL ‘fo
1271



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



