Oracle学习笔记5_简单查询

2023-10-28

Oracle简单查询语句:

查看表结构:desc dept;

查看所有列:select * from dept;

查询指定列:select ename,sal,job,deptno from emp;

如何取消重复行:select distinct deptno,job from emp;

打开显示操作时间:set timing on;

Oracle区分大小写。

使用算术表达式:select sal*12,ename from emp;

使用别名:select sal*12 "年工资",ename from emp;

如何处理null值:使用nvl函数来处理

select sal*12+nvl(comm,0)*13 "年工资",ename,comm from emp;

如果comm是null,则变成0

如何使用连接字符串(||):select ename || 'is a' || job from emp;

where:

查询工资高于3000的员工:select ename, sal from emp where sal >3000;

查询1982.1.1后入职员工:select ename,hiredate from emp where hiredate > '1-1月-1982';

查询工资在2000-2500之间的员工:select ename,sal from emp where sal >=2000 and sal <=2500;

like模糊查询:

%:表示任意0-多个字符

_: 表示任意单个字符

查询名字以S开头:select ename ,sal from emp where ename like 'S%';

查询名字第三个字符为O的员工:select ename,sal from emp where ename like '__O%';

where中使用in:select ename,sal from emp where empno in (1,2,3);

is null:select * from emp where mgr is null;

逻辑操作符:select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';

order by 分组:select * from emp order by sal desc;

别名order by分组:select ename ,(sal+nvl(comm,0))*12 "年薪" from emp order by "年薪";

Oracle复杂查询:

数据分组:-max,min,avg,sum,count

avg :select * from emp where sal > (select avg(sal) from emp);

group by:select max(sal),avg(sal),deptno from emp group by deptno;

select max(sal),avg(sal),min(sal),deptno,job from emp group by deptno,job;

select deptno,avg(sal) from emp group by deptno having(avg(sal)<2000);

分组函数只能出现在选择列表、having、order by、having中,group by,having,order by不可以换顺序。

在选择列中如果有列,表达式和分组函数,那么这些列和表达式必须有一个出现在group by中,否则出错。

多表查询:

select dname,ename,sal from emp,dept where emp.deptno=dept.deptno;

select dname,ename,sal,emp.deptno from emp,dept where emp.deptno=dept.deptno and emp.deptno=10;

select a1.ename, a1.sal,a2.grade from emp a1,salgrade a2 where a1.sal between a2.losal and a2.hisal;

select a1.ename, a1.sal,a2.dname,a1.deptno from emp a1,dept a2 where a1.deptno=a2.deptno order by a1.deptno;

自连接:

select a1.ename,a2.ename from emp a1,emp a2 where a1.mgr=a2.empno and a1.ename='FORD';

子查询:

单行子查询:只返回一行数据的子查询语句。select * from emp where deptno = (select deptno from emp where ename='SMITH');

多行子查询:返回多行数据的子查询语句。select ename,job,sal,deptno from emp where job in (select distinct job from emp where deptno=10);

多行子查询中all操作符的使用:select ename,sal,deptno from emp where sal > all(select sal from emp where deptno=30);

   效率高,等价于上句 select ename,sal,deptno from emp where sal > (select max(sal) from emp where deptno=30);

多行子查询中any操作符的使用:select ename,dept from emp where sal>any(select sal from emp where deptno=30);

   效率高,等价于上句 select ename,sal,deptno from emp where sal > (select min(sal) from emp where deptno=30);

多列子查询:查询返回多个列数据的子查询语句。select * from emp where (deptno,job)=(select deptno,job from emp where ename='SMITH');

在from子句中使用子查询:

select a2.ename,a2.sal,a2.deptno,a1.mysal from emp a2,(select deptno, avg(sal) mysal from emp group by deptno)a1 where a2.deptno=a1.deptno and a2.sal>a1.mysal;

当在from子句中使用子查询时,该子查询会被做为一个视图来对待,因此叫做内嵌视图,当在from子句中使用子查询时,必须给子查询指定别名。

Oracle的分页一共有三种方式,下面来介绍一个:

1.rownum分页

先做一个子查询:select * from emp;

2.显示rownum(oracle分配的)

select a1.* ,rownum rn from (select * from emp) a1;

3.select a1.* ,rownum rn from (select * from emp) a1 where rownum <=10;

select * from (select a1.* ,rownum rn from (select * from emp) a1 where rownum <=10) a2 where a2.rn>=6;

select * from (select a1.* ,rownum rn from (select * from emp) a1) a2 where a2.rn>=6 and a2.rn<=10;

4,几个查询变化

a.指定查询列,只需修改最里层的子查询

b.如何排序?只需修改最里层的子查询

用查询结果创建新表:

create table mytable (id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from emp;

合并查询:

实际应用中,为了合并多个select语句的结果,可以使用集合操作符union,union all,intersect,minus

1.union 该操作用于取得两个结果集的并集,当使用该操作符时,会自动去掉结果集中的重复行。

select ename,sal,job from emp where sal>2500 union select ename,sal,job from emp where job='manager';

2.union all与union相似,但是它不会取消重复行,而且不会排序。

select ename,sal,job from emp where sal>2500 union all select ename,sal,job from emp where job='manager';

3.intersect取交集。

select ename,sal,job from emp where sal>2500 intersect select ename,sal,job from emp where job='manager';

4.minus 取得两个结果集的差集,它只会显示存在第一个集合中,而不存在于第二个集合中的数据。

select ename,sal,job from emp where sal>2500 minus select ename,sal,job from emp where job='manager';

创建数据库的两种方法:

1.通过oracle提供的向导工具。dbca[数据库配置助手]

2.手工步骤直接创建。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle学习笔记5_简单查询 的相关文章

  • 猫头虎博主的MySQL救援指南:轻松解决初始化问题(nysqld: Can create directort :mysgl mysg! 9-winx64 data errno such file o)

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 【计算机开题报告】基于JAVA的酒店管理系统的设计与实现

    1 毕业设计 论文 综述 随着社会经济和科技的迅速发展 人们对衣食住行的要求也逐渐提高 酒店 宾馆在服务行业中扮演着越来越重要的角色 本课程设计的内容旨在以管理系统的方式给人们出行提供酒店预订服务 从而能够更方便快捷的帮助酒店工作人员办理客
  • 【计算机开题报告】 网上茶叶销售平台设计与开发

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着社会经济的迅速发展和科学技术的全面进步 以计算机与网络技术为基础的信息系统正处于蓬勃发展的时期 随着经济文化水平的提高 近年来 随着科学
  • 实时获取建材网商品数据:API实现详解与代码示例

    一 引言 随着电子商务的快速发展 实时获取商品数据对于企业决策 市场分析以及数据驱动的营销策略至关重要 建材网作为国内知名的建材信息平台 提供了API接口 使得第三方开发者可以方便地获取商品数据 本文将详细介绍如何使用 建材网的API接口
  • Kali Linux 安全渗透核心总结,444页核心知识点

    就像IT人离不开Linux系统一样 网安人也离不开Kali Linux 作为攻击性防御和渗透测试的代名词 越来越多的人开始学习Kali 如果你也对kali感兴趣 又想深入了解这方面内容 不妨收藏一下这份Kali Linux安全渗透教程 共4
  • 进程间通信

    进程间通信 进程间通信介绍 进程间通信目的 数据传输 一个进程需要将它的数据发送给另一个进程 资源共享 多个进程之间共享同样的资源 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程终止 时要通知父进程
  • python按列写入数据到excel

    要将数据按列写入 Excel 可以使用 Python 的 openpyxl 库 首先 需要安装 openpyxl 库 可以使用以下命令在终端或命令提示符中安装 pip install openpyxl 然后 可以按照以下步骤编写代码 1 导
  • 亚信安慧AntDB引领数字化转型:浙江移动成功实现CRM系统全域改造

    数字时代 通信运营商在不断迭代的背景下 需要不断探索数字化转型的路径 以适应快速发展的市场和技术环境 在这一浪潮中 浙江移动站在前沿 率先完成了其CRM系统的全域改造 采用了亚信安慧公司研发的AntDB数据库 为整个行业树立了数字化转型的标
  • 【计算机毕业设计】出租车管理系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本出租车管理系统就是在这样的大环境下诞生 其可以帮助管理者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人
  • 【计算机毕业设计】线上招聘问答系统

    计算机网络发展到现在已经好几十年了 在理论上面已经有了很丰富的基础 并且在现实生活中也到处都在使用 可以说 经过几十年的发展 互联网技术已经把地域信息的隔阂给消除了 让整个世界都可以即时通话和联系 极大的方便了人们的生活 所以说 线上招聘问
  • 【计算机毕业设计】Java图书馆智能选座系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本图书馆智能选座系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 【计算机毕业设计】电商个性化推荐系统

    伴随着我国社会的发展 人民生活质量日益提高 于是对电商个性化推荐进行规范而严格是十分有必要的 所以许许多多的信息管理系统应运而生 此时单靠人力应对这些事务就显得有些力不从心了 所以本论文将设计一套电商个性化推荐系统 帮助商家进行商品信息 在
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】白优校园社团网站的设计与实现

    近些年 随着中国经济发展 人民的生活质量逐渐提高 对网络的依赖性越来越高 通过网络处理的事务越来越多 随着白优校园社团网站的常态化 如果依然采用传统的管理方式 将会为工作人员带来庞大的工作量 这将是一个巨大考验 需要投入大量人力开展对社团
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • 面试官问,如何在十亿级别用户中检查用户名是否存在?

    面试官问 如何在十亿级别用户中检查用户名是否存在 前言 不知道大家有没有留意过 在使用一些app注册的时候 提示你用户名已经被占用了 需要更换一个 这是如何实现的呢 你可能想这不是很简单吗 去数据库里查一下有没有不就行了吗 那么假如用户数量
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具

随机推荐

  • FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(旧接口)

    这里通过USB摄像头 注 windows7 10下使用内置摄像头 linux下接普通的usb摄像头 Logitech 获取视频流 然后解码 最后再用opencv显示 用到的模块包括avformat avcodec和avdevice liba
  • Go的协程和管道

    Go有个简单的线程模型 叫做协程 为这个协程配套的简易版 数据同步 叫管道或者信道 在go tour上有两个很有特色的例子 https tour go zh org concurrency 2 package main import fmt
  • 《数据结构》考研天勤和王道 第三章 栈、队列、数组和广义表

    数据结构 天勤和王道 第三章 栈 队列 数组和广义表 天勤的内容 1 用栈实现表达式的转换 1 1中缀转后缀 1 2中缀转前缀 1 3后缀转前缀 2 用栈实现表达式的计算 2 1用栈求中缀表达式的值 需要两个栈 2 2用栈求后缀表达式的值
  • mysql yearweek 日期不准,PHP日期('W')vs MySQL YEARWEEK(now())

    Can someone kindly explain me why these two give different results I execute this with PHP date YW mktime 0 0 0 3 22 201
  • 你敢信?开发一个管理系统我只用了两天时间

    推荐 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 前言 由于疫情原因 学校通知本学期要提前放暑假 于是老师提前将期末作业公布于众 按照要求开发一个百货中心供应链管理系统 开发周期为半个月
  • SQL注入系列篇之union联合注入

    一 union注入概念 我们知道 SQL语句的union联合查询常用格式如下 select 1 2 3 from table name1 union select 4 5 6 from table name2 而在注入过程中 我们把unio
  • springmvc 防止XSS攻击

    XSS攻击 即Cross Site Script 跨脚本攻击 往web页面注入html代码或者script代码 造成页面混乱 spring mvc框架中 有很多编辑器 每个编辑器有不同的作用 防止XSS攻击 就用到PropertyEdito
  • 图像处理之OpenCV腐蚀和膨胀

    图像处理之OpenCV腐蚀和膨胀 在图像处理中 腐蚀和膨胀是常用的基础操作 它们可以对图像进行去噪 分割和形态学处理等 本文将介绍使用OpenCV库进行腐蚀和膨胀的方法及其相关代码 腐蚀操作 腐蚀操作可以看作是一种局部最小值滤波器 它的主要
  • UNIX环境高级编程习题答案——第四章

    4 1 用stat函数替换图4 3程序中的lstat函数 如若命令行参数之一是符号链接 会发生什么变化 会输出符号链接所指向文件的文件类型 4 2 如果文件模式创建屏蔽字是777 八进制 结果会怎样 用shell的umask命令验证该结果
  • 判断子序列的三种方法

    392 判断子序列https leetcode cn problems is subsequence 给定字符串 s 和 t 判断 s 是否为 t 的子序列 字符串的一个子序列是原始字符串删除一些 也可以不删除 字符而不改变剩余字符相对位置
  • springmvc源码学习(二十六)异步请求管理器WebAsyncManager异步任务执行流程

    目录 前言 一 回顾 二 异步任务分发 三 异步任务执行 总结 前言 接着上一篇进行分析 在异步任务创建完 那接下来springmvc会去处理该异步任务 一 回顾 1 上一篇中 在请求完接口 生成了一个调度任务dispatchTask 存储
  • IDEA如何向Maven项目中添加JDBC

    IDEA如何向Maven项目中添加JDBC 解决这个问题有两个步骤 下载这个jar包 导入这个jar包 向pom xml文件中导入依赖 我们依次展开 一 Jar包的下载 访问MySQL官网 点击顶部栏的下载 点击MySQL Communit
  • python selenium4 使用无界面浏览器 爬虫 并存储mysql数据库

    浏览器驱动 需要查看对应浏览器版本进行下载 selenium PyPIhttps pypi org project selenium 浏览器设置中查看当前版本 from selenium import webdriver from sele
  • 【JavaScript】只需要7行代码实现图片懒加载

    前言 面试的时候 面试官经常会问到一个问题 前端优化性能 其中 图片懒加载是性能优化的一个点 准备 offsetTop offsetTop是元素到offsetParent顶部的距离 offsetParent offsetParent是距离具
  • Python列表元素删除方法详解

    Python列表元素删除方法详解 在Python中 列表是一种非常常用的数据类型 它允许我们按照特定的顺序存储大量元素 但是在实际开发中 经常需要对列表中的元素进行删除操作 本篇文章将向您介绍Python中列表删除元素的四种方法 帮助您轻松
  • ARCGIS一些tips

    1 不同shapefile使用相同的自定义风格
  • 网络空间安全导论-第三章习题

    网络空间安全导论 第三章习题 TCP IP模型共有几层 各层各有什么功能 应用层 访问网络服务的接口 例如为操作系统或网络应用程序提供访问网络服务的接口 表示层 提供数据格式转换服务 如加密与解密 图片解码和编码 数据的压缩和解压缩 会话层
  • 【全国科技者工作日】:致敬每一位科技工作者,时代的发展永远也少不了这一批人!

    在我们的日常生活中 科技已经渗透到了方方面面 从第一台计算机的发明到智能手机的出现 再到人工智能的应用 科技的发展已经深刻地改变了我们的生活 在这个快速发展的时代 科技工作者是推动社会发展的重要力量 他们的辛勤付出和不懈努力为我们带来了更多
  • 量化python:使用热力图heatmap绘制胜率图方法及工具函数

    胜率图是分析策略的一种图形 对于胜率的分析需要三种数据 策略 参数集 表现在胜率图的横纵轴含义 对比的场景编号 表现在对比两个策略时使用的场景 通常见于不同的时间 不同的参数 不同的周期 场景对应的值 场景对应的值 可能代表收益率 模型的分
  • Oracle学习笔记5_简单查询

    Oracle简单查询语句 查看表结构 desc dept 查看所有列 select from dept 查询指定列 select ename sal job deptno from emp 如何取消重复行 select distinct d