Java物件導向系列[v1.0.0][索引與檢視]
索引
- 索引是存放在schema中的一個資料庫物件,雖然索引總是從屬於資料表,但它也和是資料表一樣屬於資料庫物件,建立索引唯一的作用就是加速對錶的查詢,索引通過使用快速路徑訪問方法來快速定位資料,從而減少磁碟I/O
- 索引作為資料庫物件,在資料字典中獨立存放,但不能獨立存在,必須屬於某個表
- MySQL使用information_schema資料庫裡的STATISTICS表來儲存該資料庫例項中的所有索引資訊
- 索引的好處是提升查詢速度,但當資料表中的記錄增加刪除修改時,資料庫需要維護索引,因此也會有一定的系統開銷,並且儲存索引資訊也需要一定的磁碟空間
建立索引
建立索引有兩種方式:
- 自動:當在表上定義主鍵約束和唯一約束和外來鍵約束的時候,系統會為該資料列自動建立對應的索引
- 手動:通過
create index...
語句來建立索引
create index index_name on table (column[, column]...);
create index davieyang_test_index on davieyang_test(davieyang_name);
create index davieyang_test_index_multi on davieyang_test(first_name, last_name);
刪除索引
刪除索引也有兩種方式:
- 自動:資料表被刪除時,該表上的索引自動被刪除
- 手動:通過
drop index...
語句來刪除指定資料表上的指定索引
drop index 索引名 on 表名
drop index davieyang_test_index on davieyang_test
有些資料庫刪除索引時無須指定表名,因為他們要求建立索引時,每個索引都有唯一的名字,所以無須找你定表名,例如Oracle,但MySQL只要求同一個表內的索引不能重名,所以必須指定表名
檢視
檢視看上去非常像一個資料表,但他不是資料表,因為他不能儲存資料,檢視只是一個或多個資料表中資料的邏輯顯示,使用檢視有幾點好處:
- 可以限制對資料的訪問
- 可以使複雜的查詢變簡單
- 提供了資料的獨立性
- 提供了對相同資料的不同顯示
建立檢視
因為檢視只是資料表中資料的邏輯顯示,也就是一個查詢結果,所以建立檢視就是建立檢視名和查詢語句的關聯
# 如果檢視存在則使用新檢視替換原有檢視,如果不存在則建立檢視
create or replace view 檢視名
as
subquery
檢視的本質就是一條被命名的SQL
create or replace view view_davieyang_test
as
select davieyang_id, davieyang_name from davieyang_test;
MySQL允許在建立檢視時使用with check option子句,使用該子句建立的檢視不允許修改
create or replace view view_davieyang_test
as
select davieyang_id, davieyang_name from davieyang_test with check option;
大部分資料庫都採用with check option
來強制不允許修改檢視的資料,但Oracle採用with read only
來強制不允許修改檢視的資料
刪除檢視
drop view 檢視名
drop view view_davieyang_test;
相關文章
- Java物件導向系列[v1.0.0][SQL語法之資料庫約束]Java物件SQL資料庫
- Java物件導向系列[v1.0.0][SQL語法之資料庫函式]Java物件SQL資料庫函式
- Java物件導向——類與物件Java物件
- 程式導向與物件導向物件
- 物件導向與程式導向物件
- Java — 物件導向Java物件
- Java物件導向Java物件
- [Java物件導向]Java物件
- Java語言之物件導向—類與物件(上)Java物件
- JAVA物件導向基礎--物件導向介紹Java物件
- 好程式設計師Java教程分享Java物件導向與程式導向程式設計師Java物件
- Java:Java的物件導向Java物件
- java的物件導向Java物件
- Java物件導向(一)Java物件
- java物件導向(中)Java物件
- java物件導向(上)Java物件
- Java 物件導向概述Java物件
- java物件導向(2)Java物件
- java物件導向(1)Java物件
- java物件導向(3)Java物件
- java物件導向(4)Java物件
- java物件導向(5)Java物件
- Java物件導向概述Java物件
- JAVA物件導向思想Java物件
- 談談“物件導向”與“程式導向”物件
- JAVA(一)JAVA基礎/物件導向基礎/高階物件導向Java物件
- TypeScript與物件導向TypeScript物件
- php中的程式導向與物件導向PHP物件
- 物件導向-物件導向思想物件
- JAVA物件導向之多型Java物件多型
- JAVA物件導向基礎Java物件
- 二、Java之物件導向Java物件
- Java物件導向--多型Java物件多型
- java物件導向繼承Java物件繼承
- java物件導向(異常)Java物件
- java物件導向(包package)Java物件Package
- 【Java 基礎】——物件導向Java物件
- JAVA物件導向--抽象類Java物件抽象