Oracle笔记--SQL部分

整体框架

语句的执行顺序:
from →where →group by→having→select→order by

select *
from *
where *
group by *
having *
order by *

关于select

(1)当调用的不同表中存在相同名称的列时,需要指明表格

select student.name,class.name
from student,class

(2)重定义列名

select student.name as stuname --as可以省略

(3)当需要重定义的列名与sql保留关键字相同时需要使用双引号

select student.score as "value"

(4)使用distinct去重

select distinct(student.score) from student

关于from

(1)左右合并表格 a inter join b using(c),以列c为标准,合并表a和表b中列c值相同的行

-- 使用inter join,对于任意一个表格,若列c的值为空则该行数据不显示
from class inter join student using(stuname)
-- 若两个表格中关于同一项值的列名不同,使用“on + 判断”而不是“using()”
from class inter join student on class.stuname=student.name
-- 向左合并(当表a中列c为空时仍然显示表a的数据)left join
-- 向右合并 right join
-- 两个表中列c为空的行都显示 full join

(2)上下合并表格union(去重)与union all(不去重)
注意:union(all)要求两次select列数一定要相同,列必须拥有相似的数据类型

from (
select student.age,student.name
from student
union all
select teacher.age,teacher.name
from teacher
) as allmessage -- 一般会起一个名字便于后续使用

关于where

(1)查找某个值

where sid='BDT20040'

where sid like 'BDT20%' -- %代指零个或多个字符

(2)使用子查询

where SID in (
select SID from class
where class.name='Oracle')
-- not in这里就不写了,用法类似 where exists(
select * from class
where class.name='Oracle' and class.sid=student.sid)
-- exists用于判断查询子句是否有记录,如果有记录返回 True,否则返回 False,与select后接的查找内容无关。not exists 同理

(3)判断是否为空

where sid is not null

关于group by

当select中使用聚合函数时,非聚合函数项需要添加到group by中

常见的聚合函数有:avg()、count()、max()、min()

关于having

对于使用聚合函数的列,我们使用having的方法进行筛选

select class.name,max(score)
from class inter join student on class.stuname=student.name
group by class.name
having max(score)>80

关于order by

order by student.score
-- 默认为从小到大,可以设置为desc,改为从大到小

其他

(1)取整函数 round

select round(1.245,2) from dual
--四舍五入到两位小数,其中2可以省略,若省略则默认四舍五入到整数。dual表示空表。 select draw_time,trunc(draw_time) from usershi
--日期型数据也能实现取整,执行时舍去时分秒,不会进位。

(2)关于空值 null

  • 空值在判断值是否相等时(=、in)返回无法判断(不相等)
  • 但在使用group by时,空值会被视作同一项(相等)
  • count(字段/NULL) 不统计NULL值,count(null)=0

制作:BDT20040

如果还有想到啥的可以私聊我,我去补充一下(大概率咕咕咕就是了)

[Oracle]复习笔记-SQL部分内容的更多相关文章

  1. (三)Oracle学习笔记—— sql语句

    0. scott 用户默认表介绍 scott用户Tables目录下包含四张表 1. insert(插入)语句 给指定列插入数据: ,'xx'); 插入全部列数据: ,'xx','lll'); 2. u ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. Oracle实战笔记(第六天)之PL/SQL基础

    一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语 ...

  4. Oracle学习笔记之四,SQL语言入门

    1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...

  5. oracle学习笔记3:基本的SQL语句

    oracle基本的SQL语句和SQLSERVER基本一样,在这里只简单列出与SQLSERVER不一样的地方 1.select * from orderinfo where address = 'abc ...

  6. Oracle学习笔记之PL/SQL编程

           SQL(Structure Query Language)的含义是结构化查询语句,最早由Boyce和Chambedin在1974年提出,称为SEQUEL语言.1976年,IBM公司的Sa ...

  7. oracle 入门笔记--v$sql和v$sqlarea视图(转载)

    转载于作者:dbtan 原文链接:http://www.dbtan.com/2009/12/vsql-and-vsqlarea-view.html v$sql和v$sqlarea视图: 上文提到,v$ ...

  8. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  9. Oracle复习思路

    目录 Oracle复习 题型 复习大纲 附录 SQL题目一 SQL题目二 SQL题目三 SQL题目四 SQL题目五 SQL题目六 Oracle复习 题型 选择题15题 每题2分,共30分 判断题10题 ...

随机推荐

  1. 只要9.9元!零基础学习MySQL

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 导语 经过一段时间的筹备和整理,万里数据库<零基础学习MySQL>课程正式在腾讯课堂上线了. 课程地址:htt ...

  2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder执行过程

      通过Rider调试的方式看了下ASP.NET Core 5.0的Web API默认项目,重点关注Host.CreateDefaultBuilder(args)中的执行过程,主要包括主机配置.应用程 ...

  3. Git 10 IDEA撤销推送

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 如果推送了多 ...

  4. HttpServletResponse 类

    HttpServletResponse 类的作用 HttpServletResponse 类和 HttpServletRequest 类一样.每次请求进来,Tomcat 服务器都会创建一个 Respo ...

  5. Canvas 线性图形(一):路径

    路径的概念 路径是从起始点到结束点之间的连线.个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形.直线.曲线.圆形等各种几何图形:非线性图形包括图象.文本.像素.线性图形中又分为路径和非路 ...

  6. RabbitMQ实现订单超时案例

    前言 人间清醒 目录 前言 业务场景 JUC(DelayQueue)方案 DelayQueue简介 JUC DelayQueue实现订单超时案例代码 案例代码 Redis Key过期事件方案 简介 R ...

  7. Halcon C#开发OpenFramegrabber卡死问题

    之前用Halcon12开发的时候,Hdevelop打开相机正常,但是用C#开发的时候,就出现了问题. 1.换库,甚至将x64中dll全部拷贝到debug中,始终不行 2.看到有说卸载360的,更是离谱 ...

  8. 【设计模式】Java设计模式 - 责任链模式

    [设计模式]Java设计模式 - 责任链模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 目录 [设计模式]Java设计模式 - 责 ...

  9. Pytorch: repeat, repeat_interleave, tile的用法

    https://zhuanlan.zhihu.com/p/474153365 torch.repeat 使张量沿着某个维度进行复制, 并且不仅可以复制张量,也可以拓展张量的维度: import tor ...

  10. AQS:Java 中悲观锁的底层实现机制

    介绍 AQS AQS(AbstractQueuedSynchronizer)是 Java 并发包中,实现各种同步组件的基础.比如 各种锁:ReentrantLock.ReadWriteLock.Sta ...