外貿手機網站模板全網關鍵詞云查詢
? ? ?數(shù)據(jù)庫基礎? ? ?
? ? 本節(jié)目標? ??
- ?掌握關系型數(shù)據(jù)庫,數(shù)據(jù)庫的作用
- 掌握在Windows和Linux系統(tǒng)下安裝MySQL數(shù)據(jù)庫
- 了解客戶端工具的基本使用和SQL分類
- 了解MySQL架構和存儲引擎
? ? ?1. 數(shù)據(jù)庫的安裝與配置? ??
? ? 1.1??確認MYSQL版本? ??
?
處理無法在 cmd 中使用 mysql 命令的情況,就需要去配置環(huán)境:
? ? ?(2) 官網下載相應的版本? ??
MySQL官網
? ? ?下載歷史版本?? ?
停止之后,原來版本的MySQL占用的資源和端口就會釋放,就可以讓新下載的MySQL來使用資源和端口;
? ? 1.2?安裝數(shù)據(jù)庫服務? ??
window環(huán)境下各種環(huán)境安裝及使用
- 1. 安裝包:
確認之后,可以根據(jù)相應的安裝路徑去查看是否有文件
設置密碼之后,來到下面的頁面:
在配置第一個錯誤日志路徑時,可以在本機上創(chuàng)建一個文件夾,來存放日志
運行數(shù)據(jù)庫后,有對應操作,就會在這些設置好的路徑生成日志;
? ? 1.3 檢查數(shù)據(jù)庫服務? ? ?
?安裝和配置都完成之后,我們需要到服務列表中檢查一下:
在服務中,刷新之后,可以看到MYSQL80(剛剛配置時的serverID)是一個正在運行的狀態(tài)
也可以先打開文件位置
一般使用 UniCode 編碼的快捷方式打開MYSQL
? ? 1.4 通過配置文件修改默認配置? ??
?如果以后要修改其他大版本,強烈建議修改;
- 我們之前配置數(shù)據(jù)目錄的時候,默認的路徑是在C盤;
- 數(shù)據(jù)目錄是MYSQL工作的主要目錄,非常重要,所有的數(shù)據(jù)都會在這個目錄中存儲,如果它在系統(tǒng)盤,我們就需要手動指定它到其他的目錄;
- 剛剛沒有修改,是因為它會在這個目錄中,自動生成一個配置文件,我們需要找到這個配置文件,先打開文件看看目錄結構是什么;
MYSQL全局配置文件
我們可以使用文本編輯器/記事本打開這個配置文件:
當MYSQL啟動的時候,會讀取這個文件的內容,作為啟動的默認值,默認值要在這個文件中配置,所以每次改動默認配置,都需要重啟一下MYSQL服務,以便配置生效;
如果是以#開頭,就表示注釋,所有客戶端相關的配置
什么是客戶端程序呢?我們打開安裝目錄:
這些以exe為后綴的程序,除了極個別的,都是客戶端程序,它們有不同的作用,要連接服務器,要備份服務器,要導出,要查看日志,都是通過這些客戶端程序
我們查看快捷方式中的屬性,可以發(fā)現(xiàn)快捷方式的目標:
只要mysql.exe程序運行,就會讀取配置文件[client]節(jié)點下的這些相應的配置,如果要指定不同的端口號,也需要加不同的選項,因為MYSQL服務器默認開啟的是3306端口,所以默認的端口號是3306
[client]針對所有客戶端程序,所有客戶端程序,都會讀取[client]節(jié)點下的配置
可執(zhí)行程序 mysqld 是服務端程序,跟其他客戶端程序不一樣,運行就意味著MYSQL服務啟動了;
?mysqld 節(jié)點下面的所有配置,都是服務于MYSQL的配置;d的意思是daemon,就是“守護”的意思,服務器啟動,[mysqld]也跟著啟動,和服務器的生命周期是一樣的,只在后臺運行,服務器關閉, mysqld 也會跟著關閉;
接下來,我們需要修改一些配置文件;這些配置修改的時候,我們需要備份一份my.ini 的原始文件:
通常我們會配置一些常用的選項,在修改配置文件之前,一定要把原來的配置文件備份一份,防止改錯了導致服務器啟動失敗,如果改錯了可以快速回退到修改前的版本;
我們來看一下,配置文件中的哪一些配置需要我們去修改:
1. 如果要修改端口號,直接在這里修改即可(1025—65535,因為1024之前是系統(tǒng)占用的一些端口),開發(fā)機應該是不需要修改的,但是在線上部署的時候,有些對外網公布端口號的時候,一般都是需要修改的,因為3306是默認端口,在網絡掃描的時候會掃描這個端口,掃描會給系統(tǒng)帶來一些安全的隱患;
? ? 2. 配置數(shù)據(jù)目錄的路徑(強烈建議改,否則一些大數(shù)據(jù)會占用大量內存空間)??
如果出現(xiàn)沒有權限修改的問題,可以把文件拖拽到桌面進行修改,修改完成并保存后,再拖拽回原文件;
跟配置文件目錄有一個同級目錄Data:
復制Data,然后粘貼到剛剛修改的目標目錄中
復制好后,修改目錄的名字為剛剛數(shù)據(jù)目錄的目錄名
因為我們設置了一些用戶名和密碼,這些密碼都會存儲在系統(tǒng)庫中,就是在默認的數(shù)據(jù)目錄中,所以整體拷貝剛剛的Data到目標路徑中,就不會出錯
- 存儲引擎用于處理數(shù)據(jù),MYSQL怎么解析,怎么存儲,用什么數(shù)據(jù)結構來存儲,都是由存儲引擎決定的,每一個存儲引擎對數(shù)據(jù)的增刪改查是不一樣的;
- 存儲引擎是MYSQL的核心;
不同版本的字符集是不一樣的,如果配置不好,可能無法將中文寫入數(shù)據(jù)庫中,默認在 8.0版本是 utf8mb4 這個字符編碼集,涉及到解碼編碼的,都會指定編碼集,類似于協(xié)議
強烈建議手動指定編碼集,MYSQL5.7默認編碼集是latin1,意味著不支持中文,無法寫入中文,如果要寫入中文,一定要在配置文件中手動指定編碼集為utf8mb4;在MYSQL8.0默認編碼集是utf8mb4,不過不管是哪個版本的MYSQL,都建議手動指定
修改好配置后,重新啟動MYSQL
重新啟動后,也會在我們指定的數(shù)據(jù)目錄中,找到相應的Data目錄,就可以完成相應讀取了
我們重新登錄一下:
訪問成功,就說明沒有問題了;這就是整個安裝過程;
? ? 2.數(shù)據(jù)庫簡介? ??
? ? ?2.1 什么是數(shù)據(jù)庫? ??
數(shù)據(jù)庫是20世紀60年代末發(fā)展起來的一項重要技術,已經成為計算機科學與技術的一個重要分支。數(shù)據(jù)庫技術主要是用來解決數(shù)據(jù)處理的非數(shù)值計算問題,數(shù)據(jù)處理的主要內容是數(shù)據(jù)的存儲、查詢、修改、排序和統(tǒng)計等。
? ? 2.2 為什么要使用數(shù)據(jù)庫? ??
1.數(shù)據(jù)持久化 | 數(shù)據(jù)庫可以將數(shù)據(jù)保存在存儲介質中,即使應用程序關閉或服務器重啟,數(shù)據(jù)也不會丟失。 |
2.數(shù)據(jù)結構化 | 數(shù)據(jù)庫能夠以結構化的方式存儲數(shù)據(jù),使得數(shù)據(jù)易于管理和查詢。 |
3.數(shù)據(jù)完整性 | 數(shù)據(jù)庫管理系統(tǒng)(DBMS)提供了數(shù)據(jù)完整性的保障,確保數(shù)據(jù)的準確性和一致性。 |
4.并發(fā)控制 | 數(shù)據(jù)庫可以處理多個用戶或進程同時訪問和修改數(shù)據(jù),同時確保數(shù)據(jù)的一致性。 |
5.安全性 | 數(shù)據(jù)庫提供了多種安全機制,如訪問控制、加密等,保護數(shù)據(jù)不被未授權訪問。 |
6.可擴展性 | 隨著數(shù)據(jù)量的增長,數(shù)據(jù)庫可以水平或垂直擴展,以適應不斷增長的數(shù)據(jù)需求。 |
7.備份和恢復 | 數(shù)據(jù)庫支持數(shù)據(jù)的備份和恢復,以防數(shù)據(jù)丟失或損壞。 |
8.查詢優(yōu)化 | 數(shù)據(jù)庫系統(tǒng)提供了高效的查詢優(yōu)化器,可以快速執(zhí)行復雜的查詢操作。 |
9.事務管理 | 大部分關系型數(shù)據(jù)庫都支持事務,確保一系列操作要么完全成功,要么完全失敗,提高了操作的可靠性。 |
10.多用戶支持 | 數(shù)據(jù)庫允許多個用戶同時訪問和操作數(shù)據(jù),適合多用戶環(huán)境。 |
? ? ?2.3 主流數(shù)據(jù)庫? ??
? ? 2.3.1 關系型數(shù)據(jù)庫? ??
? ? 什么是關系型數(shù)據(jù)庫? ??
- 關系型數(shù)據(jù)庫是指采用了關系模型(就是一個二維表格模型)來組織數(shù)據(jù)的數(shù)據(jù)庫,以行和列的形式存儲數(shù)據(jù)。
- 關系模型可以簡單理解為二維表格模型,而一個關系型數(shù)據(jù)庫就是由二維表,及其之間的關系組成的一個數(shù)據(jù)組織。
每個表中的每一條記錄稱為一行數(shù)據(jù),每一個數(shù)據(jù)行由一個或多個列組成;
- 上圖,左邊表的班級編號列,對應到右邊表的編號列,對于這種情況,就叫兩個二維表之間建立了聯(lián)系;
- 兩張二維表建立了關聯(lián)關系,把數(shù)據(jù)組織在了一起,那么這兩張表,在一個數(shù)據(jù)庫中就稱它們?yōu)殛P系型數(shù)據(jù)庫;
那能不能把左邊表中的班級編號列,替換成班級名稱呢?可以,但是這樣不好修改,在后面學數(shù)據(jù)庫設計,會詳細講解這樣改帶來的一些問題;
? ? 關系型數(shù)據(jù)庫種類? ? ?
? ? 2.3.2 非關系型數(shù)據(jù)庫? ??
數(shù)據(jù)庫引擎排名