Oracle的Sql語句一些知識點(1)

2021-08-05 20:42:48 字數 2042 閱讀 5134

慢慢補充!

oracle:

1.盡量使用列名

和列名 selet 與 select 列名

列名比*執行速度塊 因為oracle首先會先解析*號 會比較慢

2.sql語句中表示式如果有null 則整個為null

比如 年收入 = 年薪+獎金 獎金為null 年收入計算為null

這時候就需要濾空函式 nvl(a,b)

當a 為null時 則為b。

3.oracle中 null!==null

select * from emp where 獎金 = null 這條語句是不會過濾掉獎金為空的。

is null 和 is not null 才是 為空值和不為空值。

4.edit 縮寫 ed 會把上條語句放到編輯器中 我們可以修改 更加方便

5.|| 字串連線 select username||『的密碼是』||password ….

6.dual表 叫做偽表 僅僅是為了滿足select語法的要求 沒有實際作用。

7.concat函式 與||的作用一樣。concat(『字串1』,』字串2』)

8.sql和sqlplus 語句區別

增刪改查 ——–>sql語句

ed c for col ——>sqlplus語句

sql語句不能簡寫 sqlplus可以簡寫

9.between and 小值在前 大值在後

10.in (集合) 子查詢 not in (集合)

注意 :如果集合中有空值 不能用not in

not in (a,b,null) 查不出來

可以用in (a,b,null) 可以查出來

11.like 模糊查詢

注意萬用字元 : %任意字元 _乙個字元

12.轉義字元,對於模糊查詢的特殊點:查詢名字中含有下劃線的資料 比如 tom_test;

select * from emp where name like 『%_%』 是查不出來 tom_test的

表示的是任意長度的字串

要用到轉譯字元:escape 正確的應該是:

select * from emp where name like 『%\_%』 escape 『\』;

13.and or邏輯運算

where 條件1 and 條件2

where 條件2 and 條件1

這倆個sql 語句是完全不一樣的

sql語句優化第二點:where 的順序是從右往左

where 條件1 and 條件2 先判斷條件2 再判斷條件1,盡量把為假的條件放在右邊 如果右邊為假,左邊不用判斷。

where 條件1 or 條件2 盡量把真的放在右邊

14.order by 後面可以跟 列 、表示式、別名、序號

select sal,sal*12 from emp order by sal*12 desc;

select sal,sal*12 as 年薪 from emp order by 年薪 desc;

select sal,sal*12 as 年薪 from emp order by 第幾列 desc;

多列排序 按照部門號 和 月薪進行排序

select sal,nofrom emp order by sal,no;

先按照 sal進行排序 如果 sal相同 再按照 no排序 。

order by 對後面所有列排序 先按照第一列 第一列相同按照第二列

order by desc 對離desc最近的進行排序

如果有空值 可以這樣 order by desc nulls last;

15.字元函式

lower() 轉小寫

upper()轉大寫

initcap()首字母大寫

concat(『字串1』,『字串2』) 拼接兩個字串

substr(a,b)從a中第b位取右邊的字元,包括第b位。

substr(a,b,c)從a中第b位取字元,取c位 c太大不會報錯

length(『字串』) 返回字串的長度 lengthb()

oracle關於許可權的一些sql語句

如何檢視某個角色被授予的許可權oracle select from dba role privs 授予使用者和其他角色的角色 select from dba sys privs 授予使用者和其他角色的系統許可權 select from dba tab privs 資料庫中物件的所有授權 參考 檢視角...

一些sql語句

一。在oracle中建表,怎麼實現id自動編號 1 建表 create table code test id int,name varchar2 20 2.建立序列 create sequence s country id increment by 1 start with 1 maxvalue 9...

一些Sql語句

case when xx then yy else zz 例 case when count is null then 0 else count 當count為空的時候賦值0,不為空則取原值 isnull express1,express2 例 isnull count,0 當count為空的時候則...