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