orcale ( 1) 单表查询

ORACLE常用数据类型
在这里插入图片描述
常见的Oracle数据类型了解:
Char类型:定义长度时,如果存储的数据小于长度,空位补空格。固定长度的类型。
缺点:浪费存储空间 char(3) m 空格空格m
注:Char类型中存在空格,那么在程序取值比较时容易出错
在ORACLE中使用trim()函数,会造成char类型字段上的索引失效。
优点:char类型在效率上比着其它字符类型的会快一点

Varchar2类型:
可变长度。存储时如果数据小于长度,varchar的长度按实际存储长度计算。
优点:节省存储空间 varchar2(3) 你好 你好
缺点:效率比char类型低
注意:varchar2只有Oracle才有的。带2的是Oracle自己增强的数据类型,不是sql99规范中的。

Clob是longtext类型的代替品,存储超大量的字符串。如果varchar存储不了,可以用这个。但效率很低下,而且不能使用上索引。这玩意的存储大小不是按长度存储,按字节数存储的。

Blob 存储海量二进制类型。例:电影、音乐、高清图片。
缺点:每次存储时都需要转换为二进制进行存储, 获取时把二进制转为数据。
通常存储电影、音乐时存储的是文件的路径。
Oracle所有的数据类型:
在这里插入图片描述

一、单表查询

1.基本查询语法
【语法】
在这里插入图片描述

使用工具进行查询
在plsql developer中打开查询窗口:
在这里插入图片描述
执行语句的操作:
选中要执行的语句,点击执行按钮或者按快捷键F8,下方会显示查询的结果。
在这里插入图片描述
显示下一页记录和显示剩余的所有页的记录:
在这里插入图片描述
如果想学习工具的详情使用,可参阅文档《plsql developer中文手册.pdf》。

使用工具来格式化语句
选中要格式化的语句,点击工具栏上的“美化”按钮,工具会自动将语句格式化:
在这里插入图片描述

2.字符串连接符||
在这里插入图片描述

3. 伪表-dual(oracle独有)

需求:查询显示当前的日期:
SELECT SYSDATE FROM dual;–sysdate代表当前日期的一个系统函数,dual是伪表,主要用来占位的,补充sql的。

4.空值运算问题
在这里插入图片描述
在这里插入图片描述

5.SQL语句和SQL*Plus命令
在这里插入图片描述

二、过滤子句where
在这里插入图片描述
注意:

  • Where子句紧跟from子句。
  • where的过滤条件是对于每一行数据的。

2.字符和日期
在这里插入图片描述
在这里插入图片描述

3.Escape-转义字符

SELECT * FROM emp WHERE ename LIKE '%\_%' ESCAPE '\';
用ESCAPE来声明一个转义字符,语句中,该转义字符之后的字符,都作为普通字符来处理。

4.条件运算符
常见的条件运算符如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运算符的优先级:括号最无敌
在这里插入图片描述
三、Oracle内置函数:单行函数
Oracle的内置函数分为单行函数和多行函数(多行函数还称之为组函数、聚集函数等)。
在这里插入图片描述
1.单行函数
在这里插入图片描述
2.单行函数的分类
在这里插入图片描述
3.字符函数
在这里插入图片描述
4.字符控制函数:
在这里插入图片描述
5.数字函数
在这里插入图片描述
6.日期函数
在这里插入图片描述
7.转换函数
在这里插入图片描述
隐式转换
在这里插入图片描述
8.隐式转换的条件
Oracle可以自动的完成下列类型(三种)的转换:
在这里插入图片描述
非法转换 :隐式转换的前提是,被转换的对象是可以转换的。

显示转换(三个函数)
在这里插入图片描述
将日期或数字转换成字符
在这里插入图片描述
将字符转换成日期
在这里插入图片描述
将字符转换成数字
在这里插入图片描述

9.滤空函数
滤空函数也称为通用函数,其特点是:适用于任何数据类型,同时也适用于空值。
常见的滤空函数
在这里插入图片描述
使用方法:
nvl(a,c),当a为null的时候,返回c,否则,返回a本身。
nvl2(a,b,c),当a为null的时候,返回c,否则返回b—三元运算
其中,nvl2中的2是增强的意思,类似于varchar2。
nullif(a,b),当a=b的时候,返回null,否则返回a
coalesce(a,b,c,d),从左往右查找,当找到第一个不为null的值的时候,就显示这第一个有值的值。

10.条件表达式
条件表达式的作用是:在SQL语句中使用判断的逻辑(类似于IF-THEN-ELSE)来呈现个性化的数据。
条件判断语句有两种:

  • CASE 表达式:SQL99的语法,类似Basic,比较繁琐
  • DECODE 函数:Oracle自己的语法,类似Java,比较简单

1.Decode函数
在这里插入图片描述
decode (字段名,要翻译的原始值1,翻译后的值1,…,其他不满足翻译条件的默认值)。
2.Case子句
在这里插入图片描述
语法解释:

在这里插入图片描述

四、多行函数
1.多行函数的概念
多行函数也称之为分组函数、聚集函数。简答的说就是把多行的值汇聚计算成一个值。
常见的分组函数:
在这里插入图片描述
2.空值问题
多行函数会自动滤空。

Count的使用注意点:
count统计时可以使用不同的对象:*,column,1,不同的对象统计的方式和效率都不同。
在这里插入图片描述

3.嵌套函数
distinct可用来过滤掉多余的重复记录只保留一条,一般和count配合使用,作为统计非空且不重复的记录数。

在这里插入图片描述
**五.分组 **
在这里插入图片描述
作用:可以使用GROUP BY 子句将表中的数据分成若干组
分组的要求
在SELECT 列表中所有未包含在组函数中的列都应该包含在 GROUP BY 子句中。反之,包含在 GROUP BY 子句中的列不一定包含在SELECT 列表中。

六、过滤分组(having)
在这里插入图片描述
为分组子句添加查询条件的。
在这里插入图片描述
从语法上看,两者选择简单归纳为,就是group by分组之后需要的条件中有组函数的,就必须得用having,其他都可以直接用where。
从性能上看,实际开发中,使用分组的时候尽量先加一个where的过滤条件。没有组函数的情况下,尽量选择where。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值