MySQL學(xué)習(xí)第一天 第一次接觸MySQL
一、什么是數(shù)據(jù)庫?
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫,每個(gè)數(shù)據(jù)庫都有一個(gè)或多個(gè)不同的API用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù)。
我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢。所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲(chǔ)和管理的大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。
RDBMS即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System)的特點(diǎn):
1)數(shù)據(jù)以表格的形式出現(xiàn)
2)每行為各種記錄名稱
3)每列為記錄名稱所對(duì)應(yīng)的數(shù)據(jù)域
4)許多的行和列組成一張表單
5)若干的表單組成database
二、關(guān)系型數(shù)據(jù)庫(RDBMS)術(shù)語
針對(duì)關(guān)系型數(shù)據(jù)庫作如下解釋:
1)關(guān)系型數(shù)據(jù)庫可以簡(jiǎn)單的理解為二維數(shù)據(jù)庫,表格式類似于excel表格,我們平時(shí)我接觸的數(shù)據(jù)據(jù),一般都是關(guān)系型數(shù)據(jù)庫。
2)關(guān)系型數(shù)據(jù)庫不是唯一的高級(jí)數(shù)據(jù)庫模型,也不是最優(yōu)的一種,但是,關(guān)系型數(shù)據(jù)庫是現(xiàn)今使用最廣泛、最易于理解和使用的數(shù)據(jù)庫模型。
3)在我們開始學(xué)習(xí)MySQL數(shù)據(jù)庫前,讓我們先了解下RDBMS的一些術(shù)語:
1數(shù)據(jù)庫: 數(shù)據(jù)庫是一些關(guān)聯(lián)表的集合。
2數(shù)據(jù)表: 表是數(shù)據(jù)的矩陣。在一個(gè)數(shù)據(jù)庫中的表看起來像一個(gè)簡(jiǎn)單的電子表格。
3關(guān)系:可以理解成一張二維表,每個(gè)關(guān)系都有一個(gè)關(guān)系名,即表名。
4關(guān)系模式:對(duì)關(guān)系的描述,在數(shù)據(jù)庫中通常稱之為表結(jié)構(gòu)。
5元組:可以理解成二維表中的一行,在數(shù)據(jù)庫中常被稱作記錄。一行(=元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶訂閱的數(shù)據(jù)。
6屬性:可以理解成二維表中的一列,在數(shù)據(jù)庫中常被成為字段。一列(數(shù)據(jù)元素) 包含了相同的數(shù)據(jù), 例如郵政編碼的數(shù)據(jù)。
7域:屬性的取值范圍,也是數(shù)據(jù)庫中某一列的取值限制。
8關(guān)鍵字:一組可以唯一標(biāo)識(shí)元組的屬性。數(shù)據(jù)庫中常稱為主鍵有一個(gè)或多個(gè)列組成。
9冗余:存儲(chǔ)兩倍數(shù)據(jù),冗余可以使系統(tǒng)速度更快。
10主鍵:主鍵是唯一的。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵。你可以使用主鍵來查詢數(shù)據(jù)。
11外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表。
12復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵,一般用于復(fù)合索引。
13索引:使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。索引是對(duì)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。類似于書籍的目錄。
14參照完整性: 參照的完整性要求關(guān)系中不允許引用不存在的實(shí)體。與實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,目的是保證數(shù)據(jù)的一致性。
4)關(guān)系型數(shù)據(jù)庫特點(diǎn):
1容易理解:二維表結(jié)構(gòu)是非常貼近邏輯世界的一個(gè)概念,相對(duì)與網(wǎng)狀、層次以及其它模型更容易理解。
2使用方便:通過SQL語言程序員和數(shù)據(jù)管理員可以很方便的在邏輯層面操作數(shù)據(jù)庫而不必理解其底層實(shí)現(xiàn)。
3易于維護(hù):豐富的完整性(實(shí)體完整性、參照完整性、用戶自定義完整性)降低數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率。
5)關(guān)系操作:
1數(shù)據(jù)查詢:選擇、投影、連接、并、交、差、除
2數(shù)據(jù)操作:增加、刪除、修改、查詢
6)SQL(Structured Query Language):結(jié)構(gòu)化查詢語言,一種特殊目的的編程語言,數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存儲(chǔ)數(shù)據(jù)以及查詢、更新和管理關(guān)系型數(shù)據(jù)庫。
SQL查詢語言組成部分:
1DDL(Data Definition Languages)語句:數(shù)據(jù)定義語句,用于定義不同的數(shù)據(jù)段、數(shù)據(jù)庫、表、列、索引等數(shù)據(jù)庫的對(duì)象定義。常用關(guān)鍵字主要包括create、drop、alter等。
2DML(Data Manipulation Language)語句:數(shù)據(jù)操縱語句,用于添加、刪除、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)
據(jù)完整性。常用關(guān)鍵字包括insert、delete、update和select等。
3DCL(Data Control Language)語句:數(shù)據(jù)控制語句,用于控制不同數(shù)據(jù)段直接的許可和訪問級(jí)別的語句,用于
定義數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和安全級(jí)別。常用關(guān)鍵字有g(shù)rant、revoke等。
三、MySQL數(shù)據(jù)庫
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。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)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(liá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)境。
四、MySQL的特點(diǎn)
1)Mysql是開源的,所以你不需要支付額外的費(fèi)用。
2)Mysql支持大型的數(shù)據(jù)庫。可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
3)MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形式。
4)Mysql可以允許于多個(gè)系統(tǒng)上,并且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
5)Mysql對(duì)PHP有很好的支持,PHP是目前最流行的Web開發(fā)語言。
6)MySQL支持大型數(shù)據(jù)庫,支持5000萬條記錄的數(shù)據(jù)倉庫,32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)支持最大的表文件為8TB。
7)Mysql是可以定制的,采用了GPL協(xié)議,你可以修改源碼來開發(fā)自己的Mysql系統(tǒng)。
五、MySQL系統(tǒng)特性
1)使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證了源代碼的可移植性。
2)支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。
3)為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby、.NET和Tcl 等。
4)支持多線程,充分利用 CPU 資源。
5)優(yōu)化的 SQL查詢算法,有效地提高查詢速度。
6)既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中。
7)提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。
8)提供 TCP/IP、ODBC 和 JDBC等多種數(shù)據(jù)庫連接途徑。
9)提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。
10)支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。
11)支持多種存儲(chǔ)引擎。
12)在線 DDL/更改功能,數(shù)據(jù)架構(gòu)支持動(dòng)態(tài)應(yīng)用程序和開發(fā)人員靈活性(5.6新增)。
13)復(fù)制全局事務(wù)標(biāo)識(shí),可支持自我修復(fù)式集群(5.6新增)。
14)復(fù)制無崩潰從機(jī),可提高可用性(5.6新增)。
15)復(fù)制多線程從機(jī),可提高性能(5.6新增)。
六、MySQL數(shù)據(jù)庫實(shí)現(xiàn)模型
MySQL的核心組件(參照上圖)
1)連接池:用于完成用戶認(rèn)證、線程重用、并發(fā)連接數(shù)限制、內(nèi)存檢測(cè)以及連接緩存。
2)SQL接口:使用SQL結(jié)構(gòu)查詢語言對(duì)數(shù)據(jù)庫就行操作的接口(DDL DML等)
3)Parser:分析器,用來進(jìn)行查詢轉(zhuǎn)換、權(quán)限分析獲取的操作。
4)Optimizer:優(yōu)化器,生成并選擇最佳的訪問路徑。
5)Cache & Buffers:與存儲(chǔ)引擎相關(guān)的I/O性能提升工具。
6)存儲(chǔ)引擎(真正執(zhí)行數(shù)據(jù)查詢操作的工具M(jìn)yISAM、InnoDB、NDB、Archive、Federated、Memory、Merge、Partner、Community、Custom等等)。
有了這篇文章做基礎(chǔ),相信大家對(duì)MySQL已經(jīng)不再陌生了吧,接下來小編就和大家深入的學(xué)習(xí)MySQL,享受MySQL帶來樂趣。
- php+mysql 實(shí)現(xiàn)身份驗(yàn)證代碼
- MySQL驗(yàn)證用戶權(quán)限的方法
- PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程
- MySQL中數(shù)據(jù)類型的驗(yàn)證
- php+MySQL實(shí)現(xiàn)登錄時(shí)驗(yàn)證登錄名和密碼是否正確
- win7下MySql 5.7安裝配置方法圖文教程
- mysql 5.7.30安裝配置方法圖文教程
- MySQL安裝配置方法教程
- MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64
- MySQL學(xué)習(xí)第三天 Windows 64位操作系統(tǒng)下驗(yàn)證MySQL
相關(guān)文章
對(duì)MySql經(jīng)常使用語句的全面總結(jié)(必看篇)
下面小編就為大家?guī)硪黄獙?duì)MySql經(jīng)常使用語句的全面總結(jié)(必看篇)。小編覺的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03mysql配置模板(my-*.cnf)參數(shù)詳細(xì)說明
這篇文章主要介紹了mysql配置模板就是mysql的配置文件參數(shù)說明,需要的朋友可以參考下2015-01-01MySQL幾點(diǎn)重要的性能指標(biāo)計(jì)算和優(yōu)化方法總結(jié)
下面小編就為大家?guī)硪黄狹ySQL幾點(diǎn)重要的性能指標(biāo)計(jì)算和優(yōu)化方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03SQL數(shù)據(jù)分表Mybatis?Plus動(dòng)態(tài)表名優(yōu)方案
這篇文章主要介紹了SQL數(shù)據(jù)分表Mybatis?Plus動(dòng)態(tài)表名優(yōu)方案,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08MySQL?中如何歸檔數(shù)據(jù)的實(shí)現(xiàn)方法
本文主要介紹了MySQL?中如何歸檔數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03MySQL給新建用戶并賦予權(quán)限最簡(jiǎn)單的方法
在本篇文章里小編給大家整理的是一篇關(guān)于MySQL給新建用戶并賦予權(quán)限最簡(jiǎn)單的方法,需要的朋友們參考下。2019-11-11