1. 程式人生 > >Oracle筆記

Oracle筆記

sca uri 二進制 字符集 事務 group by car job nvarchar

1.當前用戶

show user;

2.sql語句

DML語句(數據操作語言)Insert、Update、 Delete、Merge

DDL語句(數據定義語言)Create、Alter、 Drop、Truncate

DCL語句(數據控制語言)Grant、Revoke

事務控制語句Commit 、Rollback、Savepoint

3.count

如果數據庫表的沒有數據,count(*)返回的不是null,而是0

4.case 語句

demo

Select avg(sal),avg(nvl(comm,0)),
(case 
when avg(nvl(comm,0))>300 then 獎金不錯 
when avg(nvl(comm,0))<100 then 獎金較差 
else 獎金一般 
end) 
as 獎金狀況
from emp 
group by job 
order by job desc,avg(sal) desc;

結果

  AVG(SAL) AVG(NVL(COMM,0)) 獎金狀況
---------- ---------------- ----
1400 550 獎金不錯 5000 0 獎金較差 2758.33333 0 獎金較差 1037.5 0 獎金較差 3000 0 獎金較差

5.mysql沒有這幾個功能

INTERSECT 交集

MINUS 返回差異的記錄

6.topN,這個跟mysql有點不一樣

select * from (select * from emp order by sal desc)
where rownum <= 5 order by sal desc;

7.分頁,第一種比第二種要好一些

select * from (select rownum no,e.* from (select * from emp order by sal desc) e where rownum<=5 ) where no>=3;
select * from (select rownum no,e.* from (select * from emp order by sal desc) e) where no>=3 and no<=5;

列出員工表中每個部門的員工數(員工數必須大於3),和部門名稱

select d.* ,ed.cou from dept d,(select deptno,count(*) cou from emp group by deptno having count(*)>3) ed where d.deptno=ed.deptno;

8.Oracle主要數據類型

Char,nchar,varchar2,nvarchar2,number(),date,blob(binary二進制流的大對象),clob(文件大對象)

1、 由於char是以固定長度的,所以它的速度會比varchar2快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉

2Varchar2一般適用於英文和數字,Nvarchar2適用中文和其他字符,其中N表示Unicode常量,可以解決多語言字符集之間的轉換問題

3、 Number(4,2) 指的是整數占2位,小數占2位(99.994可以。99.995不行,因為是四舍五入)

4、 Number默認為38

9.清空表中數據

Truncate table student;

10.條件約束

age NUMBER CHECK(age BETWEEN 0 AND 150)

外鍵

pid NUMBER REFERENCES person(pid) ON DELETE CASCADE;

Oracle筆記