MySQL基礎(chǔ)學(xué)習(xí)--見面如初

? ? 好久不見诬烹,未曾想念砸烦。今天來聊聊數(shù)據(jù)庫基礎(chǔ)的學(xué)習(xí),以MySQL數(shù)據(jù)庫為對象绞吁,記錄其概念與語法幢痘。

? ? 數(shù)據(jù)庫,顧名思義掀泳,即用于存儲數(shù)據(jù)的倉庫雪隧。世面上主要的關(guān)系型數(shù)據(jù)庫有MySQL西轩、Oracle员舵、sql server、db2藕畔、sqlite马僻,其數(shù)據(jù)以表格形式存放。如今也有不基于SQL(結(jié)構(gòu)化查詢語言)的NoSQL數(shù)據(jù)庫注服,即not only sql韭邓,其中包括鍵值(Key-Value)存儲的數(shù)據(jù)庫,列存儲數(shù)據(jù)庫溶弟,文檔型數(shù)據(jù)庫等女淑。這些并不是今天的主角,接下來就讓我們把聚光燈打到主角MySQL的方位辜御。

? ? MySQL是一個開源免費的數(shù)據(jù)庫鸭你,也因此是互聯(lián)網(wǎng)領(lǐng)域最常用的數(shù)據(jù)庫。2008年sun公司以10億美金收購了MySQL擒权,而一年后袱巨,sun又被Oracle收購。這樣一來碳抄,也就存在一個問題愉老,即MySQL被Oracle收購后,存在閉源風(fēng)險剖效。各大開源社區(qū)漸漸不再支持MySQL嫉入,而轉(zhuǎn)向支持Mariadb的開發(fā)。而Mariadb是何許人也呢璧尸?它是MySQL聯(lián)合創(chuàng)始人Monty Widenius提供的MySQL分支咒林。據(jù)知情人士透露,阿里投資Mariadb將近3000萬逗宁,并將自己開發(fā)的數(shù)據(jù)庫新功能映九,免費貢獻給Mariadb。

? ? 了解了MySQL的發(fā)展歷程后瞎颗,我們記錄一下MySQL命令行客戶端的使用件甥。

? ? 1捌议、連接登錄本機MySQL服務(wù)器:mysql -uroot -p ∫校回車后瓣颅,在命令行輸入密碼即可進入服務(wù)器。

? ? 2譬正、退出客戶端宫补,斷開與服務(wù)器的連接使用exit或者\q命令。

? ? 3曾我、顯示數(shù)據(jù)庫列表可以使用show databases或者show schemas粉怕。而要進入數(shù)據(jù)庫則使用use 數(shù)據(jù)庫名,顯示數(shù)據(jù)庫中包含的列表使用show tables命令抒巢。

? ? 4贫贝、MySQL用戶由“用戶名+IP地址”來標識,故用戶可用create user '用戶名'@'ip地址' identified by '密碼' 命令來創(chuàng)建蛉谜。創(chuàng)好用戶后稚晚,給用戶授予全部權(quán)限grant all privileges on *.* to '用戶名'@'ip地址'。刪除用戶則用戶則使用drop user '用戶名'@'ip地址'型诚。

? ? 5客燕、MySQL對數(shù)據(jù)庫進行管理,常用的有以下幾類狰贯。在創(chuàng)建數(shù)據(jù)庫時指定數(shù)據(jù)庫編碼:create database 庫名 charset=utf8也搓。相應(yīng)的對數(shù)據(jù)庫的修改也就只能修改它的默認字符編碼,如alter database 庫名 charset gbk暮现。刪除庫則較為簡單还绘,只需drop database 庫名,就以刪除栖袋。但是一旦刪除拍顷,會將改庫中的所有數(shù)據(jù)表刪除,且不可恢復(fù)塘幅。

? ? 6昔案、對于數(shù)據(jù)表來說,創(chuàng)建表時电媳,除了要確定字段以外踏揣,還需要確定數(shù)據(jù)庫存儲引擎和字符集。若表的字符集不明確標定匾乓,將隨數(shù)據(jù)庫的字符集捞稿。除對數(shù)據(jù)表的創(chuàng)建刪除以外,更應(yīng)該注意對數(shù)據(jù)表的修改。

? ? 截斷表可理解為重建表娱局,會先刪除數(shù)據(jù)表彰亥,而后重新創(chuàng)建一個和原來字段相同的表,只是表格中的具體數(shù)據(jù)會被清空衰齐,也是不可恢復(fù)的任斋。截斷表的命令為:truncate table 表名。若要修改表名耻涛,使用rename table 舊表名 to 新表名废酷。而修改表的參數(shù)(存儲引擎,編碼)使用alter table 表名? engine=myisam? charset=gbk抹缕。

? ? 7澈蟆、關(guān)于字段的操作,主要明白幾個關(guān)鍵的字就行歉嗓。添加字段會使用到add丰介,以及在指定位置時會使用到first和after背蟆。若要修改字段名和字段類型鉴分,則會使用到change和modify,將其與after和first結(jié)合則可以用來修改字段在表中的位置带膀。刪除字段則需要用drop column 字段名來實現(xiàn)志珍。

? ? 8、在一個表中垛叨,字段的字節(jié)量總合不超過65535個字節(jié)伦糯。字段的字節(jié)量則由修飾字段的類型決定。只要字段中有一個字段允許取null嗽元,則總字節(jié)量中需分配一個字節(jié)來給null值敛纲。

? ? 在MySQL里,數(shù)據(jù)類型有:tinyint占1個字節(jié); smallint 占2個字節(jié); int 占4個字節(jié); bigint 占8個字節(jié); float 占4個字節(jié); double 占8個字節(jié); decimal/numeric【定點浮點數(shù)剂癌,可以做精確運算淤翔,如decimal(6,2)則表示整數(shù)4位佩谷,小數(shù)2位旁壮,整數(shù)超出范圍則報錯,小數(shù)超出范圍則四舍五入】; char(n)【定長字符串谐檀,超出長度抡谐,可能報錯也可能會截斷,若長度不足桐猬,自動補空格麦撵。其最長可表示255個字節(jié),因其為定長字符串,在使用時不用另外去確定其長度免胃,故效率更高】; varchar(n)【變長字符串五垮,在修飾的字符串取值最大長度小于等于255字節(jié)時,前面需要有一個字節(jié)來表示該字符串的長度杜秸。若字符串取值最大長度超過255個字節(jié)時放仗,前面需要使用兩個字節(jié)來表示長度。由于單表字段的總字節(jié)量在65535個字節(jié)撬碟,則varchar(n)最大表示范圍是65535個字節(jié)诞挨,而n的取值則由具體字符集編碼確定(gbk中中文占兩個字節(jié),utf8中中文占3個字節(jié))呢蛤。一般情況下我們會使用varchar保存255字節(jié)以內(nèi)的字符串】; text【可表示65535個字節(jié)惶傻,但只占用表總字節(jié)量的10個字節(jié)乘瓤,故在保存大篇幅文檔時谆扎,可選擇text數(shù)據(jù)類型】;blob【超大對象數(shù)據(jù)類型,使用時需要用流來讀寫blob字段數(shù)據(jù)稻轨。但是通常不會用來保存文本励翼◎诟遥】; 還有一類表示時間日期的數(shù)據(jù)類型【datatime(年月日時分秒),date(年月日)汽抚,time(時分秒)抓狭,timestamp(時間戳,也表示年月日時分秒造烁,但最大只能表示2038年否过。在修改一行數(shù)據(jù)時,第一個timestamp字段會自動更新為系統(tǒng)的當(dāng)前時間惭蟋。且不能取null值苗桂,一旦填入null,會自動填入系統(tǒng)當(dāng)前時間告组。故無特殊要求煤伟,一般不用。)】惹谐。

? ? 9持偏、在數(shù)據(jù)庫存儲引擎方面,常用的有innodb和myisam氨肌。innodb是一種默認推薦引擎鸿秆,支持事務(wù)和外鍵。提供了行級鎖怎囚,在一個用戶對表中某一行進行操作時卿叽,不允許其他用戶對此行進行操作桥胞,但是不影響其他用戶對表中其他行進行操作。其生成的表文件中考婴,表名.frm用于保存表的結(jié)構(gòu)贩虾,表名.ibd則保存數(shù)據(jù)和索引。

? ? myisam存儲引擎則不支持事務(wù)和外鍵沥阱,提供的是表級的鎖缎罢,但這也成就了其數(shù)據(jù)訪問效率更高。在生成的表文件中考杉,表名.frm保存表結(jié)構(gòu)策精,表名.MYD保存數(shù)據(jù),表名.MYI保存索引數(shù)據(jù)崇棠。除了innodb和myisam咽袜,也還存在其他數(shù)據(jù)庫存儲引擎,例如memory內(nèi)存表等枕稀。

? ? MySQL君询刹,初次見面,請多多關(guān)照萎坷!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凹联,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子食铐,更是在濱河造成了極大的恐慌匕垫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虐呻,死亡現(xiàn)場離奇詭異,居然都是意外死亡寞秃,警方通過查閱死者的電腦和手機斟叼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來春寿,“玉大人朗涩,你說我怎么就攤上這事“蟾模” “怎么了谢床?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厘线。 經(jīng)常有香客問我识腿,道長,這世上最難降的妖魔是什么造壮? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任渡讼,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘成箫。我一直安慰自己展箱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布蹬昌。 她就那樣靜靜地躺著混驰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪皂贩。 梳的紋絲不亂的頭發(fā)上账胧,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音先紫,去河邊找鬼治泥。 笑死,一個胖子當(dāng)著我的面吹牛遮精,可吹牛的內(nèi)容都是我干的居夹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼本冲,長吁一口氣:“原來是場噩夢啊……” “哼准脂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起檬洞,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤狸膏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后添怔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湾戳,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年广料,在試婚紗的時候發(fā)現(xiàn)自己被綠了砾脑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡艾杏,死狀恐怖韧衣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情购桑,我是刑警寧澤畅铭,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站勃蜘,受9級特大地震影響硕噩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜元旬,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一榴徐、第九天 我趴在偏房一處隱蔽的房頂上張望守问。 院中可真熱鬧,春花似錦坑资、人聲如沸耗帕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仿便。三九已至,卻和暖如春攒巍,著一層夾襖步出監(jiān)牢的瞬間嗽仪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工柒莉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闻坚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓兢孝,卻偏偏與公主長得像窿凤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子跨蟹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容