Oracle資料庫學習筆記 基本查詢

2021-09-14 06:00:08 字數 2429 閱讀 8891

sql優化原則:

a.盡量使用列名查詢

b.where的解析順序是自上而下,從右到左

c. 盡量使用多表查詢代替子查詢

d. 盡量不要使用集合運算

null值注意事項

a.null不為null(空)

b.含有null的算術表示式為null

c.在in集合中如果有null,不能使用 not in

d. 在order by排序中null當做最大值

率空函式

a.nvl(a,num):當a等於null時 返回num

給查詢的列換乙個名字:列名 as 「別名」,其中as可以省略,雙引號也可以省略,但是如果省略了雙引號後,別名不能有空格

distinct 去掉重複的資料,並且作用於其後面所有的列,後面的列組合起來不重複,不是單個列不重複eg:

連線符||,連線函式concat(),連線函式的引數只能是兩個 eg:

sql條件和排序語句:select *|from table[where conditions];

字串大小寫敏感,字串和日期必須放在單引號內

日期格式敏感,查詢時必須嚴格按照設定格式,比如上圖的17-11月-81,修改時間格式設定 select * from v$nls_parameters;

nls_date_format這個屬性就是時間格式,然後輸入指令:alter session set nls_date_format=『yyyy-mm-dd』;但是session只在本次會話中有用,關閉視窗就無效

條件為在什麼之間使用between…and…,小值在前,大值在後,並且有邊界eg: select * from emp where sal between 1000 and 2000;也可以用表示式組合;select * from emp where sal>=1000 and sal <=2000;

in(a,b,c,…)查詢條件為在集合中的,not in 不在集合中,但是需要注意如果集合中有null,不能使用not in,eg:select * from emp where deptno in (10,20); select * from emp where deptno not in (10,20);之所以不能在包含null的集合中使用not in 是因為in 判斷時集合中相當於or,只要有一條滿足就會返回true,但是在not in中 集合內相當於and 必須每個條件都成立才能返回true但是null與任何表示式計算都是null,所以集合返回都是fase所以也就找不到任何資料資訊。

模糊查詢 like 下劃線表示模糊乙個字元,%百分號表示一些字元,轉義字元設定 escape 』 xx』 eg:查詢名字是4個字的 select * from emp where ename like '__』; 查詢名字中帶有下劃線的: select * from emp where ename like '%/%』 escape 『/』; 如果不加入轉義字元,系統識別不了那是下劃線,他會當成模糊查詢中的乙個字元。

order by 排序(預設為公升序,後面加上desc為降序),其後面可以加 列,表示式,別名,序號 eg:

注意1:如果是多個列進行排序,則先按照第乙個列再按照第二個列依次排序,如果第乙個列沒有重複,第二個列就不排序,desc 只作用於離他最近的列

注意2:當在排序中遇到null時,null為最大值,這個時候可以採用nvl()來給null給乙個值,或者在排序語句後加上nulls first 或者nulls last 將null值放到最前面或者最後面

windowns下清屏指令 host cls,clear screen 或者是clea scre

Oracle資料庫的基本使用 學習筆記

檢視當前使用者的所有表 select from tab 切換使用者 create user kfc identified by a123 語法 conn 使用者名稱 密碼 as 角色 sysdba sysoper normal conn system manager 使用system使用者登入 co...

Oracle資料庫學習筆記 一

微軟 sql server 和 access 瑞典mysql ab公司 mysql ibm公司 db2 美國sybase公司 sybase ibm公司 informix 美國oracle公司 oracle 小型資料庫 access 中型資料庫 sql server mysql informix 大型...

資料庫 Oracle學習筆記(1)

類class class student 學生物件public class student byte b 100 int i 10000 double d 3.14 char c 我 boolean f true id name age1001 張三30 1002 李四25 nickname pas...