
Oracle
Oracle資料庫的體系結構
資料庫:
Oracle資料庫是資料的實體存儲,這就包括(資料檔案ORA或者DBF、控制檔案、聯機日志、參數檔案)。其實Oracle資料庫的概念和其他資料庫不一樣,這裡的資料庫是一個作業系統隻有一個庫。可以看多是Oracle就隻有一個大資料庫
執行個體:
一個Oracle執行個體(Oracle Instance)有一系列的背景程序(BackGoundProcesses) 和記憶體結構(Memory Structures)組成,一個資料庫可以有N個執行個體。
資料檔案(dbf):
資料檔案是資料庫的實體存儲機關,資料庫的資料是存儲在表空間中的,真正是在某一個或者多個資料檔案中,而一個表空間可以由一個或者多個資料檔案組成,一個資料檔案隻能屬于一個表空間,一旦資料檔案被加入到某個表空間後,就不能删除這個檔案,如果要删除某個資料檔案,隻能删除其所屬于的表空間才行。
表空間:
表空間是Oracle對實體資料庫上相關資料檔案(ORA或者DBF檔案)的邏輯映射,一個資料庫在邏輯上被劃分成一個到若幹個表空間,每個表空間包含了在邏輯上相關聯的一組結構,每個資料庫至少有一個表空間(稱之為System表空間)每個表空間由同一個磁盤上的一個或者多個檔案組成,這些檔案叫資料檔案(datafile)一個資料檔案隻能屬于一個表空間。
表空間
使用者:
使用者是在執行個體下建立的,不同的執行個體中可以建相同名字的使用者。
架構圖
基本查詢
sql書面概念:
DML (資料庫操作語言)
INSERT UPDATE DELETE
DDL (資料庫定義語言)
CREATE DROP
DCL(資料庫控制語言)
GRANT REVOKE
1.查詢文法
select *|列名 from 表名;
2.别名用法
select 列名 别名,... from 表名;
3.去重
select distinct *|列名 from 表名;
4.查詢中的四則運算
eg: 查詢員工的年薪
select ename,sal*12 income from emp;
5.連接配接符 ||
字元串連接配接查詢 等同于mysql中的 concat
Mysql concat
Oracle連接配接符
條件查詢和排序
使用where語句對結果進行過濾
select *|列名 from 表名 where ....(條件:比較運算符)
其他比較運算符
between...and... (在兩值之間,包含邊界)
IN(set) 等于值清單中的一個
LIKE 模糊查詢
IS NULL 空值
邏輯運算符
AND 邏輯并
OR 邏輯或
NOT 邏輯否
Where 語句示例
IS NOT NULL
IS NULL
多個條件同時滿足時使用AND
多個條件或滿足使用OR
not的使用
範圍限制
between and
指定範圍
模糊查詢
like
不等于
OrderBY
預設升序
排序中的空值問題
排序的時候可能出現null時就會産生問題,使用nulls first nulls last 來指定null值得顯示位置
單行函數
接收字元輸入傳回字元串或者數值,dual是僞表
1.字元串的連接配接可以使用建議使用|| 而不是concat
select concat(String,String) from dual;
2.字元串的截取,使用substr,第一個參數是源字元串,第二個參數是開始索引,第三個參數是長度,開始索引使用1和0效果相同
3.擷取字元串的長度
length (String) from dual;
4 字元串替換,第一個參數是源字元串,第二個參數被替換的字元串,第三個是替換字元串
select replace('String','1','o')from dual;
數值函數
ROUND:四舍五入
ROUND(100.333,2)
TRUNC:截斷
TRUNC(100.33,2)
MOD:求餘
MOD(100,30)