oracle學習總結1

2021-09-09 04:23:16 字數 3200 閱讀 4962

1:解鎖使用者

alter user 使用者名稱 account unlock;

2:獲取系統時間、隨機數

select sysdate, sys_guid() from dual;

3:起別名,使可讀性更強,如果想保留字段原來模樣,可以

使用雙引號括起來

select ename,salary*12 from emp;

select ename,salary*12 annuary_sal from emp;

select ename,salary*12 as annuary_sal from emp;

select ename,salary*12 "annuary sal" from emp;

4:空值

select ename,sal*12+comm from emp;如果算術表示式中有值為null,那麼表示式的值就是null

select ename,sal*12+nvl(comm,0) from emp;nvl()函式,如果有值就計算值,為null則替換為0

5:連線符|| ,concat

select ename||sal from emp;

select concat(ename,sal) from emp;

6:資料內部存在單引號',使用兩個單引號代替乙個單引號

select 'i''m lilei!' from dual;

7:distinct去除資料中重複值

select distinct deptno from emp; --獲取不重複的deptno的值

select distinct deptno,job from emp; --當distinct修飾兩個及以上欄位時,表示修飾字段組合不重複

8:條件查詢where

select ename,sal from emp where sal>5000; --查詢薪水大於5000的員工

select ename,sal from emp where sal<5000; --查詢薪水小於5000的員工

select ename,sal from emp where sal<>5000; --查詢薪水不等於5000的員工

select ename,sal from emp where sal>=2000 and sal<=7000; --查詢薪水大於等於2000,並且小於等於7000的員工

select ename,sal from emp where sal between 2000 and 7000;--同上

select ename,sal from emp where comm is null;--查詢獎金為null的員工

select ename,sal from emp where comm is not null;--查詢獎金不為null的員工

注意:null在where後面作為條件時用is ,但是update後面修改值時用=

9:in 查詢乙個字段對應的多個值

select ename,deptno from emp where deptno in(10,20); --查詢部門編號為10或者20的員工

select ename,deptno from emp where deptno not in(10,20); --查詢部門編號不為10或者20的員工

10:and 同時,or 或者,not 取反

select ename ,deptno from emp where deptno=10 and sal>5000;--查詢部門編號為10,同時薪水大於5000的員工

select ename ,deptno from emp where deptno=10 or sal>5000; --查詢部門編號為10 或者薪水大於5000的員工

11:模糊查詢like %匹配多個字元 _匹配乙個字元

select ename from emp where ename like '%a%'; --查詢名字中包含a的員工

select ename from emp where ename like '_a&'; --查詢名字第二個字元為a的員工

select ename from emp where ename like '%\%%'; --如果名字中包括%,那麼就需要轉義,預設是\,也可以指定,如下

select ename from emp where ename like '%$%%' escape '$' --指定$符號為轉義字元

12:排序 order by asc desc

select * from dept order by deptno; --按照deptno排序,預設是公升序(asc)

等效於 select * from dept order by deptno asc;

select * from dept where deptno=10 order by dname;--和where組合使用,先篩選出deptno為10的部門,在按照部門名稱排序。

select * from dept where deptno=10 order by dname asc,loc desc;--先按照部門名稱公升序排序,如果部門名稱中有相同的,在按照

位址降序排列。

13:常用的sql函式

select lower(ename) from emp; --lower():轉換為小寫

select upper(ename) from emp; --upper():轉換為大寫

select substr(ename,1,3) from emp;--從ename欄位1開始,擷取長度為3的子串 substr():獲取子串

select chr(97) from dual; --chr():將數字轉換為對應的字元

select ascii('a') from dual; --ascii():將字元轉換為ascii碼

select round(2.35,1) from dual;--精確到小數點後1位 pound():四捨五入

select round(2.35) from dual;--預設精確到整數

select to_char(sal,'$999,999.9999') from emp; --將數字轉換為字串,以$符開頭,999的格式,l代表本地化貨幣

select to_char(sysdate,'yyyy-mm-dd hh:mm:ss') from dual; --將日期格式轉換為字串 12小時制

select to_char(sysdate,'yyyy-mm-dd hh24:mm:ss') from dual; -- 24小時制

oracle學習總結(1)

進入新的專案組,一直在做資料庫開發測試這塊的東東。下面就是分享一下我自己工作中遇到的一些問題吧。沒有什麼系統性,寫的比較散,不喜勿噴啊!1.數字格式的一些問題 我在工作過程中遇到了各種各樣的資料要求格式問題 1 小數末尾 0 不展示。我使用的是rtrim函式 select rtrim to char...

oracle學習總結

一 定位 oracle分兩大塊,一塊是開發,一塊是管理。開發主要是寫寫儲存過程 觸發器什麼的,還有就是用oracle的develop工具做form。有點類似於程式設計師,需要有較強的邏輯思維和創造能力,個人覺得會比較辛苦,是青春飯j 管理則需要對oracle資料庫的原理有深刻的認識,有全域性操縱的能...

Oracle 學習總結

在家耽誤了一年,重新上班才發現,以前好多順手牽來的 都變的模糊了,所以隨時做好筆記很重要。1 1 檢視表的comment select from user tab comments where table name tj dtjczbtj 2 檢視當前使用者所有表的comment select fr...