日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【数据库】MySQL创建视图(CREATE VIEW)

發(fā)布時間:2024/2/28 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据库】MySQL创建视图(CREATE VIEW) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)庫視圖是什么?

創(chuàng)建視圖是指在已經(jīng)存在的 MySQL 數(shù)據(jù)庫表上建立視圖。視圖可以建立在一張表中,也可以建立在多張表中。


視圖的好處?

視圖使用的時候跟表一樣。主要作用是不讓所有的人都能看到整張表。

比如有個員工信息表,里面有聯(lián)系方式,薪資等,可能只希望HR能看到薪資,其他人只能看到聯(lián)系方式,那么就可以使用視圖來實現(xiàn)。

高效:復(fù)雜的連接查詢,每次執(zhí)行時效率比較低,可以考慮新建視圖,每次從視圖中獲取,將會提高效率。

定制數(shù)據(jù):將常用的字段放置在視圖中。


視圖:
是從一個或幾個基本表(或視圖)導(dǎo)出的虛擬表。

作用:
1、視圖能夠簡化用戶的操作
2、視圖使用戶能以多鐘角度看待同一數(shù)據(jù)
3、視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性
4、視圖能夠?qū)C密數(shù)據(jù)提供安全保護
5、適當(dāng)?shù)睦靡晥D可以更清晰的表達查詢


示例

【實例 1 創(chuàng)建基于單表的視圖】在 tb_students_info 表上創(chuàng)建一個名為 view_students_info 的視圖,輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。

mysql> CREATE VIEW view_students_info-> AS SELECT * FROM tb_students_info; Query OK, 0 rows affected (0.00 sec)mysql> SELECT * FROM view_students_info; +----+--------+---------+------+------+--------+------------+ | id | name | dept_id | age | sex | height | login_date | +----+--------+---------+------+------+--------+------------+ | 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +----+--------+---------+------+------+--------+------------+ 10 rows in set (0.04 sec)

默認情況下,創(chuàng)建的視圖和基本表的字段是一樣的,也可以通過指定視圖字段的名稱來創(chuàng)建視圖。

【示例2 創(chuàng)建基于多表的視圖】

mysql> CREATE VIEW v_students_info-> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date)-> AS SELECT id,name,dept_id,age,sex,height,login_date-> FROM tb_students_info; Query OK, 0 rows affected (0.06 sec)mysql> SELECT * FROM v_students_info; +------+--------+------+-------+-------+----------+------------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+------+-------+-------+----------+------------+ | 1 | Dany | 1 | 24 | F | 160 | 2015-09-10 | | 2 | Green | 3 | 23 | F | 158 | 2016-10-22 | | 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 | | 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 | | 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 | | 6 | John | 2 | 21 | M | 172 | 2015-11-11 | | 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 | | 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 | | 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 | | 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 | +------+--------+------+-------+-------+----------+------------+ 10 rows in set (0.01 sec)

通過這個視圖可以很好地保護基本表中的數(shù)據(jù)。
視圖中包含 s_id、s_name 和 dept_name,s_id 字段對應(yīng) tb_students_info 表中的 id 字段,s_name 字段對應(yīng) tb_students_info 表中的 name 字段,dept_name 字段對應(yīng) tb_departments 表中的 dept_name 字段。


查看視圖結(jié)構(gòu)

DESCRIBE 可以用來查看視圖,語法如下:
DESCRIBE 視圖名;

mysql> DESCRIBE v_students_info; +----------+---------------+------+-----+------------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+------------+-------+ | s_id | int(11) | NO | | 0 | | | s_name | varchar(45) | YES | | NULL | | | d_id | int(11) | YES | | NULL | | | s_age | int(11) | YES | | NULL | | | s_sex | enum('M','F') | YES | | NULL | | | s_height | int(11) | YES | | NULL | | | s_date | date | YES | | 2016-10-22 | | +----------+---------------+------+-----+------------+-------+ 7 rows in set (0.04 sec)

總結(jié)

以上是生活随笔為你收集整理的【数据库】MySQL创建视图(CREATE VIEW)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。