學mysql資料庫
⑴ Mysql有什麼推薦的學習書籍
1、《MySQL技術內幕:InnoDB存儲引擎》
《MySQL技術內幕:InnoDB存儲引擎》的作者是姜承堯。本書從源代碼的角度深度解析了InnoDB
的體系結構、實現原理、工作機制,並給出了大量最佳實踐。
2、《MySQL完全手冊》
《MySQL完全手冊》詳細介紹了如何使用可定製的MySQL資料庫管理系統支持健壯的、可靠的、任
務關鍵的應用程序。
3、《深入淺出mysql》
《深入淺出mysql》從資料庫的基礎、開發、優化、管理維護4個方面對MySQL進行了詳細的介紹,
其中每一部分都獨立成篇。
基礎篇主要適合於MySQL的初學者,內容包括MySQL的安裝與配置、SQL基礎、MySQL支持的數
據類型、MySQL中的運算符、常用函數、圖形化工具的使用等。
4、《 資料庫索引設計與優化》
本文以MySQL資料庫為研究對象,討論與資料庫索引相關的一些話題。特別需要說明的是,MySQL
支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同。
5、《高性能MySQL》
《高性能MySQL》是分享MySQL實用經驗的圖書。它不但可以幫助MySQL初學者提高使用技巧,
更為有經驗的MySQL DBA指出了開發高性能MySQL應用的途徑。
(1)學mysql資料庫擴展閱讀:
《MySQL技術內幕:InnoDB存儲引擎》是國內目前唯一的一本關於InnoDB的著作,由資深MySQL
專家親自執筆,中外資料庫專家聯袂推薦,權威性毋庸置疑。
它能為讀者設計和管理高性能、高可用的資料庫系統提供絕佳的指導。注重實戰,全書輔有大量的
案例,可操作性極強。全書首先全景式地介紹了MySQL獨有的插件式存儲引擎,分析了MySQL的各
種存儲引擎的優勢和應用環境。
參考資料:網路——MySQL技術內幕:InnoDB存儲引擎
⑵ 零基礎如何自學使用MySQL資料庫
對於非計算機出身的我,大學只會hello word和跑馬燈,期間過程確實非常曲折,分享下我的自學過程:
1、 自己在windows和linux上安裝了mysql,自學linux的基礎知識,學習mysql的最基礎的知識,即怎麼寫sql,存儲過程,表的設計等,從0到熟悉大概花了3個月 ,推薦《mysql入門很簡單》。
2、系統地較為深入地學習mysql的sql優化,備份和恢復,參數優化,架構優化,硬體層面的優化,高可用方案,復制技術等等,這段時間你不一定能實際接觸到這些,就像我當初那樣,肯定沒什麼公司招一個小白。 我選擇自己看書,推薦《高性能mysql》,裡面所有的章節都需要看一遍,以現在的水平肯定看不懂,但需要知道大概怎麼回事,為後續的找mysql初級dba的工作打一個鋪墊,這個過程大概也需要3個月。
3、 紙上得來終覺淺,完成以上兩步,我開始准備找一份mysql相關的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。 當然我這么猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業余時間開始投初級mysql dba的工作,並且不間斷地學習,網上各種找mysql面試的相關題目(實際上我當時完全沒有任何實戰經驗),陸續收到一些面試,憑借之前自學的mysql知識,開始胡亂吹牛逼,先混進去再說。 你不做mysql實際相關的工作,永遠也不知道自己之前認知的db知識有多幼稚。 友情提示一點,一般公司都沒有專職dba的,所以面試的時候一定要自信,其實你學了這么多,雖然毫無實戰經驗,理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進入初級dba的圈子(由於這時對linux還處於cd ls的水平,所以之前也根本沒做過運維),這個邊工作邊找工作的過程又持續了2個月。
4、真正進入互聯網,接觸生產環境後,這是我進步最大的時候。 第一步需要將之前所學真正地應用起來,並且應用的過程中,再回頭看之前的書籍,這時候需要真正去理解,而不是似是而非,一知半解。 這時再推薦《高性能mysql 第三版》,全本再看一遍,這時需要全部看懂,另外還有《mysql技術內幕:innodb存儲引擎》等等。 總之這段時間就需要開始關注mysql一些細節了,比如db故障處理,高可用,負載均衡等等的具體實現了。 另外,linux的知識同步也要深入去學習,至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術能力有限,該學的也學得差不多了,接觸不到海量數據,高並發等比較鍛煉人的場合,於是我又准備跳了。 於是來了公有雲,現在每天運維萬多個db實例,平均每天處理5+個緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術實力和經驗也在每天都在積累,在進步。 但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,還是資料庫運維和應用多一點,就比如業界姜承堯,何登成與葉金榮的區別。 由於我的歷史原因,對c++等幾乎不懂,平時也用不到,所以看代碼等事實際太累,於是我再去學mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴展,萬一哪天mysql不行了呢
6、 總之,對於db小白來說,最重要的一點就是,學習的過程不能斷。 PS 上面的方法比較野路子,適合沒什麼基礎的童鞋,如果本來就是DBA,比如從oracle轉到mysql,那麼建議直接看mysql官方文檔,而官方文檔是db達到一定水平後必看,出問題時必查的權威文檔。
⑶ 如何學習MySQL資料庫
零基礎的話,學資料庫首訊資料庫系統概念》,那些雜牌書就不用看了。 然後就是選擇一個具體的資料庫產品學習,比如Access、SQL-Server、MySQL、Oracle、DB2等,不同的資料庫產品區別很大的,每一種資料庫都有相應的經典書
⑷ MySQL能去哪裡學習
首先,學習基本的SQL語法。完成這個後,你就可以編寫SQL語句了。這一步推薦:W3Schools的 SQL 教程。
其次,學習資料庫的主要功能和使用方法,比如用戶相關或者許可權相關等等。
我推薦兩本書:
一、《MySQL必知必會》 這本書講的非常全,從基本概念,到查詢到插入新建表,用戶的管理,都有具體的例子,非常適合沒有任何基礎的同學來學習Mysql,總之這本書學習的方法就是:1、十分鍾了解下資料庫的基本概念 2、找到練手的資料庫 3、對照著上面的內容去敲。本書里也有大量的內容是講sql的,可以結合w3c的sql教程一起,有取捨地看。
二、《資料庫系統概念》這本書是dba必看的。看完這些並且實踐+思考之後,可以算入門了。接下來對於希望深入學習的童鞋我推薦幾本書(很多大神都這么推薦),《高性能MySQL(第3版)》、 《MySQL技術內幕(第4版)》,《MySQL技術內幕 InnoDB存儲引擎》,《深入理解MySQL》還有Mysql的官網。讀完這些東西,再加些豐富的經驗,理論上來講就具備DBA的水平了。十分推薦閱讀Planet MySQL上匯總的博客,特別是Percona's MySQL & InnoDB performance and scalability blog但是,正如我開頭所言的。
面對問題的時候一定要積極思考!比如:我問你,面對一個並發量比較高的場景,如何配置mysql的連接數?你可能會回答:「哦,就是調高max_connection的數值吧。」那,你有沒有思考過調到多少是最合適的呢?為什麼這樣設置就最合適呢?也許你會回答:「恩我知道,可以看系統之前的max_used_connection的數值,然後來設置。也可以調高back_log的值。」那你有沒有思考過,max_connection連接數太高會有什麼不好的影響呢?back_log設置的太高有什麼不好的地方呢?max_connect的上限其實是取決於mysql能獲得的文件描述符的數量,也就是說你就算設置成10000,最後也是沒用的,系統會根據機器的情況自動調低。也許你會回答:「恩我知道,設置太高,會有系統開銷...」那你有沒有思考過,這些開銷具體是什麼呢?是什麼工作導致了需要這些內存開銷?也許你還會回答,在連接創建的時候,會立刻為它分配連接緩沖區以及查詢緩沖區,這些都會吃內存。那你有沒有思考過,占據的資源具體是多少呢?取決於哪些因素呢?好了,我們先結束這個問題。回到知乎的問題上來,其實我說了這么多,就是表達要如何自學mysql。所以的所以,你必須不斷思考,才能在工作中面對具體場景的時候,非常淡定地推斷:「哦,一定是這里出了問題。應該怎麼怎麼做。」面對問題,拿出打破砂鍋問到底的精神,先思考一番,給出自己的假設,不要著急地去找度娘,谷歌。思考過後,帶著你的推斷或者答案,大膽地去搜索吧!去看看別人的見解,去看看官方的描述!這才是一個工程師應有的態度。最後我想給出一些有價值的學習資料。可以省去一些時間。-電子書:我認為多看書還是有好處的。有些書值得反復看許多遍,有時候只看一遍無法深刻理解吸收,思考也不夠充分
⑸ MySQL應該怎麼學起
MySQL 是一個關系型資料庫,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關系型資料庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體之一。MySQL 是一種關聯資料庫管理系統,關聯資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL 所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策(本詞條"授權政策"),它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。由於其社區版的性能卓越,搭配 PHP ,Linux和 Apache 可組成良好的開發環境,經過多年的web技術發展,在業內被廣泛使用的一種web伺服器解決方案之一,稱之為LAMP。
⑹ 該怎麼學習MySQL資料庫,從基礎學起的哪種
如果你沒有 MySQL 的基礎,建議可以看看以下書籍:
《MySQL 必知必會》:主要講 SQL 的寫法
《深入淺出 MySQL》:比較全面的講解了 MySQL 的基礎知識,也涉及了一些優化。
《高性能 MySQL》:裡面講了很多 MySQL 優化技巧。
《MySQL 技術內幕》:講解了很多 MySQL 原理,強力推薦給想深入學習 MySQL 的同學。
《MySQL 內核:InnoDB 存儲引擎》:想深入研究 MySQL 內核及原理的可以看看。
《MySQL 運維內參》:對 MySQL 源碼感興趣,可以入手。
《MySQL Internals Manual》https://dev.mysql.com/doc/internals/en/
《MySQL 5.7 Reference Manual》https://dev.mysql.com/doc/refman/5.7/en/
如果已經對 MySQL 比較熟悉了,可以看下面的書籍:
⑺ mysql學了可以干什麼
首先技不壓身,不管你將來從事什麼技術行當,跟資料庫都或多或少會產生交集,遇到問題,自己能夠解決,比等待別人來處理要快得多。
學習了MySQL最主要目的是能夠有一技之長,能夠從事相關工作,可以有多個發展方向。比如最直接的就是從事資料庫相關工作,可以作為DBA對資料庫進行部署、管理、優化等,也可以偏向於資料庫開發,對資料庫進行設計。如果資料庫學得非常精湛甚至可以通過對源碼的修改實現自己想要的功能,國內外很多MySQL大神都是很精通MySQL源碼的,在源碼基礎上增加一些中間件來增強資料庫,有的都做出自己的分支版本。現在作為開發者大部分也都需要具有資料庫相關知識,而MySQL現在又是在開發中使用的人氣最熱的資料庫之一。即便不做技術,做銷售的話,在宣傳自己的產品的時候可能也會涉及到資料庫相關知識,自己比較精通的話,在向客戶介紹的時候就能很好的像用戶解釋為什麼選用MySQL而不是其他資料庫。
當然,如果作為純愛好也是沒問題的,有人喜歡釣魚、有人喜歡玩游戲,咱們喜歡琢磨資料庫別人也是管不著的😄。
純手打,希望對你有所幫助。
⑻ MySQL資料庫基礎+ 資料庫的基本操作
需要用的資料以鏈接的形式給需要的同學。
我用的mysql版本為: Mysql-5.5.45-win64.msi 密碼是:26zw
圖形化工具 Navicat(前期不推薦用,直接手動敲): Navicat 密碼:c7fs
開始我的MySQL之旅吧 始於2016.12.04
--WH
一、資料庫的安裝
這個就不在這里過多闡述了,因為網上實在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程(MySQL安裝教程)去看,就能夠安裝完好。
安裝好mysql後,如果需要使用windows命令窗口(也就是cmd)來操作mysql,那麼就需要配置環境變數,在安裝好的mysql下找到bin,將其目錄放到環境變數path中去,就行了,檢測成功與否的方法是在cmd命令窗口中輸入mysql,就會出現一大段英文,就說明成功了,反之失敗,如果不會的話就去網路搜教程。
二、資料庫的基本操作
1、開啟mysql服務命令
net start mysql
2、進入mysql的兩種方式
明文進入:mysql -uroot -proot格式:mysql -u帳號-p密碼
密文進入:mysql -uroot -p 按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示為***這樣。
3、查看mysql中所有的資料庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)
前面四個資料庫是mysql中自帶的,也就是必須的.
SHOW DATABASES;
4、創建名為test_1的資料庫
格式:CREATE DATABASE 資料庫名
CREATE DATABASE test_1;
5、刪除名為test_1的資料庫
格式:DROP DATABASE 資料庫名
DROP DATABASE test_1;
總結:學習了對資料庫的三個操作,1、查看所有資料庫 2、創建資料庫 3、刪除資料庫
三、數據表的基本操作
數據表和資料庫還有Mysql三者的關系
mysql中保存了很多資料庫、一個資料庫中可以保存很多表。
對數據表的增(創建表)刪(刪除表)改(修改表欄位)查(查詢表結構)。 注意:這里的操作對象是表,對表的操作也就是表的結構,和表中的欄位的操作(欄位和記錄要分清楚)
前提:表是在資料庫下的,所以要先確實使用哪個資料庫。
USE test_1;
1、創建數據表
格式:CREATE TABLE 數據表名(
欄位名1數據類型[列級別約束條件],
欄位名2數據類型[列級別約束條件],
欄位名3數據類型[列級別約束條件]
);
注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。
解釋:
1、[]中括弧中的內容表示可以有可以沒有,
2、列級別這個「列」一定要搞清楚說的是什麼,一張表中有行有列,列表示豎,行表示橫
3、約束條件後面會講到
1.1、創建沒有約束的student表
CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11) );
注釋:SHOW TABLES 查詢資料庫底下的所有表。
1.2、創建有約束的student表
六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認約束、自動增加
1.2.1:主鍵約束
PRIMARY KEY(primary key):獨一無二(唯一)和不能為空(非空),通俗的講,就是在表中增加記錄時,在該欄位下的數據不能重復,不能為空,比如以上面創建的表為例子,在表中增加兩條記錄,如果id欄位用了主鍵約束。則id不能一樣,並且不能為空。一般每張表中度有一個欄位為主鍵,唯一標識這條記錄。以後需要找到該條記錄也可以同這個主鍵來確認記錄,因為主鍵是唯一的,並且非空,一張表中每個記錄的主鍵度不一樣,所以根據主鍵也就能找到對應的記錄。而不是多條重復的記錄。如果沒有主鍵,那麼表中就會存在很多重復的記錄,那麼即浪費存儲空間,在查詢時也消耗更多資源。
一般被主鍵約束了的欄位度習慣性的稱該欄位為該表的主鍵
單欄位主鍵約束
兩種方式都可以
CREATE TABLE student(CREATE TABLE student(
idINT(11) PRIMARY KEY,idINT(11),
nameVARCHAR(12),nameVARCHAR(12),
ageINT(11) ageINT(11),
);PRIMARY KEY(id) );
多欄位主鍵約束(復合主鍵)
這個id和name都市主鍵,說明在以後增加的插入的記錄中,id和name不能同時一樣,比如說可以是這樣。一條記錄為id=1,name=yyy、另一條記錄為:id=1,name=zzz。 這樣是可以的。並不是你們所理解的兩個欄位分別度不可以相同。
CREATE TABLE student(CREATE TABLE student(
idINT(11) PRIMARY KEY,idINT(11),
nameVARCHAR(12) PRIMARY KEY,nameVARCHAR(12),
ageINT(11)ageINT(11),
);PRIMARY KEY(id,name) );
1.2.2:外鍵約束
什麼是外鍵舉個例子就清楚了,有兩張表,一張表是emp(員工)表,另一張表是dept(部門)表,一個員工屬於一個部門,那麼如何通過員工能讓我們自己他在哪個部門呢?那就只能在員工表中增加一個欄位,能代表員工所在的部門,那該欄位就只能是存儲dept中的主鍵了(因為主鍵是唯一的,才能確實是哪個部門,進而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區分了。),像這樣的欄位,就符合外鍵的特點,就可以使用外鍵約束,使該欄位只能夠存儲另一張表的主鍵。如果不被外鍵約束,那麼該欄位就無法保證存儲進來的值就一定是另一張表的主鍵值。
外鍵約束的特點:
1、外鍵約束可以描述任意一個欄位(包括主鍵),可以為空,並且一個表中可以有多個外鍵。但是外鍵欄位中的值必須是另一張表中的主鍵。
2、這樣被外鍵關聯的兩種表的關系可以稱為父子表或者主從表。子表(從表)擁有外鍵欄位的表,父表(主表)被外鍵欄位所指向的表。
3、子表被外鍵約束修飾的欄位必須和父表的主鍵欄位的類型一樣。
注意:一個表中有被外鍵修飾的欄位,就稱該表有外鍵(是「有外鍵」。而不是「是外鍵」),並會給該表中的外鍵約束取一個名稱,所以我們常說的這個表有沒有外鍵,指的不是被外鍵約束修飾的欄位名,而是指這個表是否有存在外鍵約束。也就是說,不能說這個表的外鍵是xxx(該表中被外鍵約束修飾的欄位名),這種說法是錯誤的,但是大多數人已經習慣了這樣,雖然影響不大,但是在很多時候需要理解一個東西時,會造成一定的困擾。
格式:CONSTRAINT外鍵名稱FOREIGN KEY(被外鍵約束的欄位名稱)REFERENCES 主表名(主鍵欄位)
英文解釋:CONSTRAINT:約束REFERENCES:參考
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);
解釋:tableB中有一個名為tableA_tableB_1的外鍵關聯了tableA和tableB兩個表,被外鍵約束修飾的欄位為tableB中的deptId,主鍵欄位為tableA中的id
1.2.3:非空約束
NOT NULL. 被該約束修飾了的欄位,就不能為空,主鍵約束中就包括了這個約束
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);
1.2.4:唯一約束
UNIQUE 被唯一約束修飾了的欄位,表示該欄位中的值唯一,不能有相同的值,通俗點講,就好比插入兩條記錄,這兩條記錄中處於該欄位的值不能是一樣的。
CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);
也就是說在插入的記錄中,每條記錄的name值不能是一樣的。
1.2.5:默認約束
Default 指定這一列的默認值為多少,比如,男性同學比較多,性別就可以設置為默認男,如果插入一行記錄時,性別沒有填,那麼就默認加上男
CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);
1.2.6:自動增加
AUTO_INCREMENT 一個表只能一個欄位使用AUTO_INCREMENT,並且使用這個約束的欄位只能是整數類型(任意的整數類型 TINYINT,SMALLIN,INT,BIGINT),默認值是1,也就是說從1開始增加的。一般就是給主鍵使用的,自動增加,使每個主鍵的值度不一樣,並且不用我們自己管理,讓主鍵自己自動生成
CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );
2、查詢表結構
2.1、查看錶基本結構語句
格式1:DESCRIBE 表名/DESC 表名這兩個的功能是一樣的,簡寫了單詞describe
DESCRIBEstudent;
2.2、查看創建表的語句
格式:SHOW CREATE TABLE 表名
SHOW CREATE TABLE student;
這樣顯示的格式很不好,看不清楚,所以有了下面這個語句
格式:SHOW CREATE TABLE 表名\G
SHOW CREATE TABLE student\G;
3、修改數據表
修改數據表包括:對表中欄位的增加、刪除、修改。 在這個裡面用的關鍵字為 ALTER
3.1、修改表名
格式:ALTER TABLE<舊表名> RENAME[TO]<新表名>;
將student表名改為student1(改完後在改回來)
ALTER TABLE student RENAME TO student1;
3.2、修改表中的欄位名
格式:ALTER TABLE<表名> CHANGE<舊欄位名><新欄位名><新數據類型>
將student表中的name欄位名改為 username
ALTER TABLE student CHANGE name username VARCHAR(30);
3.3、修改表中的數據類型
格式:ALTER TABLE<表名> MODIFY<欄位名><數據類型>
ALTER TABLE student MODIFY username VARCHAR(20);
解釋:只能修改欄位名的數據類型,但是其原理跟上面change做的事情一樣,這里也有修改欄位名的過程,只不過修改後的欄位名和修改前的欄位名相同,但是數據類型不一樣。
3.4、修改欄位的排列位置
方式1:ALTER TABLE<表名> MODIFY<欄位1><數據類型> FIRST|AFTER<欄位2>
解釋:將欄位1的位置放到第一,或者放到指定欄位2的後面
ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;
方式2:ALTER TABLE<表名> CHANGE<欄位1><欄位2><數據類型> FIRST|AFTER<欄位3>
解釋:其實是一樣的,將是欄位2覆蓋欄位1,然後在進行排序
ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;
總結
CHANGE和MODIFY的區別?
原理都市一樣的,MODIFY只能修改數據類型,但是CHANGE能夠修改數據類型和欄位名,也就是說MODIFY是CHANGE的更具體化的一個操作。可能覺得用CHANGE只改變一個數據類型不太爽,就增加了一個能直接改數據類型的使用關鍵字MODIFY來操作。
3.5、添加欄位
格式:ALTER TABLE<表名稱> ADD<新欄位名><數據類型>[約束條件][FIRST|AFTER<已存在的表名>]
解釋:在一個特定位置增加一個新的欄位,如果不指定位置,默認是最後一個。
ALTER TABLE student ADD sex VARCHAR(11);
3.6、刪除欄位
格式:ALTER TABLE<表名稱> DROP<欄位名>;
ALTER TABLE student DROP sex;
3.7、刪除表的外鍵約束
格式:ALTER TABLE<表名稱> DROP FOREIGN KEY<外鍵約束名>
注意:外鍵約束名 指的不是被外鍵約束修飾的欄位名,切記,而是我們在創建外鍵約束關系時取的名字。
3.8、更改表的存儲引擎
格式:ALTER TABLE<表名> ENGINE=<更改後的存儲引擎名>
這個存儲引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點就不清楚了,所以打算留到日後在說。
4、刪除表
4.1、刪除無關聯表
格式:DROP TABLE<表名>;
ALTER TABLE student;
4.2、刪除被其他表關聯的主表
這個是比較重要的一點,在有外鍵關聯關系的兩張表中,如果刪除主表,那麼是刪不掉的,並且會報錯。因為有張表依賴於他。那怎麼辦呢?針對這種情況,總共有兩種方法
1、先刪除你子表,然後在刪除父表,這樣就達到了刪除父表的目的,但是子表也要被刪除
2、先解除外鍵關系,然後在刪除父表,這樣也能達到目的,並且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關系。
⑼ 如何學好MYSQL資料庫呢
1、從最簡單的Access(文件型資料庫)開始吧,軟體網上有下載,首先基礎的概念必須掌握,比如什麼叫表、什麼叫主鍵。。。。。。
2、根據教材上的示例自己建幾個簡單的庫,熟悉各種操作。
3、學習SQL語句,掌握查詢的用法。
4、做更多的實例加深理解,掌握學到的東西。
5、學習SQLserver掌握試圖、存儲過程、觸發器、游標等用法,掌握關系型資料庫的基本操作。
6、深入學習大型資料庫的知識,熟練復雜SQL語句的書寫。
7、根據需要再掌握Oracle、DB2等大型資料庫。有了前面的基礎,不論學習什麼品牌的資料庫都會比較容易上手。