表的连接操作(学习笔记)

在数据库中对于数据表的连接操作一共提供了两种:

内连接:也称等值连接在where中消除笛卡尔积的条件就是采用了内连接方式进行的

外连接: 内连接中只能显示等值满足的条件,不满足的条件则无法显示,如果希望显示特定表中的全部数据就要用要外连接

外连接分3种

   在Oracle中使用(+)表示连接

  1. 左外连接(左连接) 左关系属性=右关系属性(+) 表示左外连接
  2. 右外连接(右连接) 左关系属性(+)=右关系属性 表示右外连接
  3. 全外连接(全连接)
  • 示例一 (内连接)

将emp和dept表联合查询

SELECT * FROM EMP E,DEPT D
WHERE E.DEPTNO=D.DEPTNO;
  • 示例二(右外连接)

增加右外连接显示部门表中40部门的信息

SELECT * FROM EMP E,DEPT D
WHERE E.DEPTNO(+)=D.DEPTNO;
  • 示例三(左外连接)

首先在emp表中插入一条没有部门编号的记录

INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(9999,‘test‘,‘CLERK‘,7369,SYSDATE,800,100,NULL);

左外连接显示编号9999的信息

SELECT * FROM emp e,dept d
WHERE e.deptno=d.deptno(+);

自身关联:

  • 示例四

查询出每个员工的编号,姓名及上级领导的编号和姓名

SELECT e.empno,e.ename,e.mgr emp表中领导编号,m.empno m表中的领导编号,m.ename
FROM emp e,emp m
WHERE e.mgr=m.empno(+);
  • 示例五

      查询在1981入职的全部员工的编号,姓名,入职日期(年-月-日显示),职位,领导姓名,员工月工资sal ,年总工资(sal+comm)*12,工资等级,部门编号,部门名称,部门位置,并县且要求这些员工的月工资在1500~3500之间,将最后的结果按年总工资降序排序,有果年工资相等,按入职时间升序排序

SELECT e.empno,e.ename,to_char(e.hiredate,‘yyyy-mm-dd‘) 入职日期,e.job,e.sal 月基本工资,(e.sal+NVL(e.comm,0))*12 yearsal,
m.ename 领导姓名,
DECODE(s.grade,1,‘E等工资‘,
                2,‘D等工资‘,
                3,‘C等工资‘,
                4,‘B等工资‘,
                5,‘A等工资‘
) 工资等级,
d.deptno,d.dname,d.loc
FROM emp e,emp m,salgrade s,dept d
WHERE to_char(e.hiredate,‘yyyy‘)=‘1981‘
    AND e.mgr=m.empno(+)
    AND e.sal BETWEEN s.losal AND s.hisal
    AND e.deptno=d.deptno(+)
    AND e.sal BETWEEN 1500 AND 3500
ORDER BY yearsal,e.hiredate ASC;
时间: 2024-12-25 19:01:02

表的连接操作(学习笔记)的相关文章

考试系统的基础维护--基本表的连接操作

这次有幸帮师姐进行考试系统的基础维护,说直接点就是对考试人员的管理,增删改查,最基本的还是查询学生,用来和老师所给的信息进行核对,最后再确定考试的人员,在查询的过程中就遇到了这种一种情况:   在对English考试的人员进行核对的时候,为了方便查询,而建立的一个相关的视图,该视图所涉及到的表有:TB_Student(学生基本信息),TB_ExecutiveClass(涉及到所在的班级),TB_DepartmentName(所属专业),TB_CollegeName(所属学院),TB_Englis

MySQL4.0命令操作学习笔记

声明:下列内容并非原创,仅仅是最近学习笔记整理. -------------------------------------- 进入mysql安装路径bin目录下: 1.开启服务 winmysqladmin.exe 回车按照提示: 输入winmysqladmin初始用户.密码(注:mysql里用户.密码)随便填必意 2.根目录密码重置 mysqladmin -u root -p password 123456 回车出现 Enter password: ( 注:叫输入原密码. 刚安装时密码空,所直

Winform操作Access数据库增删改操作学习笔记

此程序是本人学习Winform操作Access数据库时学习笔记. 程序源码来源于:<Visual C# 2008 程序开发入门与提高 >赵增敏 编著 操作方法: 1.新建一个Winform项目,并将该项目设置为启动项目: 2.复制数据库文件到程序根目录下. 3.添加3个Label.两个TextBox.一个ListBox,四个Button控件. 4.窗体底部Label修改名称为“labelMsg”,两个文本框修改名称为:textboxSurname,textboxName. 5.列表框命名为Li

PHP字符串操作学习笔记

由于PHP是弱语言类型,所以当使用字符串操作函数是,其他类型的数据也会被当作字符串来处理. 一.字符串定义与显示 字符串通过单引号.双引号来标志,前者将单引号内所有的字符都当作字符来处理,后者则不是. 字符串的显示可以使用echo()和print()函数,二者区别:print()具有返回值,返回1,而echo()则没有,所以echo()比print()要快一些,print()能应用于复合语句中,而echo()不能.另外echo可以一次输出多个字符串,而print不可以. 二.字符串的格式化 函数

JavaScript高级程序设计第14章表单脚本 (学习笔记)

第十四章 表单脚本 1.阻止默认表单提交 1.提交表单数据 1.使用type=submit提交按钮 2.使用submit():方法 注意:当用户点击提交按钮时,会触发submit事件,从而在这里我们有机会验证数据并决定要不要提交表单 1.preventnDefault(event):可以用在表单数据无效时不发给服务器,对于动态绑定的onclick 事件. 2.Submit()方法也可以提交表单,但是不会触发submit事件,所以在使用时须先验证表单数据, 如:<%response.write(t

表空间的创建(学习笔记)

表空间的创建: 一般由管理员来创建,创建时使用管理员登录 表空间命名:以 TBS_为前缀,也可以自定义统一即可 定义表空间语法 CREATE[TEMPORARY] TABLESPACE 表空间名称 DATAFILE |TEMPFILE‘表空间路径’ SIZE 数字 K|M AUTOEXTEND ON |OFF [LOGGING|NOLOGGING] DATAFILE 保存表空间的磁盘路径,可以设置多个保存路径 TEMPFILE 保存临时表空间的路径 SIZE 空间大小 AUTOEXTEND 是否

HTML5表单与文件学习笔记

1.新增元素 form属性:指定表单,使表单内的丛书元素可以写在任何位置 <form id="testform"> <input type="text"> </form> <textarea form="testform"></textarea> formaction属性:点击不同按钮,可以将表单提交到不同页面 <form id="textform" actio

dojo/dom-style样式操作学习笔记

基础总结 一个元素的样式信息由三个来源根据层叠规则确定.三个来源分别是: 由DOM元素style特性设置的内联样式 由style元素中嵌入的样式规则 由link元素引入的外部样式表 元素的样式 任何支持style特性的HTML元素在JavaScript中都有一个对应的style属性.这个style对象是CSSStyleDeclaration的实例,包含着通过HTML的style特性指定的所有样式信息,但不包含与外部样式表或嵌入样式表经层叠而来的样式.在style特性中指定的任何css属性都可以通

使用php-amqplib连接rabbitMQ 学习笔记及总结

1.使用composer安装php-amqplib 在你的项目中添加一个 composer.json文件: { "require": { "php-amqplib/php-amqplib": "2.6.*" } } 只要你已经安装Composer功能,你可以运行以下: $ composer install 已经存在的项目则执行 $ composer update这时在verdor目录就已经下载完毕 具体可以参考官方文档:https://githu