UPDATE worker_view4 SET name='hi';
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)周口免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
ERROR............The target table worker_view4 of the UPDATE is not updatable.
(4)視圖中的SELECT中包含子查詢。
CREATE VIEW worker_view5(name)
AS SELECT (SELECT name FROM worker);
UPDATE worker_view5 SET name = '劉佳';
該視圖中包含了子查詢,因此也是不能更新的。
(5)由不可更新的視圖導(dǎo)出的視圖。
CREATE VIEW worker_view6
AS SELECT * FROM worker_view5;
UPDATE worker_view6 SET name = '王仔';
因?yàn)閣orker_view6是不可更新的視圖,所以worker_view6也不可以更新的視圖。使用UPDATE語句更新時(shí),會(huì)出現(xiàn)系統(tǒng)報(bào)錯(cuò)。
(6)創(chuàng)建視圖時(shí),ALGORITHM為TEMPTABLE類型。
CREATE ALGORITHM=TEMPTABLE
VIEW worker_view7
AS SELECT * FROM worker;
UPDATE worker_view7 SET name = '王仔';
因?yàn)樵撘晥DALGORITHM為TEMPTABLE類型,所以worker_view7不可以更新的視圖。TEMPTABLE類型就是臨時(shí)表類型。系統(tǒng)默認(rèn)臨時(shí)表是不能更新的。
(7)視圖對(duì)應(yīng)的表上存在沒有默認(rèn)值的列,而且該列沒有包含在視圖里。例如,表中包含的name字段沒有默認(rèn)值,但是視圖中不包含該字段。那么這個(gè)視圖是不能更新的。因?yàn)椋诟乱晥D時(shí),這個(gè)沒有默認(rèn)值的記錄將沒有值插入,也沒有NULL值插入。數(shù)據(jù)庫系統(tǒng)是不會(huì)允許這樣的情況出現(xiàn)的,數(shù)據(jù)庫系統(tǒng)將會(huì)阻止這個(gè)視圖更新。
注意:視圖中雖然可以更新數(shù)據(jù),但是有很多的限制。一般情況下,最好將視圖作為查詢數(shù)據(jù)的虛擬表,而不要通過視圖來更新數(shù)據(jù)。因?yàn)椋褂靡晥D更新數(shù)據(jù)時(shí),如果沒有全面考慮在視圖中更新數(shù)據(jù)的限制,可能會(huì)造成數(shù)據(jù)更新失敗。
除了上述條件不能更新視圖以外,WITH[CASCADED|LOCAL]CHECK OPTION也將決定視圖能否更新。"LOCAL"參數(shù)表示更新視圖時(shí)要滿足該視圖本身的定義的條件即可;
8.6 刪除視圖
刪除視圖是指刪除數(shù)據(jù)庫中已經(jīng)存在的視圖。刪除視圖時(shí),只能刪除視圖的定義,不會(huì)刪除數(shù)據(jù)。MYSQL中,使用DROP VIEW語句來刪除視圖,不會(huì)刪除數(shù)據(jù)。MySQL中,使用DROP VIEW語句來刪除視圖。但是,用戶必須擁有DROP權(quán)限。
DROP VIEW[IF EXISTS] 視圖名列表 [RESTRICT|CASCADE]
實(shí)例一:
SELECT Drop_priv
FROM mysql.user
WHERE user='root';
CREATE VIEW worker_view_del1
AS SELECT * FROM worker;
CREATE VIEW worker_view_del2
AS SELECT * FROM worker;
CREATE VIEW worker_view_del3
AS SELECT * FROM worker;
DROP VIEW IF EXISTS worker_view_del2, worker_view_del3;
8.7 本章實(shí)例
在test數(shù)據(jù)庫中work_info表上進(jìn)行視圖操作。
1. 在test數(shù)據(jù)庫中work_info表
2. 插入記錄
3. 創(chuàng)建視圖info_view
4. 查看視圖info_view的基本結(jié)構(gòu)和詳細(xì)結(jié)構(gòu)
5. 查看視圖info_view的所有記錄
6. 修改視圖info_view
7. 更新視圖
8. 刪除視圖
work_info表的結(jié)構(gòu)
字段名 字段描述 數(shù)據(jù)類型 主鍵 外鍵 非空 唯一 自增
id 編號(hào) INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
gender 姓別 VARCHAR(4) 否 否 是 否 否
age 年齡 INT(5) 否 否 否 否 否
address 家庭住址 VARCHAR(50) 否 否 否 否 否
tel 電話號(hào)碼 VARCHAR(20) 否 否 否 否 否
work_info表中的內(nèi)容
id name gender age address tel
1 張三 M 18 北市市海淀區(qū) 01-155151
2 李四 M 22 北京市昌平區(qū) 01-215151
3 王五 F 17 湖南省永州市 025-545845
4 趙六 F 25 遼寧省阜新市 0625-514545
(1) 創(chuàng)建work_info表
USE test;
CREATE TABLE IF NOT EXISTS work_info (
id INT(10) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
gender VARCHAR(4) NOT NULL,
age INT(5),
address VARCHAR(50),
tel VARCHAR(20)
) DEFAULT CHARSET=utf8;
(2)向work_info表中插入幾條記錄。
INSERT INTO work_info VALUES
(1, '張三', 'M', 18, '北市市海淀區(qū)','01-155151'),
(2,'李四', 'M', 22, '北京市昌平區(qū)', '01-215151'),
(3,'王五','F',17,'湖南省永州市','025-545845'),
(4,'趙六','F',25,'遼寧省阜新市','0625-514545');
(3) 創(chuàng)建視圖info_view。從work_info表中選出age20的記錄來創(chuàng)建視圖。視圖的字段包括id、name、gender和address。ALGORITHM設(shè)置為MERGE類型。加上WITH LOCAL CHECK OPTION條件。
CREATE ALGORITHM=MERGE
VIEW info_view(id, name, gender, address)
AS SELECT id, name, gender, address
FROM work_info
WHERE age20
WITH LOCAL CHECK OPTION;
(4)查看視圖info_view的基本結(jié)構(gòu)和詳細(xì)結(jié)構(gòu)。
SHOW CREATE VIEW info_view \G
(5)查看視圖info_view的所有記錄。
SELECT * FROM info_view;
(6)修改視圖info_view,使其顯示age20的信息,其他條件不變。
ALTER ALGORITHM=MERGE
VIEW info_view(id, name, gender, address)
AS SELECT id, name, gender, address
FROM work_info
WHERE age20
WITH LOCAL CHECK OPTION;
(7)更新視圖,將id為3的記錄進(jìn)行更新。設(shè)置其gender為M。
UPDATE info_view SET gender='M' WHERE id=3;
(8)刪除視圖。
DROP VIEW info_view;
8.8 上機(jī)實(shí)踐
題目要求:
(1)在數(shù)據(jù)庫example下創(chuàng)建college表。
(2)在college表上創(chuàng)建視圖college_view。視圖的字段包括student_num、student_name、student_age和department。ALGORITHM設(shè)置為UNDEFINED類型。加上WITH LOCAL CHECK OPTION條件。
(3)查看視圖college_view的詳細(xì)結(jié)構(gòu)。
(4)更新視圖。向視圖中插入三條記錄。
(5)修改視圖,使其顯示專業(yè)為"計(jì)算機(jī)"的信息,其他條件不變。
(6)刪除視圖college_view。
college表的結(jié)構(gòu)
字段名 字段描述 數(shù)據(jù)類型 主鍵 外鍵 非空 唯一 自增
number 學(xué)號(hào) INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
major 專業(yè) VARCHAR(20) 否 否 是 否 否
age 年齡 INT(5) 否 否 否 否 否
college_view表的內(nèi)容
student_num student_name student_age department
0901 張三 20 外語
0902 李四 22 計(jì)算機(jī)
0903 王五 19 計(jì)算機(jī)
USE example;
CREATE TABLE college(
number INT(10) NOT NULL UNIQUE PRIMARY KEY,
name VARCHAR(20) NOT NULL,
major VARCHAR(20) NOT NULL,
age TINYINT(3)
) DEFAULT CHARSET=utf8;
CREATE ALGORITHM=UNDEFINED
VIEW college_view(student_num, student_name, student_age, department)
AS SELECT number, name, age, major
FROM college
WITH LOCAL CHECK OPTION;
SHOW CREATE VIEW college_view \G
INSERT INTO college_view VALUES
(0901, '張三', 20, '外語'),
(0902, '李四', 22, '計(jì)算機(jī)'),
(0903, '王五', 19, '計(jì)算機(jī)');
CREATE OR REPLACE ALGORITHM=UNDEFINED
VIEW college_view(student_num, student_name, student_age, department)
AS SELECT number, name, age, major
FROM college
WHERE major='計(jì)算機(jī)'
WITH LOCAL CHECK OPTION;
1、從最簡(jiǎn)單的Access(文件型數(shù)據(jù)庫)開始吧,軟件網(wǎng)上有下載,首先基礎(chǔ)的概念必須掌握,比如什么叫表、什么叫主鍵。。。。。。
2、根據(jù)教材上的示例自己建幾個(gè)簡(jiǎn)單的庫,熟悉各種操作。
3、學(xué)習(xí)SQL語句,掌握查詢的用法。
4、做更多的實(shí)例加深理解,掌握學(xué)到的東西。
5、學(xué)習(xí)SQLserver掌握試圖、存儲(chǔ)過程、觸發(fā)器、游標(biāo)等用法,掌握關(guān)系型數(shù)據(jù)庫的基本操作。
6、深入學(xué)習(xí)大型數(shù)據(jù)庫的知識(shí),熟練復(fù)雜SQL語句的書寫。
7、根據(jù)需要再掌握Oracle、DB2等大型數(shù)據(jù)庫。有了前面的基礎(chǔ),不論學(xué)習(xí)什么品牌的數(shù)據(jù)庫都會(huì)比較容易上手。
在我們?nèi)粘I钪信紶枙?huì)遇到一些自己不知道如何解決的問題,比如使用安裝好的mysql。那么我們應(yīng)該怎樣解決這種自己不知道如何使用安裝好的mysql的情況呢?那么接下來就由我來介紹一下使用安裝好的mysql的步驟吧。
本次操作以Dell電腦為例,具體操作步驟如下:
第一步:
首先,打開MySQLWorkbench,雙擊打開即可。打開后的界面如下所示,然后選擇數(shù)據(jù)庫實(shí)例,雙擊進(jìn)行登錄。圖中數(shù)據(jù)庫的實(shí)例是LocalinstanceMYSQL57
第二步:
然后,輸入用戶名和密碼進(jìn)行登錄。如下圖所示:
第三步:
登錄成功后,界面如下所示。其中,區(qū)域1顯示的是數(shù)據(jù)庫服務(wù)器中已經(jīng)創(chuàng)建的數(shù)據(jù)庫列表。區(qū)域2是關(guān)于數(shù)據(jù)庫的操作列表。區(qū)域三是sql的編輯器和執(zhí)行環(huán)境,區(qū)域4是執(zhí)行結(jié)果的列表
第四步:
在sql的編輯器中輸入測(cè)試語句,如圖所示,其中world數(shù)據(jù)庫是mysql自帶的測(cè)試數(shù)據(jù)庫,然后選擇執(zhí)行(或者使用快捷鍵ctrl+enter)。執(zhí)行成功后,查詢結(jié)果會(huì)顯示在下面的列表中。
第五步:
使用完畢后,直接退出,并且如果無需數(shù)據(jù)庫的后繼操作的話,記得關(guān)掉MySQL的服務(wù)
看了我的方法,現(xiàn)在你學(xué)會(huì)如何使用安裝好的mysql了嗎?學(xué)會(huì)了的話就快快把這個(gè)方法分享出去,讓更多的人知道如何使用安裝好的mysql。以上就是使用安裝好的mysql的步驟。
本文章基于Dell品牌、Windows10系統(tǒng)撰寫的。
首先,學(xué)習(xí)基本的SQL語法。完成這個(gè)后,你就可以編寫SQL語句了。這一步推薦:W3Schools的 SQL 教程。
其次,學(xué)習(xí)數(shù)據(jù)庫的主要功能和使用方法,比如用戶相關(guān)或者權(quán)限相關(guān)等等。
我推薦兩本書:
一、《MySQL必知必會(huì)》 這本書講的非常全,從基本概念,到查詢到插入新建表,用戶的管理,都有具體的例子,非常適合沒有任何基礎(chǔ)的同學(xué)來學(xué)習(xí)Mysql,總之這本書學(xué)習(xí)的方法就是:1、十分鐘了解下數(shù)據(jù)庫的基本概念 2、找到練手的數(shù)據(jù)庫 3、對(duì)照著上面的內(nèi)容去敲。本書里也有大量的內(nèi)容是講sql的,可以結(jié)合w3c的sql教程一起,有取舍地看。
二、《數(shù)據(jù)庫系統(tǒng)概念》這本書是dba必看的。看完這些并且實(shí)踐+思考之后,可以算入門了。接下來對(duì)于希望深入學(xué)習(xí)的童鞋我推薦幾本書(很多大神都這么推薦),《高性能MySQL(第3版)》、 《MySQL技術(shù)內(nèi)幕(第4版)》,《MySQL技術(shù)內(nèi)幕 InnoDB存儲(chǔ)引擎》,《深入理解MySQL》還有Mysql的官網(wǎng)。讀完這些東西,再加些豐富的經(jīng)驗(yàn),理論上來講就具備DBA的水平了。十分推薦閱讀Planet MySQL上匯總的博客,特別是Percona's MySQL InnoDB performance and scalability blog但是,正如我開頭所言的。
面對(duì)問題的時(shí)候一定要積極思考!比如:我問你,面對(duì)一個(gè)并發(fā)量比較高的場(chǎng)景,如何配置mysql的連接數(shù)?你可能會(huì)回答:“哦,就是調(diào)高max_connection的數(shù)值吧。”那,你有沒有思考過調(diào)到多少是最合適的呢?為什么這樣設(shè)置就最合適呢?也許你會(huì)回答:“恩我知道,可以看系統(tǒng)之前的max_used_connection的數(shù)值,然后來設(shè)置。也可以調(diào)高back_log的值。”那你有沒有思考過,max_connection連接數(shù)太高會(huì)有什么不好的影響呢?back_log設(shè)置的太高有什么不好的地方呢?max_connect的上限其實(shí)是取決于mysql能獲得的文件描述符的數(shù)量,也就是說你就算設(shè)置成10000,最后也是沒用的,系統(tǒng)會(huì)根據(jù)機(jī)器的情況自動(dòng)調(diào)低。也許你會(huì)回答:“恩我知道,設(shè)置太高,會(huì)有系統(tǒng)開銷...”那你有沒有思考過,這些開銷具體是什么呢?是什么工作導(dǎo)致了需要這些內(nèi)存開銷?也許你還會(huì)回答,在連接創(chuàng)建的時(shí)候,會(huì)立刻為它分配連接緩沖區(qū)以及查詢緩沖區(qū),這些都會(huì)吃內(nèi)存。那你有沒有思考過,占據(jù)的資源具體是多少呢?取決于哪些因素呢?好了,我們先結(jié)束這個(gè)問題。回到知乎的問題上來,其實(shí)我說了這么多,就是表達(dá)要如何自學(xué)mysql。所以的所以,你必須不斷思考,才能在工作中面對(duì)具體場(chǎng)景的時(shí)候,非常淡定地推斷:“哦,一定是這里出了問題。應(yīng)該怎么怎么做。”面對(duì)問題,拿出打破砂鍋問到底的精神,先思考一番,給出自己的假設(shè),不要著急地去找度娘,谷歌。思考過后,帶著你的推斷或者答案,大膽地去搜索吧!去看看別人的見解,去看看官方的描述!這才是一個(gè)工程師應(yīng)有的態(tài)度。最后我想給出一些有價(jià)值的學(xué)習(xí)資料。可以省去一些時(shí)間。-電子書:我認(rèn)為多看書還是有好處的。有些書值得反復(fù)看許多遍,有時(shí)候只看一遍無法深刻理解吸收,思考也不夠充分
當(dāng)前文章:怎么學(xué)會(huì)mysql 怎么學(xué)會(huì)游泳
文章轉(zhuǎn)載:http://m.newbst.com/article18/doghsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、小程序開發(fā)、企業(yè)網(wǎng)站制作、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)