1:select ename "name" ,sql+nvl(comm,0) "income",job from emp where job not like "%aa%" order by job;
nal(comm,0);---把null轉為0
nal(to_char(comm),"no commission");
nal(hiredate,'31-dec-99');
2:select ename "name",job,sal "salary"
decode(job,'aa',sal*1,----邏輯判斷
'bb',sal*2,
'cc',sal*3
);3:select length(name) from emp;
4:select * from lz_user l where exists (select * from lz_gl );
6: nullif(length(name),length(job))
如果兩個相當就返回null,否則返回length(name)值
7:create table emp_null as select eame,sal,comm from emp;
8:coalesce(comm,sal*0.1,100,,,,,,n);
如果 comm不為空,返回comm;
如果comm為空,返回sal*0.1
如果comm為空,sal*0.1為空,返回100,
。。。。
9:select ename 'name' ,job,sal ,
case job when 'aa' then 100
when 'bb'then 200
when 'cc' then 300
else 400 end
"jobb" from emp order by job;
10:修改:select * from emp for update;
11:insert into sales(code,name,dalary,commission) select empno,ename,sal,comm
from emo where job like 'sale%';
12:insert into emp (empno,ename,job) values (&no,"aa",'bb');
注意:&no為變數
13:15:檢視資料庫所有索引select * from user_indexes;
14:oracle 提供五種約束
非空,唯一,主鍵,外來鍵,條件,
15:oracle檢視問題:
1:簡單檢視:
資料是僅從乙個表中提取
不包含函式
不包含分組資料
可以通過該檢視進行dml操作
2:複雜檢視:
資料是從多個表中提取的
包含函式
包含分組函式
不一定能夠通過該檢視進行dml操作
---3:
3.1可以在簡單檢視上執行dml操作
3.2:如果在檢視中包含,分組函式,group by 子句,或distinct ,就不能通過檢視進行刪除,修改,新增操作
3.3:如果檢視中包含了由表示式組成的列或者偽列rownum,不能通過檢視進行,新增,修改
3.4:如果乙個檢視中沒有包含引用表中那些不能為空(not null)的列,也不能通過該檢視進行插入(insert)操作
16:with check option
create view sales30 as select * from emp where deptno=30 with check option connstratint sales30_ck;
當執行:update sales30 set septno=10 where job
="aa"; 報錯,因為:where deptno=30 with check option connstratint sales30_ck;
16.2:create or replace view acct as select * from emp with read only;唯讀
16.3:內嵌檢視
select a,b,c,d, from emp,(select cc,dd from job) m where emp.a=m.cc;
16.4:select * from emp where rownum <=12;
17:檢視使用者的許可權
select * from session_privs;
18:建立角色
create role animal;
給角色賦予許可權
grant dba to animal;
給使用者賦予角色
grant animal to dog,cat,pig;
--dog,cat ,pig都是dba了哦!
--刪除使用者
drop user cat
刪除使用者及使用者的所有資料,表...
drop user cat cascade;
資料庫預定義的兩個角色,connect ,resource 如果對安全要求比較高建議不要用
如果想快捷,可以使用哦!
17:pl slq使用
Oracle查詢語句
select sysdate from dual dual 臨時的表,使語法結構完整,沒有什麼意義。oracle中的select語句必須要有from 而sql2008中可以沒有。起別名 起別名 as起別名,不用加雙引號.加空格起別名,要加雙引號 select name as 姓名 from stud...
Oracle查詢語句
列出所有部門的詳細資訊和部門人數。這裡需要部門的詳細資訊和部門人數,顯然需要我們進行表的連線 那麼這裡我們先貼出兩張表長啥樣 像這樣的關於兩張表的連線,那麼我們一般先一張一張來 比如這裡我們可以先解決部門的詳細資訊 然後解決部門人數 select deptno,count 1 人數 from emp...
oracle查詢語句
查詢第10條到第13條記錄,要求按empno編號公升序排序,先在公升序情況下查詢出前13條記錄,然後將結果倒序,取出倒序後的前4條 即第13條記錄到第10條記錄 然後再按公升序排序,就是要查詢的公升序排列的第10條到第13條記錄。select from select from select from...