MySQL 視圖及其數(shù)據(jù)類型
術(shù)語視圖是指為了方便查看和使用某些數(shù)據(jù),實際上并沒有真正存在于數(shù)據(jù)庫中的虛擬表。視圖從已經(jīng)存在于數(shù)據(jù)庫中的一個或多個表中選擇部分列進行操作并提供了一種額外的、邏輯上的表。
MySQL 的視圖是一個虛擬表,由一個查詢定義。與基本表不同,視圖并不存在具有存儲的行和數(shù)據(jù)塊的數(shù)據(jù)。不過,與基本表一樣,視圖是由列或計算值組成的。
在 MySQL 中,與其他表一樣,視圖具有數(shù)據(jù)類型、而這些數(shù)據(jù)類型通常是從 SELECT 語句中推斷得出的。
CREATE VIEW my_view AS SELECT col1, col2, col3 FROM my_table WHERE col1 = 'value';
在上述代碼中,視圖 my_view 從表 my_table 中選擇三列,并為其中的第一列添加了一個條件。因此,在視圖中,所有選擇的列將繼承其原始數(shù)據(jù)類型。
視圖類型可以是某個標(biāo)準(zhǔn)表類型的子集。視圖可以是任何由查詢語句生成的數(shù)據(jù)集合。因此,視圖的數(shù)據(jù)類型也取決于其基礎(chǔ)查詢的數(shù)據(jù)類型。
視圖創(chuàng)建基于選擇語句。根據(jù)選擇語句中的數(shù)據(jù)類型和函數(shù)調(diào)用,視圖的數(shù)據(jù)類型可以是以下類型之一:
- 字符類型
- 數(shù)字類型
- 日期/時間類型
- 二進制類型
- 空間類型
視圖的數(shù)據(jù)類型應(yīng)該是由SELECT語句及其表達(dá)式生成的結(jié)果數(shù)據(jù)類型,而該數(shù)據(jù)類型可以進一步影響視圖的查詢以及基于此的其他構(gòu)架命令。通常視圖的值是通過關(guān)聯(lián)列的表達(dá)式計算而得到的,此時關(guān)聯(lián)列可以是升序或降序的有序列。
綜上所述,MySQL 視圖是一個虛擬表,它可以根據(jù)選定的列和計算值生成數(shù)據(jù)類型。表達(dá)式會影響視圖查詢以及基于此的其他構(gòu)架命令,但是通常情況下視圖中的數(shù)據(jù)類型是從 SELECT 語句中推斷得出的。