1. 程式人生 > >對MYSQL中schema的理解

對MYSQL中schema的理解

MySQL官方文件指出,從概念上講,模式(Schema)是一組相互關聯的資料庫物件,如表,表列,列的資料型別,索引,外來鍵等等。但是從物理層面上來說,模式與資料庫是同義的。你可以在MySQL的SQL語法中用關鍵字SCHEMA替代DATABASE,例如使用CREATE SCHEMA來代替CREATE DATABASE。

在MySQL中建立一個Schema和建立一個Database的效果好像是一樣的。

 

Schema就是資料庫物件的集合,這個集合包含了各種物件如:表、檢視、儲存過程、索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,預設情況下一個使用者對應一個集合,使用者的schema名等於使用者名稱,並作為該使用者預設schema。所以schema集合看上去像使用者名稱。

 

如果把database看作是一個倉庫,倉庫很多房間(schema),一個schema代表一個房間,table可以看作是每個房間中的儲物櫃,user是每個schema的主人,有操作資料庫中每個房間的權利,就是說每個資料庫對映的user有每個schema(房間)的鑰匙。

 

我們訪問一個表時,沒有指明該表屬於哪一個schema中的,系統就會自動給我們在表上加上預設的sheman名。在資料庫中一個物件的完整名稱為schema.object,而不屬user.object。