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. 【原创】Asp.NET Core Web API与Vue 3.0搭建前后分离项目

    特地记录一下,网上的教程写的稀里糊涂的,整得我都心塞塞的,其实实现的过程蛮简单的 问题是这样的:我将Vue构建生成好的文件,放在后端wwwroot文件里面,并开启静态文件访问功能,结果总是无法显示相应 ...

  2. 我和Apache DolphinScheduler的这一年

    Apache DolphinScheduler,为Apache开源项目, 简称"DS", 中文名 "小海豚调度"(海豚聪明.人性化,又左右脑可互相换班,终生不用 ...

  3. Java集合容器的深度理解

    Java容器里有很多写好的容器API,这使我们很方便的可以存储.操作我们的数据. 下面是我写的容器的特点,一些容器的不同之处,从底层源码解析一下容器实现原理 一.常用的容器目录 上图可以看出,java ...

  4. 048_末晨曦Vue技术_处理边界情况之使用$root访问根实例

    处理边界情况之使用$root访问根实例 点击打开视频教程 在每个 new Vue 实例的子组件中,其根实例可以通过 $root property 进行访问. 例如,在这个根实例中: src\main. ...

  5. Excel 文本函数(二):CONCATENATE 和 CONCAT

    在 Excel 2016.Excel Mobile 和 Excel 网页版中,CONCATENATE 函数已替换为 CONCAT 函数. CONCATENATE 函数只能拼接单个单元格或文本字符,不能 ...

  6. Excelize 发布 2.2.0 版本, Go 语言 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  7. 解决eclipse中的Java文件,使用idea打开的乱码问题

    吐槽: 在克隆一些Github上面资源的时候,使用idea打开,会出现乱码的情况 而使用eclipse打开,这种情况就会消失.「是因为eclipse使用的是GBK编码,idea使用的是utf-8」 这 ...

  8. 【java】学习路线5-public和private、构造方法、this关键字、封装对象、static关键字、main方法结构解析

    //一个教务管理系统//知识点清单/*public & private 的区别一个是公开的,一个是私有的,作用域不一样,访问的权限不一样咯如果是用private修饰,则调用者只可以是在当前的作 ...

  9. 【c语言简单算法】1-阶乘

    求n的阶乘 算法要求 从键盘输入一个数,求出这个数的阶乘 代码实现 #include main() { double result=1; size_t n; scanf("%d", ...

  10. 08_Linux基础-vim-tmux-字符编码

    @ 目录 08_Linux基础-vim-tmux-字符编码 一. vim vim编辑器作用 vim模式 vim命令模式 vim编辑模式 vim末行模式 vim视图模式 vim替换模式 练习 vim常用 ...