欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL?數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)

 更新時(shí)間:2022年01月24日 15:46:06   作者:吞吞吐吐大魔王  
這篇文章主要介紹了MySQL?數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),它是一類(lèi)更具體的可以管理數(shù)據(jù)的軟件。但是實(shí)現(xiàn)數(shù)據(jù)庫(kù)的這個(gè)軟件,需要用到很多的數(shù)據(jù)結(jié)構(gòu),下面來(lái)看看文章是怎么具體介紹這個(gè)數(shù)據(jù)庫(kù)的

1. 認(rèn)識(shí)數(shù)據(jù)庫(kù)

1.1 數(shù)據(jù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)的關(guān)系

數(shù)據(jù)結(jié)構(gòu):

是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,是一個(gè)抽象的學(xué)科

我們熟知的數(shù)據(jù)結(jié)構(gòu)有:

順序表、鏈表、棧、隊(duì)列、二叉樹(shù)、哈希表…

數(shù)據(jù)庫(kù):

和數(shù)據(jù)結(jié)構(gòu)不同,它是一類(lèi)更具體的可以管理數(shù)據(jù)的軟件。但是實(shí)現(xiàn)數(shù)據(jù)庫(kù)的這個(gè)軟件,需要用到很多的數(shù)據(jù)結(jié)構(gòu)

而使用數(shù)據(jù)庫(kù)管理數(shù)據(jù)具體的功能就包括:

  • 描述:描述一條數(shù)據(jù)如何表示
  • 組織:如何將很多數(shù)據(jù)進(jìn)行匯總

至于管理的目的就是:

為了增刪改查

1.2 為什么需要數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)要將數(shù)據(jù)進(jìn)行管理的前提就是將數(shù)據(jù)進(jìn)行存儲(chǔ)。但是存儲(chǔ)數(shù)據(jù)使用文件就可以了,為什么還要弄個(gè)數(shù)據(jù)庫(kù)呢?

因?yàn)槭褂梦募4鏀?shù)據(jù)有以下幾個(gè)缺點(diǎn):

  • 文件的安全性問(wèn)題
  • 文件不利于數(shù)據(jù)查詢(xún)和管理
  • 文件不利于存儲(chǔ)海量數(shù)據(jù)
  • 文件在程序中控制不方便

1.3 數(shù)據(jù)庫(kù)的存儲(chǔ)

當(dāng)下絕大部分計(jì)算機(jī)都遵守著馮諾依曼體系結(jié)構(gòu)

數(shù)據(jù)的存儲(chǔ)一般放在內(nèi)存儲(chǔ)器和外存儲(chǔ)器(外存儲(chǔ)器包括:硬盤(pán)、光盤(pán)、U盤(pán)、軟盤(pán)等,但這里指硬盤(pán))

數(shù)據(jù)庫(kù)是有多種的,并沒(méi)有統(tǒng)一規(guī)定所有數(shù)據(jù)庫(kù)存放的位置,但主要的數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)位置如下:

  • 大部分?jǐn)?shù)據(jù)庫(kù)是把數(shù)據(jù)組織在外存儲(chǔ)上,如:MySQL、Oracle、SQL Server
  • 少數(shù)數(shù)據(jù)庫(kù)是把數(shù)據(jù)組織到內(nèi)存上,如:Redis

補(bǔ)充: MySQL 為什么要把數(shù)據(jù)存儲(chǔ)在外存儲(chǔ)器(硬盤(pán))中呢?這里我們就要先了解下內(nèi)存和硬盤(pán)的區(qū)別

區(qū)別內(nèi)存外存(硬盤(pán))
1內(nèi)存的訪(fǎng)問(wèn)速度快硬盤(pán)的訪(fǎng)問(wèn)速度慢
2內(nèi)存的空間小硬盤(pán)的空間大
3內(nèi)存貴硬盤(pán)便宜
4如果掉電,內(nèi)存上的數(shù)據(jù)會(huì)丟失如果掉電,硬盤(pán)的數(shù)據(jù)不會(huì)丟失

 綜合以上2、3、4的區(qū)別,認(rèn)為 MySQL 使用硬盤(pán)來(lái)存儲(chǔ)數(shù)據(jù)更好

 

2. SQL

2.1 介紹

結(jié)構(gòu)化查詢(xún)語(yǔ)言(Structured Query Language)簡(jiǎn)稱(chēng) SQL,是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)

注意: SQL 和 MySQL 的區(qū)別

  • SQL 是一種編程語(yǔ)言
  • MySQL 是一種軟件,它屬于關(guān)系型數(shù)據(jù)庫(kù)的一種,而關(guān)系型數(shù)據(jù)庫(kù)都是支持 SQL 的,而非關(guān)系型數(shù)據(jù)庫(kù)有的支持,有的不支持 SQL

2.2 分類(lèi)

SQL 可以分為6部分:

  • 數(shù)據(jù)查詢(xún)語(yǔ)言(DQL): 其語(yǔ)句也稱(chēng)為“數(shù)據(jù)檢索語(yǔ)句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。
  • 數(shù)據(jù)操作語(yǔ)言(DML): 其語(yǔ)句包括動(dòng)詞 INSERTUPDATE DELETE。它們分別用于添加、修改和刪除。
  • 事務(wù)控制語(yǔ)言(TCL): 它的語(yǔ)句能確保被 DML 語(yǔ)句影響的表的所有行及時(shí)得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存點(diǎn))命令、ROLLBACK(回滾)命令。
  • 數(shù)據(jù)控制語(yǔ)言(DCL): 它的語(yǔ)句通過(guò) GRANT 或 REVOKE 實(shí)現(xiàn)權(quán)限控制,確定單個(gè)用戶(hù)和用戶(hù)組對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪(fǎng)問(wèn)。某些 RDBMS 可用 GRANT 或 REVOKE 控制對(duì)表單個(gè)列的訪(fǎng)問(wèn)。
  • 數(shù)據(jù)定義語(yǔ)言(DDL): 其語(yǔ)句包括動(dòng)詞 CREATE、ALTER 和 DROP。在數(shù)據(jù)庫(kù)中創(chuàng)建新表或修改、刪除表(CREATE TABLE 或 DROP TABLE)、為表加入索引等。
  • 指針控制語(yǔ)言(CCL): 它的語(yǔ)句,像 DECLARE CURSOR、FETCH INTO UPDATE WHERE CURRENT 用于對(duì)一個(gè)或多個(gè)表單獨(dú)行的操作。

3. 數(shù)據(jù)庫(kù)的類(lèi)別

數(shù)據(jù)庫(kù)大體可以分為:

  • 關(guān)系型數(shù)據(jù)庫(kù)
  • 非關(guān)系型數(shù)據(jù)庫(kù)

3.1 關(guān)系型數(shù)據(jù)庫(kù)

介紹:

  • 是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù)。簡(jiǎn)單來(lái)說(shuō),關(guān)系模型指的就是二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表格及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織
  • 關(guān)系型數(shù)據(jù)庫(kù)都基于標(biāo)準(zhǔn)的 SQL,只是內(nèi)部的一些實(shí)現(xiàn)有區(qū)別

常見(jiàn)關(guān)系型數(shù)據(jù)庫(kù):

Oracle:甲骨文產(chǎn)品,是數(shù)據(jù)庫(kù)中的王者。由于收費(fèi),且隨著數(shù)據(jù)量的增大對(duì)機(jī)器要求比較高,所以使用成本很高。適用于銀行這類(lèi)對(duì)數(shù)據(jù)的安全和服務(wù)要求很高且本身很有錢(qián)的公司
MySQL:被甲骨文收購(gòu),開(kāi)源免費(fèi)。現(xiàn)在很多公司普遍使用它
SQL Server:微軟產(chǎn)品,由于曾經(jīng)這個(gè)數(shù)據(jù)庫(kù)和 windows server 系統(tǒng)進(jìn)行了捆綁,而大多數(shù)服務(wù)器系統(tǒng)都是在 Linux 上,所以逐漸失去市場(chǎng)。如今可以支持 Linux

3.2 非關(guān)系型數(shù)據(jù)庫(kù)

介紹:

非關(guān)系型數(shù)據(jù)庫(kù)一般指 NoSQL,區(qū)別于關(guān)系數(shù)據(jù)庫(kù),它們不保證關(guān)系數(shù)據(jù)的 ACID 特性,都是去掉關(guān)系數(shù)據(jù)庫(kù)的關(guān)系型特性
不規(guī)定基于 SQL 實(shí)現(xiàn)

常見(jiàn)非關(guān)系型數(shù)據(jù)庫(kù):

  • redis:基于鍵值對(duì)(key-value)
  • mongodb:基于列族
  • hbase:基于文檔型

3.3 區(qū)別

區(qū)別關(guān)系型數(shù)據(jù)庫(kù)非關(guān)系型數(shù)據(jù)庫(kù)
使用 SQL不強(qiáng)制要求,一般不基于 SQL 實(shí)現(xiàn)
事務(wù)支持支持不支持
復(fù)雜操作支持不支持
海量讀寫(xiě)操作效率低效率高
基本結(jié)構(gòu)基于表和列,結(jié)構(gòu)固定靈活性比較高
使用場(chǎng)景業(yè)務(wù)方面的 OLTP 系統(tǒng)用于數(shù)據(jù)的緩存或基于統(tǒng)計(jì)分析的 OLAP 系統(tǒng)

補(bǔ)充:

  • OLTP(On-Line Transaction Processing):是指聯(lián)機(jī)事物處理
  • OLAP(On-Line Analytical Processing):是指聯(lián)機(jī)分析處理

4. MySQL 的程序結(jié)構(gòu)

MySQL 其實(shí)是一個(gè)“客戶(hù)端-服務(wù)器”結(jié)構(gòu)的程序

那么什么是客戶(hù)端和服務(wù)器呢?下面將簡(jiǎn)單介紹

4.1 客戶(hù)端和服務(wù)器

介紹:

  • 客戶(hù)端:是主動(dòng)發(fā)起請(qǐng)求的一方
  • 服務(wù)器:是被動(dòng)接受請(qǐng)求的一方
  • 客戶(hù)端給服務(wù)器發(fā)送的數(shù)據(jù),稱(chēng)為:請(qǐng)求(Request
  • 服務(wù)器給客戶(hù)端返回的數(shù)據(jù),稱(chēng)為:響應(yīng)(Response
  • 一個(gè)服務(wù)器同時(shí)可能給多個(gè)客戶(hù)端提供服務(wù)
  • 大部分客戶(hù)端服務(wù)器都是這種“一個(gè)請(qǐng)求一個(gè)響應(yīng)”的交互模型
  • 客戶(hù)端和服務(wù)器是通過(guò)網(wǎng)絡(luò)來(lái)通信的

示例:

你去飯店吃飯,你跟老板說(shuō)來(lái)一碗農(nóng)家一碗香,后面老板給你把你點(diǎn)的餐端上來(lái)。

此時(shí)你就是“客戶(hù)端”,飯店老板就是”服務(wù)器“,你跟老板點(diǎn)餐就是你的”請(qǐng)求“,老板把你點(diǎn)的餐端上來(lái)就是”響應(yīng)“。而一個(gè)老板其實(shí)可以服務(wù)多個(gè)客戶(hù)。

4.2 MySQL 的客戶(hù)端-服務(wù)器結(jié)構(gòu)

當(dāng)我們使用 MySQL 時(shí),我們其實(shí)會(huì)遇見(jiàn)以下幾種情況:

  • 在同一臺(tái)主機(jī)安裝 MySQL 客戶(hù)端和 MySQL 服務(wù)器(我們自己在個(gè)人電腦安裝時(shí)就是這種情況)

  • MySQL 客戶(hù)端和 MySQL 服務(wù)器分別在兩臺(tái)不同的主機(jī)上

  • 實(shí)際工作中往往是下面這種情況,多臺(tái)主機(jī)的客戶(hù)端連接一臺(tái)主機(jī)的服務(wù)器

注意:

  • MySQL 是把數(shù)據(jù)存儲(chǔ)在服務(wù)器上,服務(wù)器才是數(shù)據(jù)庫(kù)的本體,負(fù)責(zé)管理數(shù)據(jù)
  • MySQL 客戶(hù)端其實(shí)就是一個(gè)非常簡(jiǎn)單的程序,僅僅是用來(lái)和用戶(hù)交互的。這個(gè)程序可能是:命令行程序、可視化界面的程序、自己代碼實(shí)現(xiàn)的程序

4.3 MySQL 服務(wù)器

介紹:

  • MySQL 服務(wù)器其實(shí)含有若干個(gè)數(shù)據(jù)庫(kù)(每個(gè)數(shù)據(jù)庫(kù)視為是一組邏輯上的集合)
  • 一個(gè)數(shù)據(jù)庫(kù)包含了若干個(gè)有關(guān)聯(lián)的表
  • 一個(gè)表包含了若干行(每一行都有若干條記錄)
  • 一行包含了若干列(每一列都有具體的類(lèi)型要求)

示例:

假如有一個(gè) MySQL 服務(wù)器存儲(chǔ)著 CSDN 的數(shù)據(jù),它里面可能有3個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)1存儲(chǔ)著:用戶(hù)信息、用戶(hù)排名、文章數(shù)量等數(shù)據(jù)。數(shù)據(jù)庫(kù)2存儲(chǔ)著:活動(dòng)內(nèi)容、投稿文章、獎(jiǎng)品信息等數(shù)據(jù)。數(shù)據(jù)庫(kù)2存儲(chǔ)著:視頻、資源等數(shù)據(jù)。而其中數(shù)據(jù)庫(kù)1中的例如用戶(hù)信息等數(shù)據(jù),它其實(shí)就是一個(gè)表,類(lèi)似于 excel 表,而有關(guān)聯(lián)的幾個(gè)表,就組成了一個(gè)數(shù)據(jù)庫(kù)。

注意:

數(shù)據(jù)庫(kù)的含義其實(shí)要依照上下文,它可能是一門(mén)學(xué)科,也可能是一類(lèi)軟件,有時(shí)也指一個(gè)服務(wù)器,有時(shí)還表示一個(gè)數(shù)據(jù)集合等

到此這篇關(guān)于MySQL 數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)的文章就介紹到這了,更多相關(guān)MySQL 數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫(kù)鎖機(jī)制原理解析

    MySQL數(shù)據(jù)庫(kù)鎖機(jī)制原理解析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)鎖機(jī)制原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Centos中徹底刪除Mysql(rpm、yum安裝的情況)

    Centos中徹底刪除Mysql(rpm、yum安裝的情況)

    這篇文章主要介紹了Centos中徹底刪除Mysql(rpm、yum安裝的情況),本文直接給出操作代碼,需要的朋友可以參考下
    2015-02-02
  • 深入理解mysql各種鎖

    深入理解mysql各種鎖

    大家好,本篇文章主要講的是深入理解mysql各種鎖,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • Mysql支持的數(shù)據(jù)類(lèi)型(列類(lèi)型總結(jié))

    Mysql支持的數(shù)據(jù)類(lèi)型(列類(lèi)型總結(jié))

    MySQL支持大量的列類(lèi)型,它可以被分為3類(lèi):數(shù)字類(lèi)型、日期和時(shí)間類(lèi)型以及字符串(字符)類(lèi)型。本節(jié)首先給出可用類(lèi)型的一個(gè)概述,并且總結(jié)每個(gè)列類(lèi)型的存儲(chǔ)需求,然后提供每個(gè)類(lèi)中的類(lèi)型性質(zhì)的更詳細(xì)的描述
    2016-12-12
  • MySQL查詢(xún)截取的深入分析

    MySQL查詢(xún)截取的深入分析

    這篇文章主要給大家介紹了關(guān)于MySQL查詢(xún)截取的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MySQL 觸發(fā)器的使用和理解

    MySQL 觸發(fā)器的使用和理解

    這篇文章主要介紹了MySQL 觸發(fā)器的使用和理解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-02-02
  • mysql數(shù)據(jù)庫(kù)應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴(kuò)展方式介紹

    mysql數(shù)據(jù)庫(kù)應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴(kuò)展方式介紹

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)應(yīng)付大流量網(wǎng)站的的3種架構(gòu)擴(kuò)展方式介紹,它們分別是讀寫(xiě)分離、垂直分區(qū)、水平分區(qū),本文分別對(duì)它們做了講解,需要的朋友可以參考下
    2014-07-07
  • Mysql聯(lián)合查詢(xún)UNION和Order by同時(shí)使用報(bào)錯(cuò)問(wèn)題的解決辦法

    Mysql聯(lián)合查詢(xún)UNION和Order by同時(shí)使用報(bào)錯(cuò)問(wèn)題的解決辦法

    很多朋友剛使用聯(lián)合查詢(xún)UNION的時(shí)候常常會(huì)理所當(dāng)然的將聯(lián)合查詢(xún)理解為把沒(méi)一個(gè)子查詢(xún)的結(jié)果集組合成一個(gè)大的結(jié)果集
    2014-04-04
  • Centos7.3下mysql5.7.18安裝并修改初始密碼的方法

    Centos7.3下mysql5.7.18安裝并修改初始密碼的方法

    這篇文章主要為大家詳細(xì)介紹了Centos7.3下mysql5.7.18安裝并修改初始密碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MySQL中MIN()函數(shù)的使用教程

    MySQL中MIN()函數(shù)的使用教程

    這篇文章主要介紹了MySQL中MIN()函數(shù)的使用教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論