MySQL 01 02 章——數據庫概述與MySQL安裝篇

一、數據庫概述

(1)為什么要使用數據庫

  1. 數據庫可以實現持久化,什么是持久化:數據持久化意味著將內存中的數據保存到硬盤上加以“固化”
  2. 持久化的主要作用是:將內存中的數據存儲在關系型數據庫中,當然也可以存儲在磁盤文件、XML數據文件中

(2)數據庫與數據庫管理系統

1.2.1數據庫的相關概念

  1. DB,數據庫(Database):即存儲數據的倉庫,其本質是一個文件系統。它保存了一系列有組織的數據
  2. DBMS,數據庫管理系統(Database Management System):是一種用于操縱和管理數據的大型軟件,用于建立、使用和維護數據庫,對數據庫進行統一管理和控制。用戶通過數據庫管理系統訪問數據庫中表內的數據
  3. SQL,結構化查詢語言(Structured Query Language):專門用來與數據庫通信的語言

1.2.2數據庫與數據庫管理系統的關系

  1. 數據庫管理系統(DBMS)可以管理多個數據庫,一般開發人員會針對每一個應用創建一個數據庫。為了保存應用中實體的數據,一般會在數據庫創建多個表,以保存程序中實體用戶的數據

1.2.3常見的數據庫管理系統排名(DBMS)

  1. 目前互聯網上常見的數據庫管理軟件有:Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、Sybase、Informix這幾種

1.2.4常見的數據庫介紹

(3)MySQL介紹

1.3.1概述

  1. MySQL是一個開放源代碼的關系型數據庫管理系統
  2. MySQL6.x版本之后分為社區版(免費)和商業版(收費)
  3. MySQL可以運行于多個系統上,并且支持多種語言

1.3.2MySQL發展史重大事件

1.3.3關于MySQL 8.0

  1. MySQL從5.7版本直接跳躍發布了8.0版本

1.3.4Why choose MySQL?

  1. 開放源代碼,使用成本低
  2. 性能卓越,服務穩定
  3. 軟件體積小,使用簡單,并且易于維護
  4. 歷史悠久,社區用戶非常活躍,遇到問題可以尋求幫助
  5. 許多互聯網公司在用,經過了時間的驗證

1.3.5Oracle vs MySQL

  1. Oracle更適合大型跨國企業的使用。因為他們對費用不敏感,但是對性能要求以及安全性有更高的要求
  2. MySQL由于其體積小、速度快、總體擁有成本低,可處理上千萬條記錄的大型數據庫,尤其是開放源碼這一特點,使得很多互聯網公司、中小型網站選擇了MySQL作為網站數據庫

(4)RDBMS與非RDBMS

從排名中我們能看出來,關系型數據庫絕對是DBMS的主流,其中使用最多的DBMS分別是Oracle、MySQL和SQL Server。這些都是關系型數據庫(RDBMS)

1.4.1關系型數據庫(RDBMS)

  1. 關系型數據庫模型是把復雜的數據結構歸結為簡單的二維表格形式
  2. 關系型數據庫以行(row)和列(column)的形式存儲數據。這一系列的行和列被稱為表(table),一組表組成了一個庫(database)
  3. 表與表之間的數據記錄有關系(relationship)。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。關系型數據庫,就是建立在關系模型基礎上的數據庫
  4. SQL就是關系型數據庫的查詢語言
  5. 優勢:
    1. 可以用SQL語句方便地在一個表以及多個表之間做非常復雜的數據查詢
    2. 使得對于安全性能很高的數據訪問要求得以實現

1.4.2非關系型數據庫(非RDBMS)

  1. 非關系型數據庫,可以看成傳統關系型數據庫的功能閹割版本,基于鍵值對存儲數據,不需要經過SQL層的解析,性能非常高。同時,通過減少不常用的功能,進一步提高性能
  2. 有哪些非關系型數據庫:鍵值型數據庫(Redis)、文檔型數據庫(MongoDB)、搜索引擎數據庫(Elasticsearch)、列式數據庫、圖形數據庫

1.4.3小結

(5)關系型數據庫設計規則

  1. 關系型數據庫的典型數據結構就是數據表,這些數據表的組成都是結構化的
  2. 將數據放到表中,表再放到庫中
  3. 一個數據庫中可以有多個表,每個表都有一個名字,用來標識自己,表名具有唯一性
  4. 表具有一些特性,這些特性定義了數據在表中如何存儲,類似Java和Python中“類”的設計

1.5.1表、記錄、字段

  1. E-R(entity-relationship,實體-聯系)模型中有三個主要概念是:實體集、屬性、聯系集
  2. 一個實體集(class)對應于數據庫中的一個表(table),一個實體(instance)則對應于數據庫表中的一行(row),也稱為一條記錄(record)。一個屬性(attribute)對應于數據庫表中的一列(column),也稱為一個字段(field)
  3. ORM思想(Object Relational Mapping):
    1. 數據庫中的一個表→Java或Python中的一個類
    2. 表中的一條數據→類中的一個對象(實體)
    3. 表中的一個列→類中的一個屬性(field)

1.5.2表的關聯關系

  1. 表與表之間的數據記錄有關系。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示
  2. 表的關聯關系有四種:一對一關聯、一對多關聯、多對多關聯、自我引用
  3. 一對一關聯:
    1. 在實際的開發中應用不多,因為一對一可以創建成一張表
    2. 舉例:設計學生表:學號、姓名、手機號碼、班級、系別、身份證號碼、家庭住址、籍貫、緊急聯系人、......(1)拆為兩個表:兩個表的記錄是一一對應關系(2)基礎信息表(常用信息):學號、姓名、手機號碼、班級、系別(3)檔案信息表(不常用信息):學號、身份證號碼、家庭住址、籍貫、緊急聯系人、......
  4. 一對多關聯:
    1. 常見實例場景:客戶表和訂單表、分類表和商品表、部門表和員工表
    2. 舉例:(1)員工表:員工編號、姓名、...、所屬部門(2)部門表:部門編號、名稱、簡介
  5. 多對多關聯:
    1. 要表示多對多關系,必須創建第三個表,該表通常稱為聯接表,它將多對多關系劃分為兩個一對多關系。將這兩個表的主鍵都插入到第三個表中
    2. 舉例1:學生——課程(1)學生信息表:一行代表一個學生的信息(學號、姓名、手機號碼、班級、系別)(2)課程信息表:一行代表一個課程的信息(課程編號、授課老師、簡介)(3)選課信息表:一個學生可以選多門課,一門課可以被多個學生選擇
    3. 舉例2:產品——訂單(1)產品表:產品表中的每條記錄表示一個產品(2)訂單表:訂單表中的每條記錄表示一個訂單(3)訂單明細表:每個產品可以與訂單表中的多條記錄對應,即出現在多個訂單中。一個訂單可以與產品表中的多條記錄對應,即包含多個產品
  6. 自我引用

二、MySQL環境搭建

(1)MySQL的卸載

  1. 步驟一:停止MySQL服務。在卸載之前,先停止MySQL的服務。按鍵盤上的“Ctrl+Alt+Delete”組合鍵,打開“任務管理器”對話框,可以在“服務”列表找到MySQL的服務,如果處于“正在運行”狀態,可以右鍵單擊它,選擇“停止”選項來停止MySQL的服務
  2. 步驟二:軟件的卸載(使用控制面板的軟件卸載,去卸載MySQL DBMS軟件的安裝位置D:\MySQL\MySQL Server 8.0)
  3. 步驟三:手動刪除數據庫文件C:\ProgramData\MySQL\MySQL Server 8.0\Data
  4. 步驟四:清理注冊表(win+R,輸入regedit)
  5. 步驟五:刪除環境變量配置,并重啟電腦

(2)MySQL的下載、安裝、配置

2.2.1MySQL的四大版本

  1. MySQL Community Server 社區版本:開源免費,自由下載,但不提供官方技術支持,適用于大多數普通用戶

  2. MySQL Enterprise Edition 企業版本:需付費,不能在線下載,可以試用30天。提供了更多的功能和更完備的技術支持,更適合于對數據庫的功能和可靠性要求較高的企業客戶

  3. MySQL Cluster 集群版:開源免費。用于架設集群服務器,可以將幾個MySQL Server封裝成一個Server。需要在社區版或企業版的基礎上使用

  4. MySQL Cluster CGE 高級集群版:需付費

2.2.2軟件的下載

  1. 下載地址:http://www.mysql.com
  2. 點擊DOWNLOADS,下滑,點擊MySQL Community (GPL) Downloads
  3. 點擊MySQL Community Server
  4. 選擇想要下載的版本,點擊Go to Download Page超鏈接
  5. 下載它

2.2.3MySQL8.0版本的安裝

  1. 雙擊下載好的msi(msi下載和配置是一起完成的,如果下載的是zip,還要再進行配置)
  2. 選擇Custom,點擊next
  3. 選擇自己要安裝的服務器版本
  4. 選擇安裝位置,點擊Advanced Options超鏈接
  5. 一直點next,然后點擊Execute

2.2.4配置MySQL8.0

  1. 在該界面點擊next,再點擊next
  2. 加密規則可以不用修改
  3. 設置root用戶的密碼(比如:123456),設置完點擊next
  4. Start the MySQL Server at System Startup表示開機自啟,然后一直點next
  5. 點擊Execute
  6. 可以看到軟件已經安裝完成

2.2.5配置MySQL8.0環境變量

  1. 如果不配置MySQL環境變量,就不能在命令行直接輸入MySQL登陸命令
  2. 步驟一:右擊此電腦,點擊屬性
  3. 步驟二:在系統窗口中選擇高級系統設置
  4. 步驟三:點擊環境變量
  5. 步驟四:編輯Path變量
  6. 步驟五:將MySQL應用程序的bin目錄添加到變量值中

2.2.6MySQL5.7版本的安裝、配置

  1. 步驟幾乎和8.0版本一致。因為已經下載過8.0版本,此時還想下載5.7版本,我們點擊Add。端口號改為13306
  2. 一個電腦中可以下載安裝多個MySQL,只要保證進程端口號不同即可
  3. 如果下載了多個MySQL,環境變量只要配一個。如果我們配的是8.0版本,那么
  4. 如果想連接8.0版本
  5. 如果想連接5.7版本

(3)MySQL的登錄

2.3.1服務的啟動與停止

MySQL安裝完畢之后,需要啟動服務器進程,不然客戶端無法連接數據庫

在前面的配置過程中,已經將MySQL安裝為Windows服務,并且勾選當Windows啟動、停止時,MySQL也自動啟動、停止

  1. 方式一:使用圖形界面工具(1)右擊此電腦,選擇“管理”(2)服務和應用程序→服務
  2. 方式二:使用命令行工具(以管理員身份運行)。必須先啟動服務,才能登錄成功

2.3.2自帶客戶端的登錄與退出

  1. 登陸方式1:MySQL自帶客戶端
  2. 登陸方式2:windows命令行
  3. -u后面可以有空格,-p后面不能有空格
  4. windows命令行登錄mysql還可以這么寫(推薦使用該方式):
  5. 不加-P端口號時,默認登陸的是環境變量配置的MySQL版本

2.3.3退出登錄和查看版本信息

  1. 退出登錄:quit或exit
  2. 查看版本信息(兩種方式:先登錄再查看,直接查看):?

(4)MySQL演示使用

2.4.1MySQL的使用演示

  1. 顯示數據庫
  2. 創建數據庫
  3. 創建表,必須在庫之下
  4. 查看表中的數據
  5. 向表中插入數據
  6. 在5.7版本中添加中文會報錯,但是在8.0版本中添加中文不會報錯(因為8.0版本的字符集是utf8)

2.4.2MySQL的編碼設置

  1. 查看編碼命令:
  2. 修改mysql的數據目錄下的my.ini配置文件,修改完以后要重啟服務才會生效
  3. 可以看到修改成功,此時在5.7版本下,也可以添加中文數據

(5)MySQL圖形化管理工具

2.5.1MySQL Workbench

  1. 下載地址:http://dev.mysql.com/downloads/workbench/
  2. 連接MySQL
  3. 以登錄5.7版本為例

2.5.2Navicat

  1. 下載地址:http://www.navicat.com/

2.5.3SQLyog

2.5.4dbeaver

  1. 下載地址:https://dbeaver.io/download/

(6)MySQL目錄結構與源碼

2.6.1主要目錄結構

  1. MySQL的主要目錄結構:
    MySQL的目錄結構說明
    bin目錄所有MySQL的可執行文件。如:mysql.exe
    MySQLInstanceConfig.exe數據庫的配置向導,在安裝時出現的內容
    data目錄系統數據庫所在的目錄
    my.ini文件MySQL的主要配置文件
    C:\ProgramData\MySQL\MySQL Server 8.0\Data\用戶創建的數據庫所在的目錄

2.6.2MySQL源代碼獲取

該筆記根據尚硅谷的MySQL課程整理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64809.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64809.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 揮別 WinXP 時代協議,USB RNDIS 即將退場

IT之家 1 月 2 日消息,Linux 基金會研究員 Greg Kroah-Hartman 計劃在 Linux 內核中,徹底移除 USB RNDIS 協議驅動。 IT之家查詢公開資料,USB RNDIS 是一種遠程網絡驅動接口規范,將 USB 設備模擬成網卡,從而在計算機和…

Vue3 組件

文章目錄 Vue3 組件概述根組件定義和使用組件樣式控制全局樣式局部樣式深度樣式 Vue3 組件 概述 組件允許我們將 UI 劃分為獨立的、可重用的部分,并且可以對每個部分進行單獨的思考。在實際應用中,組件常常被組織成層層嵌套的樹狀結構: 根…

怎么在家訪問公司服務器?

在日常工作中,特別是對信息技術從業者而言,工作往往離不開公司的服務器。他們需要定期訪問服務器,獲取一些關鍵的機密文件或數據。如果您在家辦公,并且需要處理未完成的任務,同時需要從公司服務器獲取所需的數據&#…

AI 自動化編程對編程教育的影響

AI 自動化編程的未來 引言 你是否曾想過,未來的程序員需要掌握哪些技能呢?隨著人工智能的迅猛發展,特別是生成式AI工具的普及,編程的世界正在發生翻天覆地的變化。編程教育也在這種環境下進行著深刻的轉型。那么,AI …

IP-Guard對SolidWorks PDM 加密授權說明

SolidWorks PDM 加密授權說明 一、簡介 該功能主要實現了,在SolidWorks Enterprise PDM環境下,可以正常"檢入"和"檢出" 加密文件,并可以正常預覽加密文件。 二、操作說明 2.1 設置加密授權 安裝客戶端后,登錄控制臺,選擇客戶端計算機或組右鍵選擇“…

AI 助力游戲開發中的常用算法實現

在當今的游戲開發領域,人工智能(AI)技術的應用已經成為推動行業發展的關鍵力量。AI不僅能夠提升游戲的智能化水平,還能夠增強玩家的沉浸感和游戲體驗。隨著技術的進步,AI在游戲設計、開發和測試中的應用越來越廣泛&…

重現ORA-01555 細說Oracle Undo 數據管理

1. 概述 1.1. Undo 數據應用 undo數據是: 原始的、修改之前的數據副本 是針對更改數據的每個事務處理所捕獲的 至少保留到事務處理結束 用于支持: 回退操作 讀取一致性查詢 閃回查詢、閃回事務處理和閃回表 從失敗的事務處理中進行恢復 1.2. 事…

Java 集合 Collection、List、Set

一. Collection 單列集合 1. Collection代表單列集合,每個元素(數據)只包含一個值 2. Collection集合特點 ① List系列集合:添加的元素是有序、可重復、有索引。 ArrayList、LinekdList:有序、可重復,有索引 ② Set系列集合&…

wamp php7.4 運行dm8

背景 1、電腦安裝了dm8,具體參照官網dm8安裝 2、安裝好了wamp,我當前的php版本切換成了7.4的,我wamp的安裝路徑d:\wamp64\ 操作 3、查看phpinfo,如果Thread Safet為enabled,則選擇pdo74_dm.dll,否則選擇…

pdf預覽兼容問題- chrome瀏覽器105及一下預覽不了

使用的"tato30/vue-pdf": "^1.11.2"預覽插件&#xff0c;發現chrome瀏覽器105及一下預覽不了 pdfPreview預覽組件&#xff1a; <template><div id"vue_pdf_view"><div class"tool_tip"><template v-if"pa…

linux 系統 mysql :8.4.3 主從復制 教程及運維命令

一、環境準備 硬件配置CPU2 核 CPU內存2 GB 內存硬盤30 GB 硬盤容量外網訪問服務器可以訪問外網軟件環境操作系統Anolis OS 7.9MySQL版本8.4.3 二、服務器清單 Master192.168.153.221Node192.168.153.222 三、安裝mysql &#xff08;兩臺機器都要下載&#xff09; # 下載 …

UE5材質節點Camera Vector/Reflection Vector

Camera Vector相機向量&#xff0c;輸出像素到相機的方向&#xff0c;結果歸一化 會隨著相機移動而改變 Reflection Vector 反射向量&#xff0c;物體表面法線反射到相機的方向&#xff0c;x和y和camera vector相反 配合hdr使用

復合機器人正以其高效、精準、靈活的特點,逐漸在汽車裝配線上嶄露頭角

隨著全球汽車制造業的快速發展&#xff0c;汽車裝配線已成為衡量企業生產效率和技術水平的重要標準。傳統的裝配方式往往依賴于大量的人工操作&#xff0c;這不僅效率低下&#xff0c;還面臨著質量不穩定、安全隱患等問題。然而&#xff0c;隨著智能科技的飛速進步&#xff0c;…

導致啟動nacos報錯Caused by: java.lang.IllegalStateException: No DataSource set 的兩種原因

Java資深小白&#xff0c;不足之處&#xff0c;或者有任何錯誤歡迎指出。 --藍紫報錯代碼如下: C:\Windows\System32>cd D:\nacos-server-2.2.3\nacos\binC:\Windows\System32>d:D:\nacos-server-2.2.3\nacos\bin>startup.cmd -m standalone "nacos is starting…

LinuxUbuntu打開VSCode白屏解決方案

解決方法是 以root權限打開VSCode sudo /usr/share/code/code --no-sandbox --unity-launch

C語言期末復習筆記(下)

目錄 九、指針 1.指針變量的定義和初始化 2.間接尋址符* 3.按值調用和按址調用 4.實例 5.函數指針 6.指針變量和其它類型變量的對比 十、字符串 1.字符串常量 2.字符串的存儲 3.字符指針 4.字符串的訪問和輸入/輸出 5.字符串處理函數 &#xff08;1&#xff09;str…

1、藍牙打印機環境搭建

本項目采用stm32f103c8T6芯片&#xff0c;通過庫函數實現打印功能&#xff0c;并配置有小程序藍牙通信上位機。 1、創建文件夾目錄 core文件夾存放核心庫文件 LIB文件夾存放標準庫函數文件 這里可以刪減&#xff0c;用不到的可以不要。 obj存放編譯后的文件 project存放項目…

IJCNN2025 投稿準備

投稿格式要求&#xff1a; IEEE - Manuscript Templates for Conference Proceedings 投稿網址&#xff1a; Conference Management Toolkit - Login

多輸入多輸出 | Matlab實現WOA-CNN鯨魚算法優化卷積神經網絡多輸入多輸出預測

多輸入多輸出 | Matlab實現WOA-CNN鯨魚算法優化卷積神經網絡多輸入多輸出預測 目錄 多輸入多輸出 | Matlab實現WOA-CNN鯨魚算法優化卷積神經網絡多輸入多輸出預測預測效果基本介紹模型背景程序設計參考資料 預測效果 基本介紹 Matlab實現WOA-CNN鯨魚算法優化卷積神經網絡多輸入…

Leecode刷題C語言之切蛋糕的最小總共開銷②

執行結果:通過 執行用時和內存消耗如下&#xff1a; typedef struct {int *booked;int bookedSize; } MyCalendar;#define MAX_BOOK_SIZE 1001MyCalendar* myCalendarCreate() {MyCalendar *obj (MyCalendar *)malloc(sizeof(MyCalendar));obj->booked (int *)malloc(siz…