好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫(kù) > MySQL視圖簡(jiǎn)介及基本操作教程

MySQL視圖簡(jiǎn)介及基本操作教程

熱門標(biāo)簽:自己做地圖標(biāo)注需要些什么 徐涇鎮(zhèn)騰訊地圖標(biāo)注 昌德訊外呼系統(tǒng) 電話機(jī)器人的價(jià)格多少錢一個(gè)月 福建外呼電銷機(jī)器人加盟 百度地圖標(biāo)注要什么軟件 天津公司外呼系統(tǒng)軟件 400電話申請(qǐng)廠家現(xiàn)貨 中國(guó)地圖標(biāo)注公司

前言

視圖是數(shù)據(jù)庫(kù)系統(tǒng)中一種非常有用的數(shù)據(jù)庫(kù)對(duì)象。MySQL 5.0 之后的版本添加了對(duì)視圖的支持。

認(rèn)識(shí)視圖

視圖是一個(gè)虛擬表,其內(nèi)容由查詢定義。同真實(shí)表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù),但視圖并不是數(shù)據(jù)庫(kù)真實(shí)存儲(chǔ)的數(shù)據(jù)表。

視圖是從一個(gè)、多個(gè)表或者視圖中導(dǎo)出的表,包含一系列帶有名稱的數(shù)據(jù)列和若干條數(shù)據(jù)行。

視圖并不同于數(shù)據(jù)表,它們的區(qū)別在于以下幾點(diǎn):

  • 視圖不是數(shù)據(jù)庫(kù)中真實(shí)的表,而是一張?zhí)摂M表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對(duì)數(shù)據(jù)中真實(shí)表的查詢基礎(chǔ)上的。
  • 存儲(chǔ)在數(shù)據(jù)庫(kù)中的查詢操作 SQL 語句定義了視圖的內(nèi)容,列數(shù)據(jù)和行數(shù)據(jù)來自于視圖查詢所引用的實(shí)際表,引用視圖時(shí)動(dòng)態(tài)生成這些數(shù)據(jù)。
  • 視圖沒有實(shí)際的物理記錄,不是以數(shù)據(jù)集的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中的,它所對(duì)應(yīng)的數(shù)據(jù)實(shí)際上是存儲(chǔ)在視圖所引用的真實(shí)表中的。
  • 視圖是數(shù)據(jù)的窗口,而表是內(nèi)容。表是實(shí)際數(shù)據(jù)的存放單位,而視圖只是以不同的顯示方式展示數(shù)據(jù),其數(shù)據(jù)來源還是實(shí)際表。
  • 視圖是查看數(shù)據(jù)表的一種方法,可以查詢數(shù)據(jù)表中某些字段構(gòu)成的數(shù)據(jù),只是一些 SQL 語句的集合。從安全的角度來看,視圖的數(shù)據(jù)安全性更高,使用視圖的用戶不接觸數(shù)據(jù)表,不知道表結(jié)構(gòu)。
  • 視圖的建立和刪除只影響視圖本身,不影響對(duì)應(yīng)的基本表。

視圖與表在本質(zhì)上雖然不相同,但視圖經(jīng)過定義以后,結(jié)構(gòu)形式和表一樣,可以進(jìn)行查詢、修改、更新和刪除等操作。

1、準(zhǔn)備工作

在MySQL數(shù)據(jù)庫(kù)中創(chuàng)建兩張表balance(余額表)和customer(客戶表)并插入數(shù)據(jù)。

create table customer(
 id int(10) primary key,
 name char(20) not null,
 role char(20) not null,
 phone char(20) not null,
 sex char(10) not null,
 address char(50) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

#外鍵為customerId
create table balance(
 id int(10) primary key,
 customerId int(10) not null,
 balance DECIMAL(10,2),
 foreign key(customerId) references customer(id) 

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

向客戶表和余額表中各插入3條數(shù)據(jù)。

insert into customer values(0001,"xiaoming",'vip1','12566666','male','江寧區(qū)888號(hào)');
insert into customer values(0002,"xiaohong",'vip10','15209336760','male','建鄴區(qū)888號(hào)');
insert into customer values(0003,"xiaocui",'vip11','15309336760','female','新街口888號(hào)');

insert into balance values(1,0001,900.55);
insert into balance values(2,0002,900.55);
insert into balance values(3,0003,10000);

2、視圖簡(jiǎn)介

視圖可以簡(jiǎn)單理解成虛擬表,它和數(shù)據(jù)庫(kù)中真實(shí)存在數(shù)據(jù)表不同,視圖中的數(shù)據(jù)是基于真實(shí)表查詢得到的。視圖和真實(shí)表一樣具備相似的結(jié)構(gòu)。真實(shí)表的更新,查詢,刪除等操作,視圖也支持。那么為什么需要視圖呢?

a、提升真實(shí)表的安全性:視圖是虛擬的,可以只授予用戶視圖的權(quán)限而不授予真實(shí)表的權(quán)限,起到保護(hù)真實(shí)表的作用。

b、定制化展示數(shù)據(jù):基于同樣的實(shí)際表,可以通過不同的視圖來向不同需求的用戶定制化展示數(shù)據(jù)。

c、簡(jiǎn)化數(shù)據(jù)操作:適用于查詢語句比較復(fù)雜使用頻率較高的場(chǎng)景,可以通過視圖來實(shí)現(xiàn)。

......

需要說明一點(diǎn)的是:視圖相關(guān)的操作需要用戶具備相應(yīng)的權(quán)限。以下操作使用root用戶,默認(rèn)用戶具備操作權(quán)限。

創(chuàng)建視圖語法

create view 視圖名稱>  as select語句>;

修改視圖語法

修改視圖名稱可以先刪除,再用相同的語句創(chuàng)建。

#更新視圖結(jié)構(gòu)
alter view 視圖名稱> as select語句>;
#更新視圖數(shù)據(jù)相當(dāng)于更新實(shí)際表,不適用基于多表創(chuàng)建的視圖
update ....

注意:部分視圖的數(shù)據(jù)是無法更新,也就是無法使用update,insert等語句更新,比如:

a、select語句包含多個(gè)表

b、視圖中包含having子句

c、試圖中包含distinct關(guān)鍵字

......

刪除視圖語法

drop view 視圖名稱>

3、視圖的操作

基于單表創(chuàng)建視圖

mysql> create view bal_view 
 -> as
 -> select * from balance;
Query OK, 0 rows affected (0.22 sec)

創(chuàng)建完成后,查看bal_view的結(jié)構(gòu)和記錄。可以發(fā)現(xiàn)通過視圖查詢到數(shù)據(jù)和通過真實(shí)表查詢得到的結(jié)果完全一樣。

#查詢bal_view的結(jié)構(gòu)
mysql> desc bal_view;
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| id | int(10) | NO | | NULL | |
| customerId | int(10) | NO | | NULL | |
| balance | decimal(10,2) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
3 rows in set (0.07 sec)
#查詢bal_view中的記錄
mysql> select * from bal_view;
+----+------------+----------+
| id | customerId | balance |
+----+------------+----------+
| 1 | 1 | 900.55 |
| 2 | 2 | 900.55 |
| 3 | 3 | 10000.00 |
+----+------------+----------+
3 rows in set (0.01 sec)

通過創(chuàng)建視圖的語句不難得出結(jié)論:當(dāng)真實(shí)表中的數(shù)據(jù)發(fā)生改變時(shí),視圖中的數(shù)據(jù)也會(huì)隨之改變。那么當(dāng)視圖中的數(shù)據(jù)發(fā)生改變時(shí),真實(shí)表中的數(shù)據(jù)會(huì)變化嗎?來實(shí)驗(yàn)一下,修改id=1的客戶balance為2000。

mysql> update bal_view set balance=2000 where id=1;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0

來看一下真實(shí)表balance中的數(shù)據(jù)。

mysql> select * from bal_view where id=1;
+----+------------+---------+
| id | customerId | balance |
+----+------------+---------+
| 1 | 1 | 2000.00 |
+----+------------+---------+
1 row in set (0.03 sec)

結(jié)論:視圖表中的數(shù)據(jù)發(fā)生變化時(shí),真實(shí)表中的數(shù)據(jù)也會(huì)隨之改變。

基于多表創(chuàng)建視圖

創(chuàng)建視圖cus_bal,共兩個(gè)字段客戶名稱和余額。

mysql> create view cus_bal
 -> (cname,bal)
 -> as
 -> select customer.name,balance.balance from customer ,balance
 -> where customer.id=balance.customerId;
Query OK, 0 rows affected (0.05 sec)
#查看cus_bal中的數(shù)據(jù)
mysql> select * from cus_bal;
+----------+----------+
| cname | bal |
+----------+----------+
| xiaoming | 2000.00 |
| xiaohong | 900.55 |
| xiaocui | 10000.00 |
+----------+----------+
3 rows in set (0.28 sec)

修改視圖

將cus_bal視圖中的cname改成cusname。

mysql> alter view cus_bal
 -> (cusname,bal)
 -> as
 -> select customer.name,balance.balance from customer ,balance
 -> where customer.id=balance.customerId;
Query OK, 0 rows affected (0.06 sec)
#查看修改后視圖結(jié)構(gòu)。
mysql> desc cus_bal;
+---------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| cusname | char(20) | NO | | NULL | |
| bal | decimal(10,2) | YES | | NULL | |
+---------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

修改基于多表創(chuàng)建的視圖

mysql> insert into cus_bal(cusname,bal) values ("ee",11);
ERROR 1393 (HY000): Can not modify more than one base table through a join view 'rms.cus_bal'

刪除視圖

刪除視圖cus_bal

drop view cus_bal;
mysql> drop view cus_bal;
Query OK, 0 rows affected (0.00 sec)

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • MySQL在多表上創(chuàng)建視圖方法
  • MySQL筆記之視圖的使用詳解
  • MySQL中視圖的使用及多表INNER JOIN的技巧分享
  • MySQL中索引與視圖的用法與區(qū)別詳解
  • mysql視圖原理與用法實(shí)例小結(jié)
  • 基于mysql事務(wù)、視圖、存儲(chǔ)過程、觸發(fā)器的應(yīng)用分析
  • Mysql事項(xiàng),視圖,函數(shù),觸發(fā)器命令(詳解)
  • MySQL視圖原理與基本操作示例
  • mysql視圖功能與用法實(shí)例分析
  • Mysql數(shù)據(jù)庫(kù)高級(jí)用法之視圖、事務(wù)、索引、自連接、用戶管理實(shí)例分析
  • mysql視圖之創(chuàng)建可更新視圖的方法詳解

標(biāo)簽:荊門 北京 昌都 梅河口 鄂爾多斯 黔西 駐馬店 陜西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL視圖簡(jiǎn)介及基本操作教程》,本文關(guān)鍵詞  MySQL,視圖,簡(jiǎn)介,及,基本操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL視圖簡(jiǎn)介及基本操作教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL視圖簡(jiǎn)介及基本操作教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 无码熟妇Av又粗又大社区视频 | 国精产品一区一区三区使用方法| 小受共妻np一受多攻| 亚洲天堂视频在线| 国产成人欧美日韩在线电影| 99亚洲精品自拍AV成人软件| 丝袜美女AV| 小茹的性荡生活第二部| 玖玖在线资源站| 宝贝好紧我太爽了再快点| 欧美精品一区二区三区免费| 五月丁香六月激情综合啪| 国产精品欧美综合亚洲| sleepless动画三部曲| 色人影院| 99青草| 国产精品一区二区视频| 欧美AV无码精品多人运动| 影音先锋色资源网| 女人自愿扒开腿让男人躁| 欧美激情一区二区三区中文字幕| 精品香蕉久久AⅤ一灭二区三区| BBBBBBBBB免费毛片视频| 男人干女人逼| 日本黄网站| 精品99久久| 99久久精品费精品蜜臀Av| 一本一道久久综合狠狠躁牛牛影视 | 无码亚洲AV片毛片成蜜柚| 精品欧美嫩草影院永久| 美女跪下吃J8视频在线看麻豆| 亚洲肥熟| 男人www在线观看免费完整版| 公翁含着前面挺进她的花苞 | 国产高清天干天天视频| 欧美性猛交XXXX乱大交极品| 嗯嗯啊啊不要啊| 国产精品丝袜在线| 国产精品第100页| 大学生一级特黄的免费大片视频| 嘿嘿射在线|