下面一起來了解下MySQL數(shù)據(jù)庫對視圖的操作方法,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL數(shù)據(jù)庫對視圖的操作方法這篇短內(nèi)容是你想要的。
成都創(chuàng)新互聯(lián)公司專業(yè)提供服務(wù)器主機(jī)托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買服務(wù)器主機(jī)托管服務(wù),并享受7*24小時金牌售后服務(wù)。使用視圖的原則:
1、視圖名字唯一性
2、視圖的創(chuàng)建個數(shù)不受限制,用戶可以創(chuàng)建多個視圖
3、用戶創(chuàng)建視圖,必須從數(shù)據(jù)庫管理員得到權(quán)限。
4、視圖可以嵌套,
5、一些數(shù)據(jù)庫管理系統(tǒng)禁止用戶在查詢語句中使用order by子句。
一、創(chuàng)建實(shí)用表數(shù)據(jù)
創(chuàng)建學(xué)生表
mysql> create table studenginfo(sno int(4) zerofill,sname varchar(18),sex ENUM('男','女') not null default '女',address varchar(48) default '北京',dno int(3)); Query OK, 0 rows affected (0.07 sec)創(chuàng)建學(xué)院表
create table recruitinfo(address varchar(18) not null,score float not null,snum int(3) not null); Query OK, 0 rows affected (0.08 sec) mysql> show create table department\G; *************************** 1. row *************************** Table: department Create Table: CREATE TABLE `department` ( `dno` int(2) NOT NULL, `dname` varchar(18) NOT NULL, `dnum` int(3) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)為學(xué)生表創(chuàng)建索引
mysql> create index name_index on studentinfo (sname);二、視圖:
視圖作為查詢數(shù)據(jù)的另外一種形式,利用視圖,用戶可以集中、簡化和定制數(shù)據(jù)庫,同時提供了安全保證
視圖是從一個或過個表中導(dǎo)出的表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對標(biāo)的查詢基礎(chǔ)之上的。就本質(zhì)而言,視圖是一張?zhí)摫怼?/p>
視圖創(chuàng)建語法:
create view其中[column1,column2,...]為可選項(xiàng),缺省是子查詢結(jié)果中的字段名,select語句指明了視圖中的字段機(jī)器數(shù)據(jù)。
強(qiáng)調(diào):
1、視圖創(chuàng)建后,只在數(shù)據(jù)字典中存放視圖的定義,而其中的select語句并不執(zhí)行
2、只有當(dāng)用戶對視圖進(jìn)行操作時,才按照視圖的定義將數(shù)據(jù)從基本表中取出。
創(chuàng)建視圖:
1、創(chuàng)建一個與studentinfo相同信息的視圖
mysql> create view studentinfo_view as select * from studentinfo; select * from studentinfo_view;2、為視圖創(chuàng)建視圖
mysql> create view boy_view as select * from studentinfo_view where sex='男';3、為列創(chuàng)建視圖并查看其信息
mysql> create view nameaddress_view as select sname,address from studentinfo;4、創(chuàng)建與表具有不同字段名的視圖
mysql> create view New_view(boy_name,boy_address) as select sname,address from studentinfo where sex='男'; Query OK, 0 rows affected (0.00 sec)5、利用視圖簡化表的復(fù)雜連接
創(chuàng)建一個關(guān)于學(xué)生信息表(studentinfo)、招生信息表(Recruitinfo)和Department的關(guān)聯(lián)。
sname、dname和dnum三個字段。
mysql> create view join_view as select sname,dname,score from studentinfo s,department d,recruitinfo r where s.address=r.address and s.dno=d.dno; Query OK, 0 rows affected (0.00 sec) mysql> select * from join_view; +-----------+--------------------+-------+ | sname | dname | score | +-----------+--------------------+-------+ | 張平 | 汽車系 | 648.5 | | 李山 | 電子工程系 | 560 | | 王彤 | 汽車系 | 654.5 | | 張偉 | 計(jì)算機(jī)工程系 | 638 | | 高守傳 | 機(jī)械工程 | 650 | | 劉紅 | 工程物理系 | 629.5 | | 張勇 | 應(yīng)用數(shù)學(xué)系 | 625 | | 劉曉 | 電子工程系 | 650 | | 吳軍 | 電子工程系 | 631 | | 張大山 | 材料工程系 | 635 | +-----------+--------------------+-------+ 10 rows in set (0.03 sec)6、視圖簡化復(fù)雜查詢的過程
6.1 給予學(xué)生表,創(chuàng)建boys_view視圖,包含所有男同學(xué)信息
mysql> create view boys_view as select * from studentinfo where sex='男';給予recruitinfo表,創(chuàng)建視圖score_view,包含錄取分?jǐn)?shù)高于630的所有學(xué)生的信息
mysql> create view boyscore_view as select * from score_view where sno in (select sno from boys_view); mysql> select * from boyscore_view; +------+-----------+-----+---------+------+ | sno | sname | sex | address | dno | +------+-----------+-----+---------+------+ | 0005 | 高守傳 | 男 | 山東 | 3 | | 0004 | 張偉 | 男 | 浙江 | 1 | | 0009 | 吳軍 | 男 | 山西 | 4 | | 0010 | 張大山 | 男 | 陜西 | 7 | +------+-----------+-----+---------+------+ 4 rows in set (0.00 sec) mysql> create view result_view (sname,dname) as select boyscore_view.sname,department.dname from boyscore_view,department where boyscore_view.dno=department.dno; Query OK, 0 rows affected (0.00 sec)刪除視圖
語法:drop view view_name
drop view studentinfo_view
注意:視圖在物理上是不存在的,只是一個查詢結(jié)果,是一個被存儲的查詢。create view語句只是保存了視圖的定義,所以在使用drop view語句刪除視圖時,刪除的也只是視圖的定義,對實(shí)際表中的數(shù)據(jù)沒有影響。
看完MySQL數(shù)據(jù)庫對視圖的操作方法這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。