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...