您好,登錄后才能下訂單哦!
下文給大家帶來mysql視圖知識有關內容,相信大家一定看過類似的文章。我們給大家帶來的有何不同呢?一起來看看正文部分吧,相信看完mysql視圖知識你一定會有所收獲。
視圖是指計算機數據庫中的虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。詳見 視圖 百度百科,其對視圖的分類和優點有詳細的解釋此處不再贅述。
create view view_name as select 列1,列2, ...... from 表名
我們可以把視圖理解為一個預先定義好的子查詢,比如上面的語句中,如果我們把create 換成select那就相當好理解了。
select * from select col_1,col_2 from tbl_1 as temp
而事實上,視圖的工作原理與這種子查詢產生的臨時表是一樣的,只有在用到視圖的時候,才會根據原表去動態生成虛擬表。所以視圖的數據會根據原表的數據變動而變動。
`create table employee (
id int primary key auto_increment,
name varchar(20) not null,
salary decimal(10,2) not null default 1000
);
create view v_emp as select id,name from employee;`
mysql> desc v_emp;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| name | varchar(20) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
可以看到我們創建的視圖v_emp,成功的隱藏了員工的工資字段salary
drop view [if exists] view_name
alter view v_view_name as select * from tbl_1
alter view v_view_name (col_1,col_2...) as select a,b from tbl_1
這樣不但可以對外隱藏表名還可以隱藏字段名。
視圖對查詢操作支持的最好,對增刪改有一定的限制,比如多表聯合組成的視圖,而由單個表創建出的視圖在插入數據時,視圖中未包含的原表中的字段或者有默認值,或者允許為空。這樣才可以保證操作成功。
對于上文關于mysql視圖知識,大家覺得是自己想要的嗎?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。