Oracle資料庫使用基本語法整理——(1)
阿新 • • 發佈:2019-01-10
資料庫高階(oracle)1、sql基礎 1.1 sql語言:structure query language DDL:(data define language) create \drop\alter\truncate(截斷) ddl預設自帶事務,自動提交 DML:(DATA MANAGEMENT LANGUAGE) INSERT \DELETE\UPDATE\SELECT dml 自帶事務,非主動提交; TCL:(transaction controll language) commit\rollback\savepoint savepoint是的對事務的控制更細; ACID:DCL:(data controll language) grant\revoke 1.2 drop、delete、truncate的區別與聯絡 drop:刪除表 (表結構、記錄) 寫工作日誌 可找回 delete:刪除記錄(記錄)寫工作日誌 可找回 truncate:截斷表(刪除記錄) 不寫工作日誌 不可找回 1.3 資料型別 字元型: 數值: 日期: 大物件 char: int date blob varchar: number(p,s) timestamp clob long:(2G) flob 日期型別的本質:長整數 1.4 常用函式 日期型別:sysdate、date、to_date(a,b) 控制處理:nvl、nvl2 聚合函式():avg、sum、min、max、count 1.5 複雜查詢 多表連線 子查詢 層次查詢(遞迴查詢) 行列倒置: 記錄去重:2、常用物件(序列、檢視、索引); 2.1 序列 作為一個物件存在,多表使用一序列,一個表可以擁有多列的自增長; create sequence 序列名 start with 起始數 不可更新 minvalue 最小值 maxvalue 最大值 increment by 間隔數 cycle Yes|No 是否迴圈 cache 緩衝數 2.2 檢視 view:虛表,存在於記憶體中,不佔儲存空間; a、分類: 簡單檢視(單表檢視) *對檢視的操作等同與對基表的操作,前提不違反基表的約束; 複雜檢視(多表檢視) 多表連線查詢生成的檢視,為複雜檢視 *鍵保留表:在複雜檢視中如果一個表的主鍵在檢視中也當主鍵則, 該主鍵所在的基表為鍵保留表的 所有鍵保留表的欄位在檢視中可修改,非鍵保留表字段不可修改; *對複雜檢視實現crud需要觸發器的介入; 物理檢視 b、優勢: 將資料庫設計與使用分離; 將資料來源隱藏; 更改欄位名稱; 冗餘對資料表的維護; c、基表:物理表、檢視 2.3 索引 index :索引佔用空間 區域性掃描與全域性掃描 a、特點:有效索引可以提高查詢效能,但會降低增刪改的效能; b、單表索引一般不超過5個; c、主鍵、外來鍵、經常查詢的欄位; d、導致索引失效:not 、or、函式、偽列 e、oracle索引(B樹) 標準索引、唯一索引、反向鍵索引、點陣圖索引 1234 4321 1235 5321 1236 6321 1237 7321 性別:男、女、未知 欄位的取值數/記錄數=0-1 f、create index idex on 表(索引欄位); h、索引對使用者完全透明; i、索引存什麼》 記錄標識+索引欄位(主鍵+索引欄位) 3、pl/sql基礎 3.1 語義: procedure language/structure query language 3.2 基本語法;[declare 區域性變數 資料型別 ; 區域性變數 資料型別 :=預設值; 區域性變數 資料型別 default 預設值; 常量 constant 資料型別 default 預設值;]begin 執行語句; [exception]end ; 屬性型別: 表名.欄位%type 表名%rowtype 3.3 邏輯處理; if else 、if elsif for while loop end loop 3.4 異常捕獲; a、預定義異常 :too_many_rows\no_data_found\others b、自定義異常: 定義異常型別 主動丟擲異常 c、oracle錯誤資訊 3.5 不記名塊; a、在plsql中只能出現增刪改操作,不能出現查詢操作;(DML) b、ddl語法只能以動態指令的形式出現; c、tcl語法可以出現; 3.6 purge recyclebin; 清空回收站