Mysql 數據庫編程技術01

???????

一、數據庫基礎

1.1 認識數據庫

為什么學習數據庫

  • 瞬時數據:比如內存中的數據,是不能永久保存的。
  • 持久化數據:比如持久化至數據庫中或者文檔中,能夠長久保存。

???????數據庫是“按照數據結構來組織、存儲和管理數據的倉庫”。是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。

1.2 數據庫的相關概念

1.2.1 DB

???????DB(英文全稱database,數據庫)是依照某種數據模型組織起來并存放二級存儲器中的數據集合。

1.2.2 DBMS

???????數據庫管理系統(DatabaseManagementSystem)是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫,簡稱DBMS。

1.2.3 SQL

???????結構化查詢語言(StructuredQueryLanguage)簡稱 SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。

???????SQL是一種ANSI(美國國家標準協會)的標準,但也有許多不同版本的SQL語言。SQL是關系數據庫系統的標準語言。所有關系型數據庫管理系統,如MySQL,SQLServer,Oracle,Sybase,postgreSQL 和 MSAccess使用SQL作為標準數據庫語言。

1.2.3.1 SQL 使用

允許用戶訪問在關系數據庫管理系統的數據。
讓用戶來描述數據。
允許用戶定義數據庫中的數據和處理數據。
允許使用SQL模塊,庫和預編譯器的其他語言中嵌入。
允許用戶創建和刪除數據庫和表。
允許用戶創建視圖,存儲過程,函數在數據庫中。
允許用戶設置表,過程和視圖的權限

1.2.3.2 SQL 命令

???????標準的SQL命令進行互動使用在關系型數據庫有:CREATE,SELECT,INSERT,UPDATE,DELETE 和
DROP。這些命令可分為基于其性質組。

  • DQL(Data Query Language)- 數據查詢語言
  • DML(Data Manipulate Language)-數據操作語言
  • DDL(Data Define Languge)- 數據定義語言
  • DCL(Data Control Language)-數據控制語言
  • TCL(Transaction Control Language)- 事務控制語言 commit、rollback

1.2.4 數據庫術語

數據庫:數據庫是一些關聯表的集合。
數據表:表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
列:一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
冗余:存儲兩倍數據,冗余降低了性能,但提高了數據的安全性。
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
外鍵:外鍵用于關聯兩個表。
復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。
索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。
參照完整性:參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。

1.2.5 數據模型

1.2.5.1 模型
???????模型是對事務、對象、過程等客觀系統中的內容的模擬和抽象表達。

1.2.5.2 數據模型
???????數據模型也是一種模型,它是對現實世界數據特征的抽象。
???????數據模型分為兩大類:概念模型、組織層數據模型也稱組織模型。
組織模型分為:層次模型(用樹形結構組織數據)、網狀模型(用圖形結構組織數據)、關系模型(用簡單二維表結構組織數據)、對象-關系模型(用復雜的表格以及其他組織結構組織數據)。

???????數據模型是數據庫的基礎,數據是對客觀事物的符號表示,模型是現實世界的抽象。

???????信息世界是對現實世界的抽象,人們把事物的特征和聯系通過符號記錄下來,并用規范化的語言描述現實世界的事物,從而構成一個基于現實世界的信息世界,這個信息世界就是概念模型。概念模型主要用來描述顯示世界的概念化結構,它使數據庫的設計人員在設計的初始階段,擺脫計算機系統及數據庫管理系統的具體技術問題,集中精力分析數據以及數據之間的聯系。在概念模型中,最常用的設計模型就是實體—聯系模型(ER模型)。

???????邏輯數據模型是具體的數據庫管理系統所支持的數據模型,主要有**關系數據模型、層次數據模型和網狀數據模型。**關系數據模型是目前最流行的數據庫模型,支持關系數據模型的數據庫管理系統稱為關系數據庫管理系統,MySQL就屬于關系數據庫管理系統。關系數據模型以二維表結構來表示事物與事物之間的聯系,也可以稱為實體與實體之間的聯系

1.3 數據庫種類

???????邏數據庫模型主要是兩種,即關系型數據庫和非關系型數據庫。

1.3.1 關系型數據庫

???????關系型數據庫,是指采用了關系模型來組織數據的數據庫。

  1. 關系模型指的就是二維表格模型,而一個關系型數據庫就是由二維表及其之間的聯系所 組成的一個數據組織。
  2. 通過SQL結構化查詢語句存儲數據。
  3. 強調ACID規則, 保持數據一致性,ACID規則即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

1.3.2 Nosql 數據庫

???????NoSQL 最常見的解釋是“non-relational”, “Not Only SQL”也被很多人接受。NoSQL 僅僅是一個概念,泛指非關系型的數據庫,區別于關系數據庫,它們不保證關系數據的ACID特性。

???????NoSQL 的產生并不是要徹底地否定關系型數據庫,而是作為傳統關系型數據庫的一個有效補充。NOSQL數據庫在特定的場景下可以發揮出難以想象的高效率和高性能。

1、NOSQL 不是否定關系數據庫,而是作為關系數據庫的一個重要補充
2、NOSQL 為了高性能、高并發而生,忽略影響高性能,高并發的功能
3、NOSQL 典型產品memcached(純內存),redis(持久化緩存),mongodb(文檔的數據庫)。

1.3.3 關系型數據庫和非關系型數據庫優缺點

???????關系型數據庫優缺點:
優點:
1、易于維護:都是使用表結構,格式一致;
2、使用方便:SQL語言通用,可用于復雜查詢;
3、復雜操作:支持SQL,可用于一個表以及多個表之間非常復雜的查詢。
缺點:
1、讀寫性能比較差,尤其是海量數據的高效率讀寫;
2、固定的表結構,靈活度稍欠;
3、高并發讀寫需求,傳統關系型數據庫來說,硬盤I/O是一個很大的瓶頸。
???????非關系型數據庫優缺點:
優點:
1、格式靈活:存儲數據的格式可以是key,value形式、文檔形式、圖片形式等等,文檔形式、
圖片形式等等,使用靈活,應用場景廣泛,而關系型數據庫則只支持基礎類型。
2、速度快:nosql可以使用硬盤或者隨機存儲器作為載體,而關系型數據庫只能使用硬盤;
3、高擴展性;
4、成本低:nosql數據庫部署簡單,基本都是開源軟件。
缺點:
1、不提供sql支持,學習和使用成本較高;
2、無事務處理;
3、數據結構相對復雜,復雜查詢方面稍欠。

1.4.2 數據庫存儲數據的特點

???????將數據放列表中,表再放到庫中
???????一個數據庫中可以有多個表,每個表都有一個的名字,用來標識自己。表名具有唯一性。
表具有一些特性,這些特性定義了數據在表中如何存儲,類似C++中“類”的設計表由列組成,我們也稱為字段。所有表都是由一個或多個列組成的,每一列類似C++中的“屬性”。
???????表中的數據是按行存儲的,每一行類似于C++中的“對象”。

對于學員管理系統數據庫中的表設計有如下:
(1) 學生檔案信息表
(2) 班級設置信息表
(3) 院系信息表
(4) 寢室信息表
(5) 用戶信息表

在這里插入圖片描述

二、初始化MySQL

2.1 MySQL 產品介紹

2.1.2 平臺及軟件支持

???????支持各種平臺,常搭配Linux。組成的LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的網站架構方案。

2.1.3 體系結構

???????MySQL 體系結構
在這里插入圖片描述
???????MySQL 由以下幾部分組成:
連接池組件、管理服務和工具組件、SQL接口組件、查詢分析器組件、優化器組件、緩沖組
件、插件式存儲引擎、物理文件。
連接者:不同語言的代碼程序和mysql的交互(SQL交互)

1、連接池 管理、緩沖用戶的連接,線程處理等需要緩存的需求
2、管理服務和工具組件 系統管理和控制工具,例如備份恢復、Mysql復制、集群等
3、sql 接口 接受用戶的SQL命令,并且返回用戶需要查詢的結果
4、查詢解析器SQL命令傳遞到解析器的時候會被解析器驗證和解析(權限、語法結構)
5、查詢優化器 SQL語句在查詢之前會使用查詢優化器對查詢進行優化
select id,name from user where age = 40;
???????a.這個select 查詢先根據where語句進行選取,而不是先將表全部查詢出來以后再進行age過濾
???????b.這個select查詢先根據id和name進行屬性投影,而不是將屬性全部取出以后再進行過濾
???????c.將這兩個查詢條件聯接起來生成最終查詢結果
6、緩存如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數據
7、插入式存儲引擎存儲引擎說白了就是如何管理操作數據(存儲數據、如何更新、查詢數據等)的一種方法。因為在關系數據庫中數據的存儲是以表的形式存儲的,所以存儲引擎也 可以稱為表類型(即存儲和操作此表的類型)

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

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

相關文章

新一代AI架構實踐:數字大腦AI+智能調度MCP+領域執行APP的黃金金字塔體系

新一代AI架構實踐:數字大腦智能調度領域執行的黃金金字塔體系 一、架構本質的三層穿透性認知 1.1 核心范式轉變(CPS理論升級) 傳統算法架構:數據驅動 → 特征工程 → 模型訓練 → 業務應用 新一代AI架構:物理規律建…

macOS可視化桌面配置docker加速器

macOS可視化桌面配置docker加速器 在鏡像settings->docker Engine改為國內鏡像修改為國內鏡像重啟docker(可視化界面啟動或者使用命令行)使用命令重啟可視化界面重啟 在鏡像settings->docker Engine改為國內鏡像 修改為國內鏡像 {"registry-mirrors": ["…

Nginx 基礎使用(2025)

一、Nginx目錄結構 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暫存目錄 ├── conf # Nginx所有配置文件的目錄 │ ├── fastcgi.conf # fastcgi相…

用spring-webmvc包實現AI(Deepseek)事件流(SSE)推送

前后端: Spring Boot Angular spring-webmvc-5.2.2包 代碼片段如下: 控制層: GetMapping(value "/realtime/page/ai/sse", produces MediaType.TEXT_EVENT_STREAM_VALUE)ApiOperation(value "獲取告警記錄進行AI分析…

基于Python的招聘推薦數據可視化分析系統

【Python】基于Python的招聘推薦數據可視化分析系統(完整系統源碼開發筆記詳細部署教程)? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 🚀🌟 基于Python的招聘推薦數據可視化分析系統!&#x1…

使用注解開發springMVC

引言 在學習過第一個springMVC項目建造過后&#xff0c;讓我們直接進入真實開發中所必需的注解開發&#xff0c; 是何等的簡潔高效&#xff01;&#xff01; 注&#xff1a;由于Maven可能存在資源過濾的問題&#xff0c;在maven依賴中加入 <build><resources>&l…

linux專題3-----禁止SSH的密碼登錄

要在linux系統中禁止密碼登錄&#xff0c;您可以通過修改 SSH 配置來實現。請按照以下步驟操作(此處以 Ubuntu為例)&#xff1a; 1、SSH 登錄到您的服務器&#xff08;或直接在命令行模式下&#xff09;。 2、備份 SSH 配置文件&#xff1a; 在終端中運行以下命令以備份現有的…

基于LangChain和通義(Tongyi)實現NL2SQL的智能檢索(無需訓練)

在數據驅動的時代,如何高效地從數據庫中獲取信息成為了一個重要的挑戰。自然語言到SQL(NL2SQL)技術提供了一種便捷的解決方案,使用戶能夠用自然語言查詢數據庫,而無需深入了解SQL語法。本文將探討如何利用LangChain和通義(Tongyi)實現NL2SQL的智能檢索,具體步驟如下: …

深度學習處理文本(10)

保存自定義層 在編寫自定義層時&#xff0c;一定要實現get_config()方法&#xff1a;這樣我們可以利用config字典將該層重新實例化&#xff0c;這對保存和加載模型很有用。該方法返回一個Python字典&#xff0c;其中包含用于創建該層的構造函數的參數值。所有Keras層都可以被序…

機器視覺3D中激光偏鏡的優點

機器視覺的3D應用中,激光偏鏡(如偏振片、波片、偏振分束器等)通過其獨特的偏振控制能力,顯著提升了系統的測量精度、抗干擾能力和適應性。以下是其核心優點: 1. 提升3D成像精度 抑制環境光干擾:偏振片可濾除非偏振的環境雜光(如日光、室內照明),僅保留激光偏振信號,大…

線程同步的學習與應用

1.多線程并發 1).多線程并發引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } i…

寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼?

VB.NET 寫.NET可以指定運行SUB MAIN嗎?調用任意一個里面的類時,如何先執行某段初始化代碼? 分享 1. 在 VB.NET 中指定運行 Sub Main 在 VB.NET 里&#xff0c;你能夠指定 Sub Main 作為程序的入口點。下面為你介紹兩種實現方式&#xff1a; 方式一&#xff1a;在項目屬性…

【AI插件開發】Notepad++ AI插件開發實踐(代碼篇):從Dock窗口集成到功能菜單實現

一、引言 上篇文章已經在Notepad的插件開發中集成了選中即問AI的功能&#xff0c;這一篇文章將在此基礎上進一步集成&#xff0c;支持AI對話窗口以及常見的代碼功能菜單&#xff1a; 顯示AI的Dock窗口&#xff0c;可以用自然語言向 AI 提問或要求執行任務選中代碼后使用&…

關聯容器-模板類pair數對

關聯容器 關聯容器和順序容器有著根本的不同:關聯容器中的元素是按關鍵字來保存和訪問的,而順序容器中的元素是按它們在容器中的位置來順序保存和訪問的。 關聯容器支持高效的關鍵字查找和訪問。 兩個主要的關聯容器(associative-container),set和map。 set 中每個元素只包…

京東運維面試題及參考答案

目錄 OSPF 實現原理是什么? 請描述 TCP 三次握手的過程。 LVS 的原理是什么? 闡述 Nginx 七層負載均衡的原理。 Nginx 與 Apache 有什么區別? 如何查看監聽在 8080 端口的是哪個進程(可舉例:netstat -tnlp | grep 8080)? OSI 七層模型是什么,請寫出各層的協議。 …

輸入框輸入數字且保持精度

在項目中如果涉及到金額等需要數字輸入且保持精度的情況下&#xff0c;由于輸入框是可以隨意輸入文本的&#xff0c;所以一般情況下可能需要監聽輸入框的change事件&#xff0c;然后通過正則表達式去替換掉不匹配的文本部分。 由于每次文本改變都會被監聽&#xff0c;包括替換…

使用 requests 和 BeautifulSoup 解析淘寶商品

以下將詳細解釋如何通過這兩個庫來實現按關鍵字搜索并解析淘寶商品信息。 一、準備工作 1. 安裝必要的庫 在開始之前&#xff0c;確保已經安裝了 requests 和 BeautifulSoup 庫。如果尚未安裝&#xff0c;可以通過以下命令進行安裝&#xff1a; bash pip install requests…

C#調用ACCESS數據庫,解決“Microsoft.ACE.OLEDB.12.0”未注冊問題

C#調用ACCESS數據庫&#xff0c;解決“Microsoft.ACE.OLEDB.12.0”未注冊問題 解決方法&#xff1a; 1.將C#采用的平臺從AnyCpu改成X64 2.將官網下載的“Microsoft Access 2010 數據庫引擎可再發行程序包AccessDatabaseEngine_X64”文件解壓 3.安裝解壓后的文件 點擊下載安…

【文獻閱讀】Vision-Language Models for Vision Tasks: A Survey

發表于2024年2月 TPAMI 摘要 大多數視覺識別研究在深度神經網絡&#xff08;DNN&#xff09;訓練中嚴重依賴標注數據&#xff0c;并且通常為每個單一視覺識別任務訓練一個DNN&#xff0c;這導致了一種費力且耗時的視覺識別范式。為應對這兩個挑戰&#xff0c;視覺語言模型&am…

【Kubernetes】StorageClass 的作用是什么?如何實現動態存儲供應?

StorageClass 使得用戶能夠根據不同的存儲需求動態地申請和管理存儲資源。 StorageClass 定義了如何創建存儲資源&#xff0c;并指定了存儲供應的配置&#xff0c;例如存儲類型、質量、訪問模式等。為動態存儲供應提供了基礎&#xff0c;使得 Kubernetes 可以在用戶創建 PVC 時…