oracle內置對象
序列、視圖、索引
序列
create sequence aaa start with 1;
使用
視圖
創建好之後
然後直接用
就OK了
有了視圖可以代替子查詢,使得sql簡潔
視圖存放的不是真正的數據,而是查詢語句
通過視圖可以修改基表
前提是視圖的數據結構要和基表的數據結構是一樣的纔可以!
只讀視圖
但是視圖是用來看的,不是用來改的
那麼如何在創建視圖時以後不讓做修改操作呢?答案如下:
檢查視圖
還有一種情況,如果要修改視圖,那麼視圖列本身是沒有約束的,那麼加上檢查視圖,就可以到基表中去做約束檢查
以上都爲簡單視圖
多表聯查的結果爲複雜視圖,僅僅只能用來簡化查詢
注意:能用表的地方都能用視圖!
終於到了索引!
索引的作用
面試題:海量數據如何查詢速度快:索引+優化
OK,我們來學習索引
當我們爲列創建約束的時候,有一些約束自動就爲我們創建了索引
索引分好多種,上面自動添加的叫做唯一值索引
接下來我們自己建索引,叫做普通索引
單字段索引:
多字段索引
其實,索引是一張表,就像書的目錄一樣,查詢東西能夠快速定位,不用一頁一頁的翻來找。
另外,索引是站數據庫硬盤和內存空間的,也就是所謂的耗費資源換取速度
最重要的是,爲字段加索引之後,是可以換取速度的加快,但是同時會降低增刪改的速度,因爲做增刪改操作的時候,會更新索引表,相當於耗費了兩倍的速度!
索引表是數據庫自動爲我們維護,不用我們自己維護,這就是索引另一個最大的好處。
特殊索引:位圖索引
有一種情況,創建的某些列的數據僅僅只有幾類情況,比如說
性別:只有男女
某學校學生表的班級:只有一年級二年級到六年級
那麼想要快速定位這些數據,比如,我想要查某學校10萬學生裏二年級的人的信息
那麼我們需要一種特殊的索引,叫做位圖索引
當我查詢
這句話的時候,會很快
加索引規則,只有常用的where限定列,才加索引
比如我要經常查時間段,也就是where中界定時間段,那麼我們就給時間列加索引