2023-02-13

创建
查询
四则运算
DUAL虚拟表
条件查询
比较运算符 where + 大于小于等于.....
逻辑运算符 and / or
特殊运算符 null / not null
between:

//查询工资在1500-3000的员工
    SELECT * FROM EMP
    WHERE SEL BETWEEN 1500 AND 3000;
//不在
    WHERE SEL NOT BETWEEN 1500 AND 3000;

备注:日期格式为:DATA‘1999-01-01’
中间无空格连接。

指定范围查询
WHERE 变量 IN (集合A);

LIKE 模糊匹配
_ _表示一个字符。
%表示多个字符

查询NAME中包括S的信息:

WHERE ENAME LIKE ‘%s%’

查询NAME最后一位是S的信息:

WHERE ENAME LIKE ‘%s’

单行函数-字符函数
ASCII()
后面可加字符串,数值,输出内容为对应的ASCII码。

SELECT ASCII('A') FROM DUAL;

CHR返回字符
语法:
CHR(ASCII)

SELECT CHR(65) FROM DUAL;

输出内容为ADCII码对应的字符。相当于和ASCII相逆。

CONCAT 拼接
上述的 || 拼接相当于字符串拼接。
语法:
CONCAT(字段|字符串,字符串|字段)

SELECT ENAME,EMPNO,JOB 
    FROM EMP

SELECT ENAME||EMPNO||JOB
    FROM EMP

SELECT CONCAT(CONCAT(ENAME,EMPNO),JOB)
    FROM EMP

    //备注:CONCAT进行链接的时候只能进行双列拼接。
    //若是想拼接多列,可使用嵌套进行大娃套小娃实现。

INITCAP -首字母大写
语法:INITCAP(字段|字符串)

SELECT ENAME,INITCAP(ENAME)
    FROM EMP

UPPER -所有的字母全部转换大写。语法同上述相同。

LOWER -转小写

TRIM -删除字符串左右两侧的空格。

备注:此种方法不可删除字符串中间的空格。比如Jim Kim[人名]。

SELECT TRIM(LEADING 'A' FROM 'AAAAAfjfelAAAAA') FROM DUAL

SELECT TRIM(TRAILING 'A'FROM 'AAAAAfjfelAAAAA')FROM DUAL

SELECT TRIM(LEADING TRAILING BOTH 'A' FROM 'AAAAAfjfelAAAAA') FROM DUAL

SELECT TRIM(BOTH 'A' FROM 'AAAAAfjfelAAAAA') FROM DUAL

SELECT TRIM('A' FROM 'AAAAAfjfelAAAAA') FROM DUAL
//备注:3,4,5条相同。

LTRIM -删除左手边的空格/字符。

SELECT LTRIM('AAAAAfjfelAAAAA') FROM DUAL
SELECT LTRIM('AAAAAfjfelAAAAA','A') FROM DUAL

RTRIM -删除右手边的空格/字符。

同上

INSTR -查找字符所在位置
语法:INSTR(字符串,要查找的字符,从第X位开始找,查找第X次出现)

SELECT ENAME INSTR(ENAME,'A','1','1')
    FROM EMP
SELECT ENAME INSTR(ENAME,'A')
    FROM EMP
//若后二都是1,可以省略。
//若最后1是1的话,可以省略。

SUBSTR -截取
语法:SUBSTR(Stirng,从第x位开截,截X个)

备注:包括第X位置的那个。

SELECT ENAME SUBSTR(ENAME,'1','3')
    FROM EMP

截取最后三位:

SELECT ENAME SUBSTR(ENAME,'-3')

若第三个参数不添加,则默认截取至最后。

LENGTH -返回字符的长度。字符:&……¥
LENGTHB -返回字节的长度。字节:单位
语法:LENGHTH(字段|字符串)
LENGTHB()

*lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 对于单字节字符,LENGTHB和LENGTH是一样的. 如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。 注: 一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。 select lengthb(‘飘’) from dual 可查询汉字在Oracle数据库里占多少字节 *

LPAD:左填充
语法:LPAD(字段|字符串,需要的长度,填充内容)

备注:需要添加的内容是字符串。且需要的长度也使用引号。

SELECT
    JOB,
    LPAD(JOB,'8','@')
FROM EMP

RPAD:右填充
同上述相同。

REPLACE -整体替换删除
语法:REPLACE(字符串,旧内容,新内容)
若不添加新内容则只会删除旧内容。

SELECT REPLACE('ASDASDASDASDASDSAD','AS')
SELECT
    ENAME,
    SUBSTR(ENAME,'1',LENGTH)

TRANSLATE -单个替换删除
语法:TRANSLATE(字符串,旧内容,新内容)
比如以下语句:

SELECT TRANSLATE('ASDASDASDASD','A','!') FROM DUAL

SLELECT TRANSLATE('qwqweefw232fdsa','1234567890'||'1234567890')

SELECT 
    TRANSLATE(STREET_ADDRESS,'qwertyuiopasdfghjklzxcvbnm'||'qwertyuiopasdfghjklzxcvbnm')
FROM LOCATION
select
translate
(STREET_ADDRESS,'qwertyuiopasdfghjklzxcvb0'||STREET_ADDRESS,'qwertyuiopasdfghjklzxcvb0')
--TRANSLATE(字符串,旧内容,新内容)
from LOCATIONS;
SELECT
    STREET_ADDRESS
FROM LOCATIONS
WHERE 

数值函数
ACOS -反余弦函数
语法:ACOS(数值)-返回值的反余弦。
反余弦的参数范围在1~-1之间,超出则报错。

COS --余弦函数。

POWER --次幂

POWER(N1,N2)
返回N1的N2次方。

SQRT -平方根

ABS - 绝对值

MOD -余数
语法MOD(EMPNO,’2‘)

FLOOR -向下取整
FLOOR(数值)
CEIL -向上取整

ROUND -四舍五入
语法 ROUND(字段|数值,保留的小数位数)

SELECT ROUND(123456.1234,’-3‘)
-123000

TRUNC -不四舍五入,直接截取。

SIGN

日期函数
SYSDATE 返回系统当前时间。
格式:SELECT SYSDATE FROM DUAL;

ROUND -四舍五入
ROUND(日期|字段,格式字符串)

SELECT ROUND(DATE '198-6-30','YYYY')FROM DUAL;

如果是上半年则舍去,下半年返回明年的第一天。
格式字符串:YYYY,MM,DD
如果第二个参数不写,则默认四舍五入当日。

TRUNC
截取日期,向下取整。

EXTRACT
year month day
语法:EXTRACT(格式字符串,FROM 日期字段)

SELECT EXTRACT(YEAR FROM SYSDATE)FROM DUAL

ADD_MONTHS
给日期加减月。

ADD_MONTHS (日期|字段,加减月)
--如果是正数则加,负数则减。

SELECT ADD_MONTH(SYSDATE,1)
    FROM DUAL;
SELECT ADDMONTH(SYSDATE,-1)
    FROM DUAL;

MONTHS_BETWEEN
两个月相减的差。

MONTHS_BETWEEN(日期|字段,日期|字段)

SELECT
    HIREDATE,
    TRUNC(MONTH_BETWEEN(SYSDATE,HIREDATE)/12) AS 工龄
FROM
    EMP;

LAST_DAY 返回当月的最后一天
语法:LAST_DAY(日期|字段)

SELECT
    LAST_DAY(SYSDAYE)
FROM
    DUAL;

NEXT_DAY
-返回离当前日期最近的星期几。

1代表sunday,2代表monday,以此类推。

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

推荐阅读更多精彩内容