資料庫中的SCHEMA到底是什麼?MySQL

2021-10-08 18:11:46 字數 1776 閱讀 8762

平時在看一些資料庫相關的書籍或是文件的時候總會出現這樣乙個詞schema(模式),那這個schema到底是指什麼?下面就來看看

摘自: . 文件最後一部分mysql glossary(mysql術語)

從概念上講,schema指的是一組相關聯的資料庫物件,這些物件包含:表、字段、字段型別、索引、外來鍵、等等。 這些物件通過sql語法連線,因為表是由字段組成的,外來鍵指向表和字段等等。理想情況下,這些物件在邏輯上也是相連的,作為統一應用程式或者是靈活框架的一部分一起運作。例如,mysql自帶的「information_schema」和「performace_schema」資料庫在資料庫命名時使用了「schema」這個詞,目的就在於強調該資料庫包含的表和字段的親密關係。

mysql中,從物理層角度講,schema就是資料庫的代名詞。你可以用schema關鍵字代替database,如:使用create schema代替create database.

另外,不同資料對schema的定義是不一樣的。例如,在oracle中,schema僅表示資料庫的一部分:單個使用者擁有的表和其他物件。

使用關鍵字schema代替關鍵字database,如在查詢資料庫清單或者建立資料庫時,如下圖:

如上圖所示,使用show databases; 和show schemas 得到的結果是一致的。

如上圖可知,create database; 和create schema;效果是一致的。

安裝mysql後都會自帶有兩個資料庫performance_schema和information_schema,簡單介紹如下:

顧名思義:效能模式(資料庫),即是該資料庫包含的表和字段是用於儲存mysql中關於效能特徵的資訊的。這裡使用schema這個詞就如定義中一樣是為了強調該資料庫是關於效能方面。

該模式(資料庫)儲存的是mysql的資料字典。比如,要查詢mysql的元資料資訊可以查詢表information_schema.tables和information_schema.columns來獲得mysql中的表資訊和字段資訊。例如:

現在要檢視mysql中儲存了多少張表,就可以在information_schema資料庫表tables中進行查詢

切換到information_schema,並檢視tables表中的資料量

也就是當前整個mysql中儲存了493張表

切換到非mysql自帶資料庫,刪除一張表

最好不要刪除mysql自帶的表,所以這裡切換到使用者自定義資料庫,並刪除1張表

驗證結果,查詢informaton_schema中表tables中的資料量

資料量492 = 493 -1;

減少了1條 ,符合預期。

schema(模式)就是database(資料庫)的代名詞。

schema強調資料庫中表(或其他物件)表示(儲存)內容的方向。

面試中的html doctype到底是什

宣告是指示 web 瀏覽器使用哪個 html 版本進行頁面編寫的指令。要始終向 html 文件新增 宣告,這樣瀏覽器才能獲知文件型別。在 html 4.01 中,宣告引用 dtd,因為 html 4.01 基於 sgml。dtd 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。html5 不基於...

資料庫中schema

在學習sql的過程中,會遇到乙個讓你迷糊的schema的概念。實際上,schema就是資料庫物件的集合,這個集合包含了各種物件如 表 檢視 儲存過程 索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,預設情況下乙個使用者對應乙個集合,使用者的schema名等於使用者名稱,並作為該使用者預設...

lq到底是什麼意思 柴犬的單雙血統到底是什麼意思?

1 單血統柴犬 其實柴犬根本就沒有單血統一說,之所以會出現這個名詞,是一些不良商家,想要借助血統來從中謀取更多的經濟利益,篤定買家對柴犬不了解,而會相信有單血統柴犬,比雙血統柴犬便宜。說白了單血統柴犬就是披了血統衣服的串串柴,雖說健康沒什麼大問題,但長大之後就會很難看。2 雙血統柴犬 雙血統柴犬就是...