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

MySQL?數(shù)據(jù)庫的基礎知識

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

1. 認識數(shù)據(jù)庫

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

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

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

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

順序表、鏈表、棧、隊列、二叉樹、哈希表…

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

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

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

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

至于管理的目的就是:

為了增刪改查

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

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

因為使用文件保存數(shù)據(jù)有以下幾個缺點:

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

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

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

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

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

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

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

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

 綜合以上2、3、4的區(qū)別,認為 MySQL 使用硬盤來存儲數(shù)據(jù)更好

 

2. SQL

2.1 介紹

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

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

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

2.2 分類

SQL 可以分為6部分:

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

3. 數(shù)據(jù)庫的類別

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

  • 關系型數(shù)據(jù)庫
  • 非關系型數(shù)據(jù)庫

3.1 關系型數(shù)據(jù)庫

介紹:

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

常見關系型數(shù)據(jù)庫:

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

3.2 非關系型數(shù)據(jù)庫

介紹:

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

常見非關系型數(shù)據(jù)庫:

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

3.3 區(qū)別

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

補充:

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

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

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

那么什么是客戶端和服務器呢?下面將簡單介紹

4.1 客戶端和服務器

介紹:

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

示例:

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

此時你就是“客戶端”,飯店老板就是”服務器“,你跟老板點餐就是你的”請求“,老板把你點的餐端上來就是”響應“。而一個老板其實可以服務多個客戶。

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

當我們使用 MySQL 時,我們其實會遇見以下幾種情況:

  • 在同一臺主機安裝 MySQL 客戶端和 MySQL 服務器(我們自己在個人電腦安裝時就是這種情況)

  • MySQL 客戶端和 MySQL 服務器分別在兩臺不同的主機上

  • 實際工作中往往是下面這種情況,多臺主機的客戶端連接一臺主機的服務器

注意:

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

4.3 MySQL 服務器

介紹:

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

示例:

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

注意:

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

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

相關文章

最新評論