1. 程式人生 > 資料庫 >mysql檢視功能與用法例項分析

mysql檢視功能與用法例項分析

本文例項講述了mysql檢視功能與用法。分享給大家供大家參考,具體如下:

通俗的講,檢視就是一條SELECT語句執行後返回的結果集。

//單表檢視
  CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]
    VIEW 檢視名 [(屬性清單)]
    AS SELECT 語句
    [WITH [CASCADED|LOCAL] CHECK OPTION];
  //將查詢到的結果返回為一個虛擬表,會根據資料庫變化而變化
  CREATE VIEW work_view(ID,Name,Addr) AS SELECT id,name,address FROM work;
  //多表上建立檢視
  //ALGORITHM=MERGE ALGORITHM有三個引數分別是:merge、TEMPTABLE、UNDEFINED(merge合併表,temptable無法更新資訊,undefined)
   CREATE ALGORITHM=MERGE VIEW work_view2(ID,NAME,SALARY) AS SELECT work.id,salary FROM work,salary WHERE work.id=salary.id WITH LOCAL CHECK OPTION;

方便操作,特別是查詢操作,減少複雜的SQL語句,增強可讀性;

檢視與表是一對一關係情況:如果沒有其它約束(如檢視中沒有的欄位,在基本表中是必填欄位情況),是可以進行增刪改資料操作;

檢視與表是一對多關係情況:如果只修改一張表的資料,且沒有其它約束(如檢視中沒有的欄位,在基本表中是必填欄位情況),是可以進行改資料操作,如以下語句,操作成功;

檢視和臨時表的區別

  • 檢視只是一條預編譯的SQL語句,並不儲存實際資料
  • 臨時表是儲存在tempdb中的實際的表
  • 物理空間的分配不一樣,試圖不分配空間, 臨時表會分配空間
  • 檢視是一個快照,是一個虛表
  • 臨時表是客觀存在的表型別物件Create TEMPORARY table
  • 它們的結構一個是表、一個快照。可以把檢視像象成聯合表的快捷方式

建立臨時表

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,value INTEGER NOT NULL)

直接將查詢結果匯入臨時表

CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name

臨時表只在當前連線可見,當這個連線關閉的時候,會自動drop。在同一個query語句中,你只能查詢一次臨時表。show tables 語句不會列舉臨時表,但是會列出記憶體表。你不能用rename來重新命名一個臨時表。但是,你可以alter table代替:

記憶體表:表結構建在磁盤裡,資料在記憶體裡 ,當停止服務後,表中的資料丟失,而表的結構不會丟失。記憶體表也可以被看作是臨時表的一種。

記憶體表的建立:

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,value INTEGER NOT NULL
) TYPE = HEAP

注意: TYPE = HEAP必須要有。

記憶體表必須使用memory儲存引擎

更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧彙總》、《MySQL儲存過程技巧大全》、《MySQL資料庫鎖相關技巧彙總》及《MySQL常用函式大彙總》

希望本文所述對大家MySQL資料庫計有所幫助。