首页 > 数据库 >[Oracle]复习笔记-SQL部分内容

[Oracle]复习笔记-SQL部分内容

时间:2022-10-22 21:22:58浏览次数:50  
标签:复习 -- student SQL Oracle where class select name

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

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

标签:复习,--,student,SQL,Oracle,where,class,select,name
From: https://www.cnblogs.com/liubaili/p/16817196.html

相关文章

  • SQL进阶篇之函数
    SQL拥有很多可用于计数和计算的内建函数函数的语法SELECTfunction(列)FROM表函数类型Aggregate函数:操作面向一系列的值,并返回一个单一的值(注:如果在SELECT语句......
  • TypeScript 复习进阶三部曲 (1) – 把 TypeScript 当强类型语言使用
    前言本来是想照着TypeScript官网handbook写教程的.但真的没那个mood.还是用我自己的方式写教程(其实是复习和进阶笔记)吧 学习TypeScript的三个阶段(三部......
  • 今日复习
    15.三数之和先排序;遇到重复数字时直接continue;以免答案重复;注意在内层,将问题转化为两数之和采用双指针解决时;利用多分枝的条件判断以减少时间;while(second<thrid......
  • 二、postgresql 14为数据库配置ssl支持,创建sslinfo扩展
    1、配置SSL创建自签名证书opensslreq-new-x509-days365-nodes-text-outserver.crt-keyoutserver.key-subj"/CN=cdh01"chmodog-rwxserver.key创建一个证书签......
  • MySQL基础1【安装-运算符-排序分页】尚硅谷
    第00章_介绍大纲第00章_写在前面讲师:尚硅谷-宋红康(江湖人称:康师傅)官网:http://www.atguigu.comhttp://www.atguigu.com/)一、MySQL数据库基础篇大纲MySQL数据库基础篇......
  • nginx代理mysql访问
    配置stream的前提,需要启用--with-stream--with-stream_ssl_module自己单独独立一个conf 文件时不成功,最后放到nginx.confhttp 里,怎么配置也不成功,后来只能拿到http外面......
  • MYSQL数据库的事务的四大特性
    事务的特性原子性(Atomicity)事务是一个原子操作单元,其对数据的修改,要么全部执行,要么全部不执行一致性(Consistent)在事务开始和完成时,数据都必须保持一致状态。这意味着所有......
  • mysql锁的分类
    锁的分类按照标准划分:锁:共享锁和排他锁按照加锁范围,锁分为:全局锁、表级锁、行锁。全局锁使用场景:全库逻辑备份。也就是把整库每个表都select出来存成文本。对于支持事......
  • 【openGauss】运维常用的SQL
    一、查模式二、查对象查看某模式下的表名selecttablenamefrompg_tableswhereschemaname='hsjc_bi';查看某表的字段SELECTA.attnameASNAME,format_t......
  • MYSQL运算符
    加法运算符CREATEDATABASEtest;--建库USEtest;--进库CREATETABLEdemo1(nameCHAR,ageINT);--建表--查询SELECT100+'1',100+'a',100+NULLFROMDUAL;/*结果+......