如果你沒有 MySQL 的基礎(chǔ),建議可以看看以下書籍:
公司專注于為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、商城網(wǎng)站建設(shè),小程序制作,軟件按需搭建網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會仔細(xì)了解各客戶的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。
《MySQL 必知必會》:主要講 SQL 的寫法
《深入淺出 MySQL》:比較全面的講解了 MySQL 的基礎(chǔ)知識,也涉及了一些優(yōu)化。
如果已經(jīng)對 MySQL 比較熟悉了,可以看下面的書籍:
《高性能 MySQL》:里面講了很多 MySQL 優(yōu)化技巧。
《MySQL 技術(shù)內(nèi)幕》:講解了很多 MySQL 原理,強(qiáng)力推薦給想深入學(xué)習(xí) MySQL 的同學(xué)。
《MySQL 內(nèi)核:InnoDB 存儲引擎》:想深入研究 MySQL 內(nèi)核及原理的可以看看。
《MySQL 運(yùn)維內(nèi)參》:對 MySQL 源碼感興趣,可以入手。
《MySQL Internals Manual》
《MySQL 5.7 Reference Manual》
自學(xué):
1:b站上有很多mysql的學(xué)習(xí)視頻,都是各個(gè)培訓(xùn)機(jī)構(gòu)往期的培訓(xùn)視頻
2、淘寶上搜mysql,有很多店主整理好的培訓(xùn)視頻,大概三五塊錢就有很多
3、51cto,慕課網(wǎng),csdn之類的網(wǎng)站,上邊也有很多培訓(xùn)視頻,有需要會員的,也有免費(fèi)的
需要注意下視頻的培訓(xùn)日期以及數(shù)據(jù)庫版本,最好是選最近兩年的培訓(xùn)視頻,51cto風(fēng)哥的視頻就挺詳細(xì)的,就是有點(diǎn)貴
培訓(xùn)機(jī)構(gòu):
有很多線下的和線上的培訓(xùn)機(jī)構(gòu),例如晟數(shù)學(xué)苑,老男孩等等,培訓(xùn)的機(jī)構(gòu)海了去了,自己了解下哪個(gè)機(jī)構(gòu)比較好,報(bào)名就是了,就是需要花不少的錢
如果想以此就業(yè)的話,也可以去考慮去考下mysql的認(rèn)證,mysql ocp也就一千來塊錢
先給出我的核心觀點(diǎn):
學(xué)習(xí),無論你是學(xué)什么,也無論你有沒有基礎(chǔ)。思考永遠(yuǎn)是第一位的,有些知識你沒接觸過不要緊,用不著害怕,也沒必要害怕。重要的是一秒鐘也不要停止思考,問題要想透徹,正所謂磨刀不誤砍柴工。尤其是作為工程師,要有打破砂鍋問到底的精神,否則你怎么學(xué)都沒用。
首先,學(xué)習(xí)基本的SQL語法。完成這個(gè)后,你就可以編寫SQL語句了。這一步推薦:W3Schools的 SQL 教程。
其次,學(xué)習(xí)數(shù)據(jù)庫的主要功能和使用方法,比如用戶相關(guān)或者權(quán)限相關(guān)等等。
我推薦兩本書:
一、《MySQL必知必會》 這本書講的非常全,從基本概念,到查詢到插入新建表,用戶的管理,都有具體的例子,非常適合沒有任何基礎(chǔ)的同學(xué)來學(xué)習(xí)Mysql,總之這本書學(xué)習(xí)的方法就是:1、十分鐘了解下數(shù)據(jù)庫的基本概念 2、找到練手的數(shù)據(jù)庫 3、對照著上面的內(nèi)容去敲。本書里也有大量的內(nèi)容是講sql的,可以結(jié)合w3c的sql教程一起,有取舍地看。
二、《數(shù)據(jù)庫系統(tǒng)概念》這本書是dba必看的??赐赀@些并且實(shí)踐+思考之后,可以算入門了。接下來對于希望深入學(xué)習(xí)的童鞋我推薦幾本書(很多大神都這么推薦),《高性能MySQL(第3版)》、 《MySQL技術(shù)內(nèi)幕(第4版)》,《MySQL技術(shù)內(nèi)幕 InnoDB存儲引擎》,《深入理解MySQL》還有Mysql的官網(wǎng)。讀完這些東西,再加些豐富的經(jīng)驗(yàn),理論上來講就具備DBA的水平了。十分推薦閱讀Planet MySQL上匯總的博客,特別是Percona's MySQL InnoDB performance and scalability blog但是,正如我開頭所言的。
面對問題的時(shí)候一定要積極思考!比如:我問你,面對一個(gè)并發(fā)量比較高的場景,如何配置mysql的連接數(shù)?你可能會回答:“哦,就是調(diào)高max_connection的數(shù)值吧?!蹦?,你有沒有思考過調(diào)到多少是最合適的呢?為什么這樣設(shè)置就最合適呢?也許你會回答:“恩我知道,可以看系統(tǒng)之前的max_used_connection的數(shù)值,然后來設(shè)置。也可以調(diào)高back_log的值?!蹦悄阌袥]有思考過,max_connection連接數(shù)太高會有什么不好的影響呢?back_log設(shè)置的太高有什么不好的地方呢?max_connect的上限其實(shí)是取決于mysql能獲得的文件描述符的數(shù)量,也就是說你就算設(shè)置成10000,最后也是沒用的,系統(tǒng)會根據(jù)機(jī)器的情況自動調(diào)低。也許你會回答:“恩我知道,設(shè)置太高,會有系統(tǒng)開銷...”那你有沒有思考過,這些開銷具體是什么呢?是什么工作導(dǎo)致了需要這些內(nèi)存開銷?也許你還會回答,在連接創(chuàng)建的時(shí)候,會立刻為它分配連接緩沖區(qū)以及查詢緩沖區(qū),這些都會吃內(nèi)存。那你有沒有思考過,占據(jù)的資源具體是多少呢?取決于哪些因素呢?好了,我們先結(jié)束這個(gè)問題?;氐街醯膯栴}上來,其實(shí)我說了這么多,就是表達(dá)要如何自學(xué)mysql。所以的所以,你必須不斷思考,才能在工作中面對具體場景的時(shí)候,非常淡定地推斷:“哦,一定是這里出了問題。應(yīng)該怎么怎么做?!泵鎸栴},拿出打破砂鍋問到底的精神,先思考一番,給出自己的假設(shè),不要著急地去找度娘,谷歌。思考過后,帶著你的推斷或者答案,大膽地去搜索吧!去看看別人的見解,去看看官方的描述!這才是一個(gè)工程師應(yīng)有的態(tài)度。最后我想給出一些有價(jià)值的學(xué)習(xí)資料??梢允∪ヒ恍r(shí)間。-電子書:我認(rèn)為多看書還是有好處的。有些書值得反復(fù)看許多遍,有時(shí)候只看一遍無法深刻理解吸收,思考也不夠充分
方法如下:
1、首先打開Mysql命令行編輯器,連接Mysql數(shù)據(jù)庫;
2、使用所要操作的數(shù)據(jù)庫,先顯示一下數(shù)據(jù)庫中的表;
3、顯示一下表結(jié)構(gòu),了解一下表中的列;
4、向表插入數(shù)據(jù),insert into 表名 (列名) values (值);
5、查詢表可以看到所插入的數(shù)據(jù),select * from 表名;
6、可以再插入一個(gè)數(shù)據(jù),顯示一下。
擴(kuò)展資料:
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于?Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的?RDBMS?(Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。
MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
由于其社區(qū)版的性能卓越,搭配?PHP?和?Apache?可組成良好的開發(fā)環(huán)境。
與其他的大型數(shù)據(jù)庫,例如?Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。
Linux作為操作系統(tǒng),Apache?或Nginx作為?Web?服務(wù)器,MySQL 作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP“或“LNMP”組合。
MyISAMMySQL 5.0 之前的默認(rèn)數(shù)據(jù)庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務(wù)
InnoDB事務(wù)型數(shù)據(jù)庫的首選引擎,支持ACID事務(wù),支持行級鎖定, MySQL 5.5 起成為默認(rèn)數(shù)據(jù)庫引擎
BDB源 自 Berkeley DB,事務(wù)型數(shù)據(jù)庫的另一種選擇,支持Commit 和Rollback 等其他事務(wù)特性
Memory所有數(shù)據(jù)置于內(nèi)存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會在 MySQL 重新啟動時(shí)丟失
Merge將一定數(shù)量的 MyISAM 表聯(lián)合而成一個(gè)整體,在超大規(guī)模數(shù)據(jù)存儲時(shí)很有用
Archive非常適合存儲大量的獨(dú)立的,作為歷史記錄的數(shù)據(jù)。因?yàn)樗鼈儾唤?jīng)常被讀取。Archive 擁有高效的插入速度,但其對查詢的支持相對較差
Federated將不同的 MySQL 服務(wù)器聯(lián)合起來,邏輯上組成一個(gè)完整的數(shù)據(jù)庫。非常適合分布式應(yīng)用
Cluster/NDB高冗余的存儲引擎,用多臺數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大,安全和性能要求高的應(yīng)用
CSV: 邏輯上由逗號分割數(shù)據(jù)的存儲引擎。它會在數(shù)據(jù)庫子目錄里為每個(gè)數(shù)據(jù)表創(chuàng)建一個(gè) .csv 文件。這是一種普通文本文件,每個(gè)數(shù)據(jù)行占用一個(gè)文本行。CSV 存儲引擎不支持索引。
BlackHole:黑洞引擎,寫入的任何數(shù)據(jù)都會消失,一般用于記錄 binlog 做復(fù)制的中繼
EXAMPLE 存儲引擎是一個(gè)不做任何事情的存根引擎。它的目的是作為 MySQL?源代碼中的一個(gè)例子,用來演示如何開始編寫一個(gè)新存儲引擎。同樣,它的主要興趣是對開發(fā)者。EXAMPLE 存儲引擎不支持編索引。
另外,MySQL 的存儲引擎接口定義良好。有興趣的開發(fā)者可以通過閱讀文檔編寫自己的存儲引擎。
參考資料來源:百度百科:mySQL
對于非計(jì)算機(jī)出身的我,大學(xué)只會hello word和跑馬燈,期間過程確實(shí)非常曲折,分享下我的自學(xué)過程:
1、 自己在windows和linux上安裝了mysql,自學(xué)linux的基礎(chǔ)知識,學(xué)習(xí)mysql的最基礎(chǔ)的知識,即怎么寫sql,存儲過程,表的設(shè)計(jì)等,從0到熟悉大概花了3個(gè)月 ,推薦《mysql入門很簡單》。
2、系統(tǒng)地較為深入地學(xué)習(xí)mysql的sql優(yōu)化,備份和恢復(fù),參數(shù)優(yōu)化,架構(gòu)優(yōu)化,硬件層面的優(yōu)化,高可用方案,復(fù)制技術(shù)等等,這段時(shí)間你不一定能實(shí)際接觸到這些,就像我當(dāng)初那樣,肯定沒什么公司招一個(gè)小白。 我選擇自己看書,推薦《高性能mysql》,里面所有的章節(jié)都需要看一遍,以現(xiàn)在的水平肯定看不懂,但需要知道大概怎么回事,為后續(xù)的找mysql初級dba的工作打一個(gè)鋪墊,這個(gè)過程大概也需要3個(gè)月。
3、 紙上得來終覺淺,完成以上兩步,我開始準(zhǔn)備找一份mysql相關(guān)的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。 當(dāng)然我這么猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業(yè)余時(shí)間開始投初級mysql dba的工作,并且不間斷地學(xué)習(xí),網(wǎng)上各種找mysql面試的相關(guān)題目(實(shí)際上我當(dāng)時(shí)完全沒有任何實(shí)戰(zhàn)經(jīng)驗(yàn)),陸續(xù)收到一些面試,憑借之前自學(xué)的mysql知識,開始胡亂吹牛逼,先混進(jìn)去再說。 你不做mysql實(shí)際相關(guān)的工作,永遠(yuǎn)也不知道自己之前認(rèn)知的db知識有多幼稚。 友情提示一點(diǎn),一般公司都沒有專職dba的,所以面試的時(shí)候一定要自信,其實(shí)你學(xué)了這么多,雖然毫無實(shí)戰(zhàn)經(jīng)驗(yàn),理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進(jìn)入初級dba的圈子(由于這時(shí)對linux還處于cd ls的水平,所以之前也根本沒做過運(yùn)維),這個(gè)邊工作邊找工作的過程又持續(xù)了2個(gè)月。
4、真正進(jìn)入互聯(lián)網(wǎng),接觸生產(chǎn)環(huán)境后,這是我進(jìn)步最大的時(shí)候。 第一步需要將之前所學(xué)真正地應(yīng)用起來,并且應(yīng)用的過程中,再回頭看之前的書籍,這時(shí)候需要真正去理解,而不是似是而非,一知半解。 這時(shí)再推薦《高性能mysql 第三版》,全本再看一遍,這時(shí)需要全部看懂,另外還有《mysql技術(shù)內(nèi)幕:innodb存儲引擎》等等。 總之這段時(shí)間就需要開始關(guān)注mysql一些細(xì)節(jié)了,比如db故障處理,高可用,負(fù)載均衡等等的具體實(shí)現(xiàn)了。 另外,linux的知識同步也要深入去學(xué)習(xí),至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術(shù)能力有限,該學(xué)的也學(xué)得差不多了,接觸不到海量數(shù)據(jù),高并發(fā)等比較鍛煉人的場合,于是我又準(zhǔn)備跳了。 于是來了公有云,現(xiàn)在每天運(yùn)維萬多個(gè)db實(shí)例,平均每天處理5+個(gè)緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術(shù)實(shí)力和經(jīng)驗(yàn)也在每天都在積累,在進(jìn)步。 但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點(diǎn),還是數(shù)據(jù)庫運(yùn)維和應(yīng)用多一點(diǎn),就比如業(yè)界姜承堯,何登成與葉金榮的區(qū)別。 由于我的歷史原因,對c++等幾乎不懂,平時(shí)也用不到,所以看代碼等事實(shí)際太累,于是我再去學(xué)mongodb,接了公司mongodb運(yùn)維的活,算是在廣度上的一個(gè)擴(kuò)展,萬一哪天mysql不行了呢
6、 總之,對于db小白來說,最重要的一點(diǎn)就是,學(xué)習(xí)的過程不能斷。 PS 上面的方法比較野路子,適合沒什么基礎(chǔ)的童鞋,如果本來就是DBA,比如從oracle轉(zhuǎn)到mysql,那么建議直接看mysql官方文檔,而官方文檔是db達(dá)到一定水平后必看,出問題時(shí)必查的權(quán)威文檔。
UPDATE worker_view4 SET name='hi';
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í),會出現(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)視圖對應(yīng)的表上存在沒有默認(rèn)值的列,而且該列沒有包含在視圖里。例如,表中包含的name字段沒有默認(rèn)值,但是視圖中不包含該字段。那么這個(gè)視圖是不能更新的。因?yàn)椋诟乱晥D時(shí),這個(gè)沒有默認(rèn)值的記錄將沒有值插入,也沒有NULL值插入。數(shù)據(jù)庫系統(tǒng)是不會允許這樣的情況出現(xiàn)的,數(shù)據(jù)庫系統(tǒng)將會阻止這個(gè)視圖更新。
注意:視圖中雖然可以更新數(shù)據(jù),但是有很多的限制。一般情況下,最好將視圖作為查詢數(shù)據(jù)的虛擬表,而不要通過視圖來更新數(shù)據(jù)。因?yàn)椋褂靡晥D更新數(shù)據(jù)時(shí),如果沒有全面考慮在視圖中更新數(shù)據(jù)的限制,可能會造成數(shù)據(jù)更新失敗。
除了上述條件不能更新視圖以外,WITH[CASCADED|LOCAL]CHECK OPTION也將決定視圖能否更新。"LOCAL"參數(shù)表示更新視圖時(shí)要滿足該視圖本身的定義的條件即可;
8.6 刪除視圖
刪除視圖是指刪除數(shù)據(jù)庫中已經(jīng)存在的視圖。刪除視圖時(shí),只能刪除視圖的定義,不會刪除數(shù)據(jù)。MYSQL中,使用DROP VIEW語句來刪除視圖,不會刪除數(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 編號 INT(10) 是 否 是 是 否
name 姓名 VARCHAR(20) 否 否 是 否 否
gender 姓別 VARCHAR(4) 否 否 是 否 否
age 年齡 INT(5) 否 否 否 否 否
address 家庭住址 VARCHAR(50) 否 否 否 否 否
tel 電話號碼 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é)號 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;
新聞名稱:mysql數(shù)據(jù)庫怎么學(xué) mysql數(shù)據(jù)庫好學(xué)嗎
當(dāng)前地址:http://www.rwnh.cn/article28/doohdjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、定制網(wǎng)站、用戶體驗(yàn)、域名注冊、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)