實(shí)驗(yàn) 6 視圖創(chuàng)建與管理
一、實(shí)驗(yàn)?zāi)康?/h3>
1.理解視圖的概念。
2.掌握創(chuàng)建、更改、刪除視圖的方法。
3.掌握使用視圖來訪問數(shù)據(jù)的方法。
二、實(shí)驗(yàn)內(nèi)容
1.驗(yàn)證性實(shí)驗(yàn):在job數(shù)據(jù)庫中,有聘任人員信息表:Work_lnfo表對其視圖的操作。
2.設(shè)計(jì)性試驗(yàn):在學(xué)生管理系統(tǒng)中,有學(xué)生信息表studentinfo表對其視圖的操作。
三、實(shí)驗(yàn)步驟與實(shí)驗(yàn)結(jié)果
(一)驗(yàn)證性實(shí)驗(yàn)
在job數(shù)據(jù)庫中,有聘任人員信息表:Work_lnfo表,其表結(jié)構(gòu)如下表所示:
字段名 |
字段描述 |
數(shù)據(jù)類型 |
主鍵 |
外鍵 |
非空 |
唯一 |
自增 |
Id |
編號 |
INT(4) |
是 |
否 |
是 |
是 |
否 |
Name |
名稱 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
Sex |
性別 |
VARCHAR(4) |
否 |
否 |
是 |
否 |
否 |
Age |
年齡 |
INT(4) |
否 |
否 |
否 |
否 |
否 |
Address |
家庭地址 |
VARCHAR(50) |
否 |
否 |
否 |
否 |
否 |
Tel |
電話號碼 |
VARCHAR(20) |
否 |
否 |
否 |
否 |
否 |
1.創(chuàng)建work_info表
CREATE TABLE work_info(
id INT(4) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
sex VARCHAR(4) NOT NULL,
age INT(4),
address VARCHAR(50),
tel VARCHAR(20)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
???????
2.向work_info插入數(shù)據(jù)
INSERT INTO work_info
VALUES
(1001,'張明','男',19,'北京市朝陽區(qū)','1234567'),
(1002,'李廣','男',21,'北京市昌平區(qū)','2345678'),
(1003,'王丹','女',18,'湖南省永州市','3456789'),
(1004,'趙一枚','女',24,'浙江寧波市','4567890');
3.創(chuàng)建視圖info_view,顯示年齡大于20歲的聘任人員id,name,sex,address信息。
CREATE VIEW info_view(id,name,sex,address)AS
SELECT id,name,sex,address
FROM
work_info
WHERE
age>20 WITH LOCAL CHECK OPTION;
????
4.查看視圖info_view的基本結(jié)構(gòu)和詳細(xì)結(jié)構(gòu)。
(1)查看基本結(jié)構(gòu):
DESC info_view;
????
(2)查看詳細(xì)結(jié)構(gòu):
SHOW CREATE VIEW info_view;
????
5.查看視圖info_view的所有記錄。
SELECT * FROM info_view;
????
6.修改視圖info_view,滿足年齡小于20歲的聘任人員id,name,sex,address信息。
ALTER VIEW info_view(id,name,sex,address) AS
SELECT id,name,sex,address
FROM work_info
WHERE
age<20 WITH LOCAL CHECK OPTION;
????
7.更新視圖,將id號為1001的聘任員的性別,由“男“改為“女”。
UPDATE info_view SET sex='女' WHERE id=1001;
????
8.刪除info_view視圖。
DROP VIEW info_view;
????????
(二)設(shè)計(jì)性試驗(yàn)
在學(xué)生管理系統(tǒng)中,有學(xué)生信息表studentinfo表,其表結(jié)構(gòu)如下:
字段名 |
字段描述 |
數(shù)據(jù)類型 |
主鍵 |
外鍵 |
非空 |
唯一 |
自增 |
Number |
學(xué)號 |
INT(4) |
是 |
否 |
是 |
是 |
否 |
Name |
姓名 |
VARCHAR(20) |
否 |
否 |
是 |
否 |
否 |
Major |
專業(yè) |
VARCHAR(20) |
否 |
否 |
否 |
否 |
否 |
age |
年齡 |
INT(4) |
否 |
否 |
否 |
否 |
否 |
1.創(chuàng)建studentinfo表
CREATE TABLE studentinfo(
number INT(4) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
major VARCHAR(20),
age INT(4)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
???????
2.使用CREATE VIEW語句來創(chuàng)建視圖college_view,顯示studentinfo表中的number,name,age,major,并將字段名顯示為:
student_num,student_name,student_age,department。
CREATE VIEW college_view
(student_num,student_name,student_age,department)
AS
SELECT number,name,age,major
FROM studentinfo;
???????
3.執(zhí)行SHOW CREATE VIEW語句來查看視圖的詳細(xì)結(jié)構(gòu)
SHOW CREATE VIEW college_view;
????
4.更新視圖。向視圖中插入如下3條記錄:
0901,'張三',20,'外語'
0902,'李四',22,'計(jì)算機(jī)'
0903,'王五',19,'計(jì)算機(jī)‘
INSERT INTO college_view VALUES
(0901,'張三',20,'外語'),
(0902,'李四',22,'計(jì)算機(jī)'),
(0903,'王五',19,'計(jì)算機(jī)');
??????
5.修改視圖,使視圖中只顯示專業(yè)為“計(jì)算機(jī)”的信息。
ALTER VIEW college_view
(student_num,student_name,student_age,department)
AS
SELECT number,name,age,major
FROM studentinfo
WHERE major='計(jì)算機(jī)';
???????
6.刪除視圖。?
DROP VIEW college_view ;
????????
四、觀察與思考
1.通過視圖中插入的數(shù)據(jù)能進(jìn)入到基本表中去嗎?
答:可以的,因?yàn)橐晥D不保存數(shù)據(jù),只保存數(shù)據(jù)來源的內(nèi)容。
2.WITH?CHECK OPTION能起什么作用?
答:可以防止在更新視圖時(shí)不滿足視圖條件的數(shù)據(jù)插入到視圖中。
3.修改基本表的數(shù)據(jù)會(huì)自動(dòng)反映到相應(yīng)的視圖中去嗎?
答:修改基本表視圖也會(huì)發(fā)生變化。
4.哪些視圖中的數(shù)據(jù)不可以增刪改操作?
(1)視圖中包含SUM、COUNT等聚集函數(shù)。
(2)視圖中包含UNION、UNION ALL、DISTINCT、GROUP BY、HAVING等關(guān)鍵字。
(3)常量視圖,比如:CREATE VIEW view_now AS SELECT NOW().
(4)視圖中包含子查詢。
(5)由不可更新的視圖導(dǎo)出的視圖。
(6)創(chuàng)建視圖時(shí)ALGORITHM為TEMPTABLE類型。
(7)視圖對應(yīng)的表上存在沒有默認(rèn)值的列,而且該列沒有包含在視圖里。
(8)WITH CHECK OPTION 也決定視圖是否可以更新,LOCAL參數(shù)表示更新視圖時(shí)要滿足該視圖本身定義的條件即可;CASCADED參數(shù)表示更新視圖時(shí)要滿足所有相關(guān)視圖和表的條件,是默認(rèn)值。
五、實(shí)驗(yàn)要求
按要求完成,詳細(xì)記錄操作步驟,書寫實(shí)驗(yàn)報(bào)告。所有實(shí)驗(yàn)環(huán)節(jié)均由每位學(xué)?生獨(dú)立完成,認(rèn)真記錄操作過程,嚴(yán)禁抄襲他人實(shí)驗(yàn)結(jié)果。文章來源:http://www.zghlxwxcb.cn/news/detail-763407.html
六、實(shí)驗(yàn)總結(jié)
通過本次實(shí)驗(yàn)學(xué)習(xí)了對視圖的增刪改查的操作,了解了視圖的優(yōu)勢,在統(tǒng)一數(shù)據(jù)庫可以創(chuàng)建不同的視圖,為用戶分配不同的視圖,可以實(shí)現(xiàn)不同用戶只能查詢或修改對應(yīng)的數(shù)據(jù),增加了數(shù)據(jù)的安全訪問控制。文章來源地址http://www.zghlxwxcb.cn/news/detail-763407.html
到了這里,關(guān)于數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗(yàn)六視圖創(chuàng)建與管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!