數據庫系統課上老師介紹了2種數據庫:Oracle Database和SQL Server,也說了他們之間模式( Schema ,也稱為架構)的區別,這裡我也補充下與我常用的MySQL的模式區別,備忘。
模式相當於數據庫系統中的名稱空間,一個模式中可以有多種對象,例如基本表、視圖、索引。訪問某個模式中的對象,需要指定 模式名.對象名 。
Oracle Database
Oracle Database客戶端工具登錄的時候,需要提供用戶名、密碼,以及數據庫名,登陸後,查詢表中的數據,需要提供 用戶名.表名 ,即可查詢某個用戶的數據表,如果是自己的表,可以省略用戶名直接提供表名。這裡每個用戶都可以創建自己的表,模式名就是自己的用戶名,Oracle Database創建一個用戶的時候就為其創建了一個同名的模式,所以不能創建模式,也不能刪除模式。如果要這麼做,就創建用戶、刪除用戶來代替。
SQL Server
SQL Server客戶端工具登錄的時候,無需指定數據庫,只需提供用戶名、密碼,登錄進去的是整個數據庫服務器,能看到所有數據庫、表。它內置了好幾種模式,其中一種默認的模式即 dbo ,所有用戶創建表的時候若不指定模式,則歸屬於 dbo 模式。
MySQL
MySQL客戶端工具登錄的時候也無需指定數據庫,用用戶名+密碼登錄後也能看到數據庫系統中的所有數據庫、表。它的模式和前兩者不一樣,數據庫名即模式名, CREATE DATABASE 語句和 CREATE SCHEMA 等價,訪問表的時候,若不指定數據庫( use 語句指定),則使用 數據庫名.表名 來訪問。