表达查询是数据库中最常用的操作,最基本的语句为 SELECT <列名、值、函数> FROM <表名>

  当在 SELECT 后使用 * 即表示所查询表中的所有列,如SELECT * FROM emp 就会查出emp表中的所有数据

  如果不想要输出所有列,需要在 SELECT 后面加上想要获得的列名,如 SELECT ename, eno FROM emp 就会查出emp表中所有数据的ename值和eno值

  如果不想输出所行,需要在表名后加上 WHERE <条件>  ,如 SELECT * FROM emp WHERE eno < 50 就会输出eno小于50的所有数据

  

  有时候我们可能需要同时查询多个表中的数据,这时候就需要用到表的连接

  表的连接可以分为以下几种:

  1、笛卡尔积:没有连接条件,是多个表中数据所有可能组合的集合

    SELECT * FROM emp e, dept d

  2、内连接:通过标间相同的字段来进行连接,如可以通过部门编号把员工信息与部门信息连接起来

    SELECT * FROM emp e, dept d WHERE e.deptno = d.deptno

  3、外连接:也是通过相同的字段来连接,但会输出不满足连接条件的数据,如查看考试成绩信息但有些人没有参加考试

    SELECT * FROM emp e LEFT JOIN(左外链接,右外连接为RIGHT JOIN) dept d ON e.deptno = d.deptno

  4、自连接:本表与本表进行连接

    SELECT * FROM emp e1, emp e2 WHERE e1.deptno = e2.deptno

  5、自然连接:不同表中相同列名的数据进行等值连接

  有些时候我们可能要用到其他表中的一些值作为条件,就需要用到子查询

  SELECT * FROM emp WHERE e.deptno = (SELECT deptno FROM dept WHERE dname='财务部')

  就可以查到所有财务部的员工信息类

  当我们需要统计一些数据时,如总分、平均分、成绩,就需要用到 聚合函数 和 GROUP BY

  SELECT deptno, avg(sal) FROM emp GROUP BY deptno

  可以查询到每个部门的平均工资

  当需要在条件中使用聚合函数时,需要用到 HAVING 而不是 WHERE

  SELECT deptno FROM emp GROUP BY deptno HAVING avg(sal) > 3000

  可以查询到评价工资大于3000的部门编号

  当我们需要进行分页查询时,就需要对数据进行排列和截取

  ORDER BY <列名> [ASC | DESC] 可以根据列进行升序(ASC 默认)和降序(DESC)排序,如果GROUP BY 后有多个列名,那会从左到右依次排序,如 ORDER BY score DESC, id 就会先根据score降序,如果 score 有相同数值再根据 id 在score相同的情况下升序

  如果要进行分页截取,那么就得先获得列的列数,可以用 ROWNUM 来获得

  SELECT ROWNUM, ename FROM emp

  

转载于:https://www.cnblogs.com/HMTT-RIN/p/11250770.html

编程学习记录13:Oracle数据库,表的查询相关推荐

  1. Oracle数据库表连接查询并分页SQL语句提示未明确定义列

    Oracle数据库表连接查询并分页SQL语句提示未明确定义列 两张表中的字段: t_product t_category product_id category_id product_name cat ...

  2. ORACLE数据库表空间查询

    前提:必须有DBA权限,有权限查询表空间使用情况 --查看表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE ...

  3. 更改oracle 表空间大小,更改oracle数据库表空间大小

    Oracle表空间扩展 使用oracle时可能遇到无法通过8192在表空间中扩展错误,原因是数据库的表空间不足. oracle表空间数据文件容量与db_block_size有关,在初始建库时指定DB_ ...

  4. 查询oracle表上重复的数据库,如何确定Oracle数据库表重复的记录

    正在看的ORACLE教程是:如何确定Oracle数据库表重复的记录. 作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示O ...

  5. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  6. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...

    天萃荷净 使用copy实现long类型转移表空间,表空间的数据文件损坏,在转移该表空间相关表时,遇到让人郁闷的long类型.不能使用ctas和move来实现转移,最后通过古老的copy来实现该项工作. ...

  7. MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  8. oracle查询当前归档scn_【学习笔记】Oracle数据库 查看归档日志存放的位置

    [学习笔记]Oracle数据库 查看归档日志存放的位置 时间:2016-10-21 19:19   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 分享一篇关于查看Oracle ...

  9. oracle事务数统计,【学习笔记】Oracle数据库收集统计信息的两种方法介绍案例

    天萃荷净 分享一篇关于Oracle数据库收集统计信息的办法,Oracle DBMS_STATS与Oracle analyze使用方法案例 今天群里面讨论DBMS_STATS和analyze,这里进行了 ...

最新文章

  1. elasticsearch 基础语句
  2. linux kernel内存管理学习篇
  3. 【项目管理】项目问题诊断
  4. springMvc 注解@JsonFormat 日期格式化
  5. docker jib_Jib –为Spring Boot应用程序构建docker映像
  6. Redis-cluster集群【第一篇】:redis安装及redis数据类型
  7. 像聊天机器人一样的c语言程序,示例:聊天机器人
  8. springboot 扫描jar包中bean_详解Spring Boot的Component Scan原理
  9. linux用户批量修改密码,Linux 命令详解 chpasswd 批量修改用户密码
  10. 不可以! 南阳理工ACM 题目1071
  11. Java小开发(汽车租赁系统)
  12. 关于python导入模块后发现重复执行
  13. Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
  14. Win10隐藏文件资源管理器中的我的电脑上方的7个文件夹
  15. 南华大学计算机科学学院,南华大学计算机科学与技术学院介绍
  16. 人生如常,常亦无常,亦无进,茫然终身,谓常
  17. github项目下载单个文件夹的办法
  18. 贷款违约行为的ANOVA分析——关于不同抽样方法得到不同结论的分析
  19. matlab的trial,Free Product Trial - MATLAB Simulink
  20. 奇瑞鲍思语:时尚引领科技,奇瑞抓住新能源小车趋势

热门文章

  1. 信息学奥赛一本通 提高篇 第6章 平衡树Treap
  2. word如何设置长宽高_word怎样设置图片长宽
  3. vue 一直加载_Vue无限加载vue-infinite-loading使用详解
  4. 自动化构建部署之Jenkins安装【Docker容器】
  5. C++|Java混合实验-Spring Boot获取客户端操作系统,浏览器,Ip等信息,Qt端展示
  6. Qt工作笔记-让界面飞一会(让界面旋转出来)
  7. audio 上一首 下一首 自定义样式_被 iPhone 吹爆的最香功能,安卓也终于安排上了...
  8. docker pull mysql_docker 拉取mysql数据库
  9. windows中mysql添加环境变量_windows 下添加mysql到系统环境变量
  10. 计算机拼图形 比创意教案,拼图形比创意教学设计.doc