日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle insert 当前时间_Oracle知识点总结

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle insert 当前时间_Oracle知识点总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1、Oracle的安裝與下載
2、基礎查詢
3、條件查詢
?? ?1)對比運算符
?? ?2)邏輯運算符
?? ?3)模糊查詢
?? ?4)排序
4、函數(shù)
?? ?1)數(shù)值函數(shù)
?? ?2)字符函數(shù)
?? ?3)時間日期函數(shù)
?? ?4)轉(zhuǎn)換函數(shù)
?? ?5)通用函數(shù)
5、聚合函數(shù)
6、分組查詢

在學習Oracle之前,需要先有一定的數(shù)據(jù)庫基礎知識。

一、Oracle的安裝與下載

Oracle的安裝與下載,請看博客:https://blog.csdn.net/wei_li_2015/article/details/80835614

二、基礎查詢

1.sql語言的類型有哪些

DDL:數(shù)據(jù)定義語言,創(chuàng)建(create),修改(alter),移除(drop)
DML:數(shù)據(jù)操作語言, 增加(insert),刪除(delete),修改(update)
DQL:數(shù)據(jù)查詢語言,查詢(select)
DCL:數(shù)據(jù)控制語言,對用戶授權(quán)撤權(quán)(grant,revoke)
TCL:事務控制語言,提交(commit),回滾(rollback),保存點(savepoint)

2. Scott用戶表的說明

3. 查詢的語法

語法說明:

????<> :表示必須的
????[]:表示可選。

select [distinct] *| [as 別名]? from ? [別名] [where ]


示例:

--查詢所有的員工信息

select * from emp;

--需求:查詢員工的姓名,去重復

select distinct ename from emp;

--需求:查詢員工的姓名,返回的字段名使用表的別名指定

select distinct a.ename from emp a;

--需求:查詢員工的姓名,返回的字段名使用表的別名指定.將返回的字段修改為‘c’

select distinct a.ename as 員工姓名 from emp a;

二、條件查詢

1、對比運算符

運算符

說明

=

等于

>?

大于

小于

>=

大于等于

<=

小于等于

<>?

!=

不等于,沒有區(qū)別。

<>這個是標準SQL的不等于,所有的數(shù)據(jù)庫都支持,!=非SQL標準的不等于,就有某一些數(shù)據(jù)庫不支持。

in

列表對比運算符

is [not] null

判空

between .. and..

范圍對比運算符

?

--需求:查詢員工部門編號為10,或者20的員工。

select * from dept where deptno in (10,20);

--需求:查詢員工的獎金不為null的員工。

select * from emp where COMM is not null;

--需求:查詢員工的工資在1600和3000 之間的員工。包括上下限。

select * from emp where sal between 1600 and 3000;

select * from emp where sal>= 1600 and sal<=3000;

--需求:查詢員工的入職時間在1981-9-28至1982-1-23的員工,包括上下限。

select * from emp where hiredate between to_date('1981-09-28','yyyy-mm-dd') and to_date('1982-01-23','yyyy-mm-dd');

在該示例中涉及時間的轉(zhuǎn)換,在后面會總結(jié)到,該處不做過多的總結(jié)。

2、邏輯運算符

運算符

說明

AND

與,并且

OR

或,或者

NOT

非,不

--邏輯運算符

--AND

--需求:查詢員工的工資在1600和3000 之間的員工。不包括上下限。

select * from emp where sal > 1600 and sal<3000;

--OR

--需求:查詢員工部門編號為10,或者20的員工。

select * from emp where deptno =10 or deptno=20;

--NOT

--需求:查詢員工的工資不在1600和3000 之間的員工。包括上下限。

--1600以下

--3000以上

select * from emp where sal not between 1600 and 3000;

3、模糊查詢

1、特殊字符

  • 如果遇到,匹配的字符就是一個特殊字符,那么需要轉(zhuǎn)義。

  • 定義一個轉(zhuǎn)義字符來實現(xiàn),定義的轉(zhuǎn)義符可以是任何字符,只是我們習慣使用\

  • ?_代表是匹配一個字符

  • %代表是匹配任何的字符

--模糊查詢

--like

--需求:查詢第三個字母為A,的員工

select * from emp where ename like '__A%';

--需求:查詢名字有_的員工

select * from emp where ename like '%\_%' escape '\';

4、排序

關鍵字:desc 和 asc

--需求:根據(jù)工資的從高到低排序

select * from emp order by sal desc;

--需求:根據(jù)部門編號從低到高排序

select * from dept order by deptno asc;

--需求,按部門編號升序排序,然后每個部門按工資從高到低排序。

select * from emp order by deptno asc,sal desc;

三、函數(shù)

1、數(shù)值函數(shù)

數(shù)值函數(shù),就是處理數(shù)值。

1)四舍五入函數(shù)round(p,s)
??? p:原值

??? s:精度,如果是正數(shù),表示小數(shù)點后的位數(shù),如果是0,表示忽略小數(shù)點后的位數(shù),如果是負數(shù),即使從右到左,精確正數(shù)部分。

--需求:統(tǒng)計所有員工的平均工資,保留四位小數(shù),四舍五入

select round(avg(sal),4) from emp;

--需求:統(tǒng)計所有員工的平均工資,保留三位小數(shù),四舍五入

select round(avg(sal),3) from emp;

--需求:統(tǒng)計所有員工的平均工資,保留到個位

select round(avg(sal),0) from emp;

--需求:統(tǒng)計所有員工的平均工資,保留到十位

select round(avg(sal),-1) from emp;

2)數(shù)值截取函數(shù)??trunc(p,s)

p:原值

s:精度,如果是正數(shù),表示小數(shù)點后的位數(shù),如果是0,表示忽略小數(shù)點后的位數(shù),如果是負數(shù),即使從右到左,精確正數(shù)部分。

--需求:統(tǒng)計所有員工的平均工資,保留四位小數(shù)

select trunc(avg(sal),4),avg(sal) from emp;

--需求:統(tǒng)計所有員工的平均工資,保留到十位

select round(avg(sal),-1) from emp;

2、字符函數(shù)

字符函數(shù):就是處理字符

1)字符函數(shù) length(p)

字符長度計算函數(shù),p:表示原值

--需求:計算員工的名字的長度

select length(ename),ename from emp;

2)替換函數(shù)? replace(p,c1,c2)

p:原值

c1:需要替換的值(舊值)

c2:替換后的值(新值)

--需求:my name is itcast 修改 my 為 your

select replace('my name is liwei','my','your') from dual;

--如果c2沒有值,表示直接刪除c1的值

select replace('my name is liwei','my') from dual;

3)偽表:dual

  • 在Oracle里面,查詢都是使用select關鍵字的。而select關鍵字語法為:select 返回結(jié)果 from ?。

  • 但是在查詢一些情況是沒有表的,查詢函數(shù),查詢運算的結(jié)果,查詢關鍵字。Oracle在查詢這些沒有表的數(shù)據(jù)時,使用一個臨時表來存儲。這個臨時表就是偽表dual;

  • dual的作用就是查詢沒有表的數(shù)據(jù)時,用于維持select的語法的需要。

  • 反正,沒有表的數(shù)據(jù)查詢時,統(tǒng)一使用dual

--如:查詢7+8的結(jié)果

select 7+8 from dual;

--如:查詢當前用戶

select user from dual;

--如:查詢當前的日期

select sysdate from dual;

3、日期時間函數(shù)

日期時間函數(shù):就是處理日期時間的

1)日期函數(shù)

--如:查詢當前的日期

select sysdate from dual;

2)月份增加函數(shù) add_months(p,m)
p:原值
m:增加的月份數(shù),如果是正數(shù)就是加,如果是負數(shù)就是減

--需求:計算當前日期的5個月后的日期

select add_months(sysdate,5) from dual;

--需求:計算當前日期的5個月前的日期select add_months(sysdate,-5) from dual;

3)日期月份對比函數(shù) months_between(d1,d2)

日期月份對比函數(shù),返回兩個日期的月份間隔

作用:

用于計算兩個日期的月份區(qū)間
對比兩個日期的大小如果d1>d2,返回正數(shù),如果 d1

--需求:計算當前日期,和2017-01-14.的月份間隔

select months_between(sysdate,to_date('2017-01-14','YYYY-MM-DD') ) from dual;

4)日期時間提前函數(shù)
extract(year|month|day|hour|minute|seconnd from |)

--需求:提前當前日期的年月日

--提取年

select extract(year from sysdate) from dual;

--提取月

select extract(month from sysdate) from dual;

--提取日

select extract(day from sysdate) from dual;

--提取時

--12小時制

select extract(hour from to_timestamp('2017-08-14 11:48:20','yyyy-mm-dd hh:mi:ss')) from dual;

--24小時制

select extract(hour from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;

--提取分

select extract(minute from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;

--提取秒

select extract(second from to_timestamp('2017-08-14 13:48:20','yyyy-mm-dd hh24:mi:ss')) from dual;

--oracle支持另種寫法,不用to_timestamp函數(shù),使用timestamp關鍵字

--提取秒

select extract(second from timestamp '2017-08-14 13:48:20') from dual;

4、轉(zhuǎn)換函數(shù)

轉(zhuǎn)換函數(shù):就是實現(xiàn)類型的轉(zhuǎn)成

1)字符串轉(zhuǎn)成日期? to_date(p,f)
p:原值
f:格式,年YYYY,月MM,日DD,時HH24,分MI,秒SS

select to_date('2017-08-14','YYYY-MM-DD') from dual;

2)字符串轉(zhuǎn)時間? to_timestamp(p,f)
p:原值
f:格式,年YYYY,月MM,日DD,時HH24,分MI,秒SS

select to_timestamp('2017-08-14 13:11:30','YYYY-MM-DD HH24:MI:SS') from dual;

3)將其他類型的值轉(zhuǎn)成字符串

將其他類型的值轉(zhuǎn)成字符串

將當前日期轉(zhuǎn)成字符串
to_char(p,f)

p:原值
f:格式,年YYYY,月MM,日DD,時HH24,分MI,秒SS

select to_char(sysdate,'yyyy-mm-dd') from dual;

select to_char(sysdate,'yyyy/mm/dd') from dual;

4)將數(shù)值類型轉(zhuǎn)成字符串? to_char(p,f)
p:原值
f:數(shù)值的占位符是9

--需求:將8978767976,轉(zhuǎn)為$8,978,767,976

select to_char(8978767976,'$9,999,999,999') from dual;

5、通用函數(shù)

通用函數(shù):一些幫助函數(shù),空處理

1)空處理函數(shù)
nvl(p,v1):如果p的值為null,就返回v1.
nvl2(p,v1,v2):如果p的值不為null,返回v1,為null返回v2;

--需求:查詢有獎金員工

--nvl

select comm,nvl(comm,0) from emp;

select * from emp where nvl(comm,0)<>0;

--nvl2

select comm,nvl2(comm,comm,0) from emp;

select * from emp where nvl2(comm,comm,0)<>0;

四、聚合函數(shù)

聚合函數(shù):就是用于統(tǒng)計

?max()
?min()
?count()
?sum()
?avg()
所謂的多行函數(shù)就是聚合函數(shù),非聚合函數(shù)的其他函數(shù)就是單行函數(shù)。

五、分組查詢

1、分組查詢時什么

數(shù)據(jù)庫是支持統(tǒng)計數(shù)據(jù)功能,統(tǒng)計包括了最大值,最小值,平均值,總數(shù),總記錄數(shù)
如果我們需要按某種字段分類后再統(tǒng)計呢?
我們將按某個字段分類稱為分組。

2、分組的作用

分組的作用實現(xiàn)將某種字段分類,再統(tǒng)計這個類型的統(tǒng)計數(shù)據(jù)。

--需求:統(tǒng)計員工工資的最大值,最小值,平均值,總數(shù)

select max(sal),min(sal),avg(sal),sum(sal) from emp;

--需求:按部門分組,求每個部門的最大工資和平均工資

select deptno,max(sal),avg(sal) from emp group by deptno;

--需求:按部門分組,求每個部門的最大工資和平均工資,平均工資在2000以上

--問題:使用where,還是having?

--答:因為平均工資是在分組后才可以獲得,所以使用優(yōu)先級別在group by后面的having來判斷

--查詢語句的關鍵字是有優(yōu)先級別的

--from > where > group by >having > select > order by

select deptno,max(sal),avg(sal) from emp group by deptno having avg(sal)>2000;

--問題:如果判斷的條件不需要分組就可以獲得,使用where.

--為什么:如果在分組前就可以過濾掉這些數(shù)據(jù),就可以查詢時的效率。

總結(jié)

以上是生活随笔為你收集整理的oracle insert 当前时间_Oracle知识点总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。