2019-06-19

接上篇 :约束和排序数据

逻辑条件关系

逻辑条件:逻辑条件组合两个比较条件的结果来产生一个基于这些条件的单个的结果,

或者逆转一个单个条件的结果。当所有条件的结果为真时,返回行。SQL 的三个逻辑运算

符是:AND 、OR 、NOT 。含义如下:

运算符的优先级:


优先规则:优先规则定义表达式求值和计算的顺序,表中列出了默认的优先顺序。你可

以用圆括号括住你想要先计算的表达式来覆盖默认的优先顺序。

使用ORDER BY 排序

ASC: 升序排序,默认

DESC: 降序排序

ORDER BY 子句:用于对结果集进行排序处理,提供了升序排序(ASC)与降序排序(DESC)如果不指定排序规则默认为升序排序。 在排序中也可以使用没有包括在 SELECT 子句中的列排序。如果未使用 ORDER BY 子句,排序次序就未定义,并且 Oracle 服务器可能对于相同查询的两次执行取回行的顺序不同。

ORDER BY语法

1.ORDER BY 子句在 SELECT 语句的最后

2.ORDER BY 后侧指定需要排序列

3.ASC 以升序排序行 (这是默认排序)

4.DESC 以降序排序行

排序规则:升序

1.对于数字值,小的值在前面显示—例如,1–999。

2.对于日期,早的日期在前面显示—例如,01-1-92 在 01-1-95 前面 。

3.对于字符值,依字母顺序显示—例如,A 第一,Z 最后。

4.对于空值,升序排序时显示在最后,降序排序时显示在最前面

降序与升序相反。

Oracle函数:

什么是函数:

函数:是数据库产品中提供的能够处理查询结果的方法。

函数能够用于下面的目的:

• 执行数据计算

• 修改单个数据项

• 格式化显示的日期和数字

• 转换列数据类型

• 函数有输入参数,并且总有一个返回值。


函数类型:

单行函数:这些函数仅对单个行进行运算,并且每行返回一个结果。

多行函数(聚合函数):这些函数能够操纵成组的行,每个行组给出一个结果,这些函数也被称为组函数。

函数语法

function_name(arg1,arg2,.....)

function_name:是函数的名字。

arg1, arg2:是由函数使用的任意参数。参数可以是一个列名、用户提供的常数、变量值、或者一个表达式。

单行函数

单行函数的特性包括:

• 作用于每一个返回行,每行返回一个结果

• 可能需要一个或多个参数

• 可以修改结果集的数据类型

• 可以嵌套

• 可能返回一个与参数不同类型的数据值

• 能够用在 SELECT、WHERE 和 ORDER BY 子句中

单行函数分类:



字符函数:

字符函数: 单行字符函数接受字符数据作为输入, 既可以返回字符值也可以返回数字值。

字符函数分类:1.大小写处理函数  2. 字符处理函数

大小写处理函数:

LOWER:转换大小写混合的字符串为小写字符串。

UPPER:转换大小写混合的字符串为大写字符串。

INITCAP:将每个单词的首字母转换为大写,其他字母为小写。

大小写处理函数需要一个参数,参数类型为字符串类型,返回一个字符串。

dual表的说明:

dual 是一张只有一个字段,一行记录的表。dual 表也称之为'伪表',因为他不

存储主题数据。如果我们不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们

想得到的信息,并要通过 select 完成时,就要借助 dual 表来满足结构化查询语言的格式。

字符处理函数:

CONCAT(arg1,arg2):连接值在一起 (CONCAT 函数有两个输入参数)

arg1:字符串类型。字符拼接的值。

arg2:字符串类型。字符拼接的值。

SUBSTR(arg1,arg2,arg3):截取子串。

arg1:字符串类型。原字符串,

arg2:整数类型。开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则

表示倒是第二位以此类推),

arg3:整数类型。截取个数。

SUBSTR(arg1,arg2):截取子串。

arg1:字符串类型。原字符串。

arg2 开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则表示倒是第二

位以此类推)截取到末尾。

LENGTH(arg1):以数字值显示一个字符串的长度。

arg1:字符串类型。计算长度的字符串。

INSTR(arg1,arg2):找到一个给定字符的数字位置。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

INSTR(arg1,arg2,arg3,arg4):指定查找位置以及出现的次数。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

arg3:整数类型。开始位置。

arg4:整数类型。第几次出现。

数字函数:


ROUND(arg1,arg2):四舍五入指定小数的值。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,可以是一个负数。负数则表示指定整数的位置。

ROUND(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

TRUNC(arg1,arg2):截断指定小数的值,不做四舍五入处理。

arg1:数字类型。原数字。

arg2:整数类型。小数点保留的位数,可以使一个负数。负数则表示指定整数的位置。

TRUNC(arg1):四舍五入保留整数。

arg1:数字类型。原数字。

MOD(arg1,arg2):取余。

arg1:数字类型。被除数。

arg2:数字类型。除数。

日期处理:
SYSDATE 函数

SYSDATE 是一个日期函数,它返回当前数据库服务器的日期和时间。

用日期计算

• 从日期加或者减一个数,结果是一个日期值

• 两个日期相减,得到两个日期之间的天数

• 用小时数除以 24,可以加小时到日期上

日期函数

MONTHS_BETWEEN(date1,date2):计算 date1 和 date2 之间的月数。其结果可以是正

的也可以是负的。如果 date1 大于 date2,结果是正的。反之,结果是负的。

date1:日期类型。

date2:日期类型。

ADD_MONTHS(date, n): 添加 n 个日历月到 date。 n 的值必须是整数, 但可以是负的。

date:日期类型。

n:整数

NEXT_DAY(date, ‘char’): 计算在 date 之后的下一个周(‘char’)的指定天的日期。 char 的

值可能是一个表示一天的数或者是一个字符串。 如果使用数字表示星期, 1是从星期日开始。

数字范围为:1-7。

date:日期类型。

char:数字或字符串。

LAST_DAY(date):计算包含 date 的月的最后一天的日期。

date:日期类型。

ROUND(date,‘fmt’):返回用格式化模式 fmt 四舍五入到指定单位的 date ,如果格式模

式 fmt 被忽略,date 被四舍五入到最近的天。

date:日期类型。

fmt:字符串类型表示的日期。

TRUNC(date, ‘fmt’):返回用格式化模式 fmt 截断到指定单位的带天的。如果格式模式

fmt 被忽略,date 被截断到最近的天。

date:日期类型。

fmt:字符串类型。

数据类型装换


隐式数据类型转换

隐式转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发

生隐式转换,也称自动转换。

对于直接赋值转换


对于表达式赋值


隐式转换的问题:

性能影响:

隐式转换的最大问题就是转换时会导致索引的无效,进而可能导致全表扫描。当表的数

据量很大的时候,产生会很大的性能问题。比如说,VARCHAR2 和 NVARCHAR2 隐式数据

类型转换导致的性能问题。

不便于阅读:

由于隐式转换使得数据库编程人员和 DBA 难以了解到究竟发生了怎样的类型转换,而

且如果代码很多很长的话要查出错误就需要费很大的劲。

显示数据类型转换

通过数据库中的转换函数完成数据类型的转换。

转换函数:

TO_CHAR(arg1,’fmt’):将一个日期或者数字转换为字符类型。带格式化样式 fmt。

arg1:数字或者日期类型。需要转换的数据。

fmt:转换格式。

to_char日期转换

日期格式模板的元素




未完待续。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容