MySql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)總結(jié)
本文實(shí)例講述了MySql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)點(diǎn)。分享給大家供大家參考,具體如下:
-
數(shù)據(jù)庫(kù)基本操作
1)創(chuàng)建數(shù)據(jù)庫(kù)
基本語(yǔ)法: create database
數(shù)據(jù)庫(kù)名稱(chēng)
;
創(chuàng)建應(yīng)該名稱(chēng)為itcast的數(shù)據(jù)庫(kù)。sql語(yǔ)法如下:``create database ` itcast `;``
需要主要的是,為了避免用戶(hù)自定義的名稱(chēng)與系統(tǒng)命令沖突,最好使用反引號(hào)(``)包括數(shù)據(jù)庫(kù)名稱(chēng)/字段名稱(chēng)和數(shù)據(jù)表名稱(chēng)
如果創(chuàng)建數(shù)據(jù)庫(kù)存在,則程序會(huì)報(bào)錯(cuò),為了防止此情況發(fā)生,再創(chuàng)建數(shù)據(jù)庫(kù)可以使用“if not exists”,語(yǔ)法如下:recate database if not exists `itcast` //這段語(yǔ)句表示若數(shù)據(jù)庫(kù)中不存在名稱(chēng)為itcast數(shù)據(jù)庫(kù)時(shí),創(chuàng)建該數(shù)據(jù)庫(kù),否則不執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)itcast的操作
2)查看數(shù)據(jù)庫(kù)
再完成創(chuàng)建數(shù)據(jù)庫(kù)后,若要查看數(shù)據(jù)庫(kù)的信息,可以使用該語(yǔ)句
``show caeate database 數(shù)據(jù)庫(kù)名稱(chēng)``
查看MySql數(shù)據(jù)庫(kù)服務(wù)器已經(jīng)存在的數(shù)據(jù)庫(kù)
``show databases``
3)選擇數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)服務(wù)器可能存在多個(gè)數(shù)據(jù),選擇數(shù)據(jù)庫(kù)的命令語(yǔ)法:
`` use 數(shù)據(jù)庫(kù)名稱(chēng) ``
4)刪除數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)的刪除操作不僅會(huì)刪除里面的數(shù)據(jù),還會(huì)回收原來(lái)分配的存儲(chǔ)空間
``drop database 數(shù)據(jù)庫(kù)名稱(chēng)``
在使用“drop database” 命令刪除數(shù)據(jù)庫(kù)時(shí),若刪除數(shù)據(jù)庫(kù)不存在,MySql服務(wù)器會(huì)報(bào)錯(cuò),因此,可以再刪除數(shù)據(jù)庫(kù)時(shí),使用“if existe”
``drop database if exists `itcase` //若刪除MySql數(shù)據(jù)庫(kù)服務(wù)器中存在數(shù)據(jù)庫(kù)itcase,則刪除該數(shù)據(jù)庫(kù),否則不執(zhí)行刪除 數(shù)據(jù)庫(kù)itcasse的操作``
-
數(shù)據(jù)類(lèi)型
數(shù)據(jù)表在創(chuàng)建時(shí),需為每個(gè)字段選擇數(shù)據(jù)類(lèi)型,而數(shù)據(jù)類(lèi)型的選擇則決定著數(shù)據(jù)的存儲(chǔ)格式,有效范圍和對(duì)應(yīng)的限制
mysql提供了多種數(shù)據(jù)類(lèi)型,主要分為3類(lèi)
-
數(shù)值類(lèi)型
-
字符串類(lèi)型
-
日期與時(shí)間類(lèi)型
1)數(shù)值類(lèi)型
MySql提供了很多數(shù)值類(lèi)型,大體分為整數(shù)類(lèi)型和浮點(diǎn)類(lèi)型
整數(shù)類(lèi)型根據(jù)取值范圍分為int,smallint等,
浮點(diǎn)類(lèi)型又分為float,declmal等。整數(shù)類(lèi)型
浮點(diǎn)類(lèi)型
decimal類(lèi)型的有效取值范圍是有M和D決定。其中,M和D決定。其中,M表示數(shù)據(jù)長(zhǎng)度,D表示小數(shù)點(diǎn)后的長(zhǎng)度。例如,數(shù)據(jù)類(lèi)型設(shè)為 DECIMAL(4,1),將 3.1415926插入到數(shù)據(jù)庫(kù)后,顯示的結(jié)果為 3.1。
字符串類(lèi)型
項(xiàng)目開(kāi)發(fā)時(shí),需要存儲(chǔ)的數(shù)據(jù)多數(shù)是字符串格式的,因此 MySQL 提供了許多用于存儲(chǔ)字符串的數(shù)據(jù)類(lèi)型。
BLOB和TEXT都是用于存儲(chǔ)大量數(shù)據(jù)的,但二者的區(qū)別在于,對(duì)于存儲(chǔ)的數(shù)據(jù)進(jìn)行排序和比較時(shí),BLOB是區(qū)分大小寫(xiě)的,而TEXT是不區(qū)分大小寫(xiě)的日期與時(shí)間類(lèi)型
為方便在數(shù)據(jù)庫(kù)中存儲(chǔ)日期和時(shí)間,MySQL 提供了幾種相關(guān)的數(shù)據(jù)類(lèi)型,這些數(shù)據(jù)類(lèi)型可以根據(jù)實(shí)際開(kāi)發(fā)靈活選擇。
2)存儲(chǔ)類(lèi)型
在數(shù)據(jù)庫(kù)中,數(shù)據(jù)表設(shè)計(jì)的是否合理直接影響著數(shù)據(jù)庫(kù)的功效,而在設(shè)計(jì)數(shù)據(jù)表時(shí)存儲(chǔ)引擎的選擇,則決定著數(shù)據(jù)表具有哪些功能。接下來(lái)將對(duì) MySQL 常用存儲(chǔ)引擎及其作用進(jìn)行介紹。
-
InnoDB 存儲(chǔ)引擎
-
MyISAM 存儲(chǔ)引擎
-
MEMORY 存儲(chǔ)引擎
-
ARCHIVE 存儲(chǔ)引擎
InnoDB 引擎
InnoDB 存儲(chǔ)引擎自 MySQL 5.5 版本起被指定為默認(rèn)的存儲(chǔ)引擎,用于完成事務(wù)、回滾、崩潰修復(fù)和多版本并發(fā)控制的事務(wù)安全處理。同時(shí)也是 MySQL中第一個(gè)提供外鍵約束的表引擎,尤其對(duì)事務(wù)處理的能力,是 MySQL 其他存儲(chǔ)引擎所無(wú)法與之比擬的。
InnoDB 的優(yōu)勢(shì)在于提供了良好的事務(wù)管理、崩潰修復(fù)能力和并發(fā)控制。
MyISAM 存儲(chǔ)引擎
MyISAM 存儲(chǔ)引擎是基于 ISAM 存儲(chǔ)引擎發(fā)展起來(lái)的,它不僅解決了 ISAM的很多不足,還增加了很多有用的擴(kuò)展。
其中,對(duì)于使用 MyISAM 存儲(chǔ)引擎的數(shù)據(jù)表,會(huì)被存儲(chǔ)成3個(gè)文件,文件名與表名相同,文件擴(kuò)展名分別為 frm、myd 和 myi。
相比 InnoDB ,MyISAM 的優(yōu)點(diǎn)是處理速度快;缺點(diǎn)是不支持事務(wù)處理等MEMORY 存儲(chǔ)引擎
MEMORY存儲(chǔ)引擎,是MySQL中的一類(lèi)特殊的存儲(chǔ)引擎。在MEMORY存儲(chǔ)引擎的表中,所有數(shù)據(jù)都保存在內(nèi)存中,因此數(shù)據(jù)的處理速度快,但不能持久保存(程序出錯(cuò)或關(guān)機(jī)時(shí)會(huì)丟失數(shù)據(jù)),而且不能存儲(chǔ)太大的數(shù)據(jù)。對(duì)于需要很快的讀寫(xiě)速度,但數(shù)據(jù)量小、不需要持久保存的數(shù)據(jù)來(lái)說(shuō),MEMORY存儲(chǔ)引擎是一個(gè)理想的選擇。
ARCHIVE 存儲(chǔ)類(lèi)型
ARCHIVE 存儲(chǔ)引擎適合保存數(shù)量龐大、長(zhǎng)期維護(hù)但很少被訪問(wèn)的數(shù)據(jù)。對(duì)于使用 ARCHIVE 存儲(chǔ)引擎的數(shù)據(jù)表,數(shù)據(jù)存儲(chǔ)時(shí)會(huì)利用 zlib 壓縮庫(kù)進(jìn)行壓縮,在記錄被請(qǐng)求時(shí)會(huì)實(shí)時(shí)進(jìn)行解壓。需要注意的是,ARCHIVE 存儲(chǔ)引擎僅僅支持查詢(xún)和插入操作,且由于不支持?jǐn)?shù)據(jù)索引,查詢(xún)效率比較低。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL查詢(xún)技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)
這篇文章主要介紹了MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié),文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06使用limit,offset分頁(yè)場(chǎng)景時(shí)為什么會(huì)慢
這篇文章主要介紹了使用limit,offset分頁(yè)場(chǎng)景時(shí)為什么會(huì)慢,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11MySQL8.0數(shù)據(jù)庫(kù)開(kāi)窗函數(shù)圖文詳解
開(kāi)窗函數(shù)為將要被操作的行的集合定義一個(gè)窗口,它對(duì)一組值進(jìn)行操作,不需要使用GROUP BY子句對(duì)數(shù)據(jù)進(jìn)行分組,能夠在同一行中同時(shí)返回基礎(chǔ)行的列和聚合列,這篇文章主要給大家介紹了關(guān)于MySQL8.0數(shù)據(jù)庫(kù)開(kāi)窗函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-06-06MySQL無(wú)GROUP BY直接HAVING返回空的問(wèn)題分析
這篇文章主要介紹了MySQL無(wú)GROUP BY直接HAVING返回空的問(wèn)題分析,學(xué)習(xí)MYSQL需要注意這個(gè)問(wèn)題2013-11-11MySQL常見(jiàn)錯(cuò)誤有哪些_MySQL常見(jiàn)錯(cuò)誤的快速解決方法
MySQL常見(jiàn)錯(cuò)誤有哪些呢?下面小編就為大家?guī)?lái)一篇MySQL常見(jiàn)錯(cuò)誤的快速解決方法?,F(xiàn)在分享個(gè)大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03解決修改mysql的data_dir所引發(fā)的錯(cuò)誤問(wèn)題
本文給大家分享解決修改mysql的data_dir所引發(fā)的錯(cuò)誤問(wèn)題,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友參考下吧2017-04-04記一次mysql5.7測(cè)試數(shù)據(jù)庫(kù)被刪表的問(wèn)題
這篇文章主要介紹了記一次mysql5.7測(cè)試數(shù)據(jù)庫(kù)被刪表的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11[MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog
這篇文章主要介紹了mysql徹底解析Mixed日志格式的binlog,需要的朋友可以參考下2014-02-02