【數據庫】數據庫基本概念:數據庫管理系統 / 數據庫 / 表 / 數據

0 前言

本文講解數據庫的最基本概念

推薦書籍:《MySQL 必知必會》
需要的軟件:MySQL 8.0

1 數據庫相關概念及其實戰應用

1.1 數據(Data)

在人類世界中,數據可以是

  • 數值型數據
    • 十進制數
  • 非數值型數據
    • 圖片
    • 聲音
    • 視頻
    • 文字
    • ……

在計算機世界中,數據是二進制數

映射
人類世界
計算機世界

將人類世界的信息,映射到計算機世界,將人類世界信息轉換成二進制數,并且存儲到計算機的過程,就叫數據的存儲。

例如,你寫一個博客,保存起來,這就是存儲數據。

1.2 數據庫(Database DB)

1.2.1 概念

數據的存儲,需要使用容器,就好比水的存儲,需要使用水桶一樣,裝數據的容器,就是數據庫

在人類世界,裝數據的容器,可以是文件柜
在這里插入圖片描述
數據,就是文件,并且,通常情況下,文件是放在文件夾里的。

在這里插入圖片描述
這里就引出了幾個數據庫學科中的重要概念

  • 數據庫 —— 文件柜
  • —— 文件柜里的文件夾
  • 數據 —— 文件夾里的資料

這樣,我想你能夠明白,這幾個概念之間的關系了。

值得注意的一點是,他們之間的關系,數據庫與數據庫,數據庫中的表和表,表中的數據和數據,他們之間,都存在各種結構,也就是所謂的數據結構,這一點還是很重要的,但是現在先不談這個事情。

1.2.2 實戰

我們來用MySQL的命令,演示一下。

1.2.2.1 顯示數據庫

顯示數據庫:show databases;
在這里插入圖片描述
它在資源管理器中,就是文件夾,我們來看一下
在這里插入圖片描述
我展示出了路徑,你可以自己找一下,默認C盤,可以看出,數據庫名稱與文件夾名稱之間是對應的

1.2.2.2 創建數據庫

創建數據庫:create database <數據庫名稱>;

我們將數據庫的名字命名為FileCabinet(文件柜)好了。
在這里插入圖片描述
我們再查看一下數據庫
在這里插入圖片描述
你可以看見文件夾也有了這個
在這里插入圖片描述
不過,不知道有沒有注意到,為什么是小寫了?

原因在于:MySQL在windows下,不區分大小寫,但是在Linux下區分大小寫,所以,為了能夠更容易匹配,就全部轉換為小寫。

1.2.2.3 使用數據庫

使用數據庫:use <數據庫名稱>;
在這里插入圖片描述
這樣,你就能夠使用這個數據庫了,比如可以在里面創建表,再創建文件,等等。

1.2.2.4 顯示當前數據庫中的表

指令:show tables;
在這里插入圖片描述
結果顯示,這個數據庫中,沒有表,是空的,這也就是說,文件柜是新生產的,里面啥都沒有。

1.2.2.5 在數據庫中創建表

語法:create table <表的名字> (表的定義);
在這里插入圖片描述
這里設計到SQL語言的數據類型,先不用管,只需要知道

  • 我們在數據庫filecabinet中創建了一個表,名字叫student_file
  • 表的定義部分,也就是()中的,帶表:這個表中的數據,可以具備兩個屬性,一個是字符類型的name,一個是數字類型的age

1.2.2.6 查看剛剛創建的表

命令:show tables;
在這里插入圖片描述
我們可以看見,在這個數據庫中,我們擁有了一個名字為student_file的表。我們還可以按照上一小節的內容,在該數據庫中,創建更多的表。

我們進入資源管理器中,看一下我們創建的表。
在這里插入圖片描述
在文件夾filecabinet中,創建了一個ibd類型的文件,這也就是我們創建的表對應的文件。

1.2.2.7 表的定義是什么意思?

剛剛我們提到了表的定義,和表的兩個屬性,name和age,那么,他們到底是什么意思?

舉一個例子你就明白了,你在學習工作中,是不是總要填表格

我們現在創建一個Excel表格,將其命名為student_file
在這里插入圖片描述
然后,在表格內,寫上一些內容
在這里插入圖片描述
并明確要求,name一欄,要寫字符型數據,age一欄,要寫數字,之后讓同學們填寫。
在這里插入圖片描述
這樣一來

  • 張三、李四和王五,寫在了name一欄,并且是char類型的數據
  • 18、19和20,寫在了age一欄,并且是int類型的數據

這也就是說,我們的student_file,具備兩個屬性char類型的nameint類型的age,并且可以在里面填寫符合標準的信息

這也就是所謂表定義的意義它指明了整個表能夠填入什么樣的數據

1.2.2.8 其他

后續還有表內數據的填寫等等,以后再說。

1.2.3 小結

我們來總結一下本小節的重要內容:數據管理系統、數據庫、表和數據,理清他們之間的邏輯關系。

對于一片計算機存儲空間,可以創建多個數據庫創建的數據庫需要有<名稱>,在資源管理器中,表現為創建了多個文件夾
在這里插入圖片描述
對于每一個數據庫,內部都可以創建多個表創建的表需要有<名稱>和(屬性),在資源管理器中,體現為在數據庫文件夾內,創建多個文件。
在這里插入圖片描述
對于每一個表,表內包含了符合其屬性的數據,在資源管理器表現為,表對應的文件中的內容
在這里插入圖片描述
DBMS,就是能夠方便管理數據庫、表、數據的軟件。
在這里插入圖片描述

補充:與計算機組成原理聯系,可以將DBMS看成CPU的控制器,掌控著各個器件的運行方式。

1.3 數據庫管理系統(Database Management System DBMS)

DBMS,就是方便人類操作數據庫的軟件,比如MySQL,SQL Server等等,都是數據庫管理系統,都是軟件,上一小節我們使用的各種指令,就是在MySQL軟件上進行的。

還有一個概念:數據庫管理員(Database Administrator DBA)

DBA,就是管理數據庫管理系統的人,你可以理解為,圖書館管理員,他需要管理整個圖書館的各個書柜,書柜也就是數據庫。

1.4 數據庫系統(Database System DBS)

重點不是數據庫管理系統,而是系統,我們知道很多系統,比如計算機系統,選課系統……談及系統,必須要談及其所在的層次,他代表其所在層次領域的全部生態

例如數據庫系統,他就包含

  • 數據庫管理系統
  • 數據庫管理員
  • 數據庫
  • 數據
  • 用戶

等等,整個數據庫學科生態的全部內容,及其結構關系,甚至還有包含其與外界的聯系,系統是個很復雜的事情,你這樣簡單理解就可以了。

DBS
DBA
應用系統/用戶等
DBMS
DB
TABLE
DATA

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

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

相關文章

tiny4412初期環境搭建

花了整整三天 從躍躍欲試到失望 絕望 最后迎來曙光!!! 話不多說直接上干貨 這些軟件安裝的具體過程網上有很多 在這里就不說了 1.在主機下 安裝secureCRT軟件和超級終端&#xff08;安一個就行 不過最好兩個都安上&#xff09; 作用&#xff1a; 軟件可以打印一些開發板信息…

vivado軟件如何查看內部器件的仿真信號

有時候&#xff0c;我們需要查看內部模塊的信號&#xff0c;那么&#xff0c;在vivado軟件該如何操作呢&#xff1f; 運行仿真&#xff0c;可以得到這個界面&#xff0c;之后看左側部分&#xff0c;可以查看內部的模塊。 例如單擊rom0 可以看見其內部信號&#xff0c;然后在想…

通過Source insight查看內核源碼

1.下載源碼 https://www.kernel.org/pub/linux/kernel/ 下載后解壓即可 2.打開SourceInsight,創建工程 點擊頂部Project菜單 3.將源碼文件導入工程 4.查看源碼

藍橋杯物聯網例程下載

今年是藍橋杯物聯網的第一屆 我也是趕快買了物聯網的開發板 這是附帶的例程和一些綜合實驗 僅供參考練習 里面所有的例程大概花了兩周實現了大部分&#xff08;有一些例如ADC和PWM的 手頭沒有示波器和電壓表就沒有做&#xff09; 我比較懶 不喜歡做每個例程的教程 就統一分享出…

Vivado軟件(用VerilogHDL)如何使用$readmemh和$readmemb函數

0 前言 博主我查了很多資料&#xff0c;雖然會使用Verilog的readmemh和readmemh和readmemh和readmemb函數&#xff0c;可是&#xff0c;在vivado軟件中怎么用&#xff1f;文件放在哪里&#xff1f;沒有一篇文章提及。 花了幾個小時&#xff0c;終于研究明白了&#xff0c;特此…

【匯編語言】王爽第六章程序6.3解答,8086匯編語言實現數據的倒序存放

程序很簡單&#xff0c;就是利用棧&#xff0c;實現數據的倒序存放。 ; 將數據逆序存放 assume ds:data data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h data endsassume ss:stack stack segmentdw 0,0,0,0,0,0,0,0 stack endsassume cs:code code segmen…

---------愿 青春與我皆不付---------------------

2019年8月4日晚 21點51 我愿以此用博客來記錄我的學習之路 void mian(void) { while(1) { run(); } } 不負光陰 不負卿

【匯編語言】快速理解什么是尋址,什么是尋址方式

0 前言 有很多專業的資料講述這些概念&#xff0c;但是&#xff0c;雖然很專業&#xff0c;但是初學者根本看不懂&#xff01; 因此在這里&#xff0c;我用最簡單的方式&#xff0c;告訴你 什么是尋址什么是尋址方式 1 計算機的極簡模型 計算機的世界中&#xff0c;只有二…

【匯編語言】程序設計過程,如何避免數據類型匹配錯誤?

真言&#xff1a;操作數據&#xff0c;先看方式&#xff0c;再對應解決 0 前言 對于x86系列的匯編語言&#xff0c;AT&T格式需要使用后綴指明操作數的數據類型&#xff0c;Intel格式并沒有這樣的規定&#xff0c;但是&#xff0c;數據類型還是必須匹配&#xff0c;這就導…

【匯編語言】王爽實驗5(5)(6)的解答 建立數據類型匹配的觀念

0 前言 本文解答王爽《匯編語言》實驗5的&#xff08;5&#xff09;&#xff08;6&#xff09;題 同時給出一些常見問題的解答 以及給出最易犯錯的地方&#xff1a;數據類型不匹配的解決方案 1 題目解答 1.1 實驗5&#xff08;5&#xff09; 1.1.1 題目 將data1和data2段…

【Java圖文趣味版】快速搞定數組的聲明、開辟空間和初始化賦值

0 前言 本文講解java數組的基礎知識&#xff0c;適合零基礎小白。 1 數組的概念 所謂數組&#xff0c;就是一組同類型東西的集合&#xff0c;可以通過index&#xff08;索引&#xff0c;下標&#xff09;訪問這一組東西的某一個元素。 就像下圖這樣&#xff0c;由于數組概念…

【java圖文趣味版】數組元素的訪問與遍歷

0 前言 本文適合零基礎小白。 本文接上一篇文章&#xff1a;快速搞定數組的聲明、開辟空間和初始化賦值 重要的知識點 通過array index訪問數組使用for each循環遍歷數組使用Arrays.toString()方法打印數組 我們先創建一個數組&#xff0c;之后通過它來說明后面的知識。 …

初來乍到,多多關照。

從今天開始就要開始寫博客了&#xff0c;把學到的知識都在這里記錄下來&#xff0c;希望可以堅持&#xff0c;并且學到東西。

【MySQL】AUTO_INCREMENT只能應用于數值類型的列,且該列需要被索引

MySQL中的自動增量AUTO_INCREMENT&#xff0c;是有使用條件的 該列&#xff08;column&#xff09;的數據類型必須是數值型&#xff08;這點容易理解&#xff0c;數值才能自增&#xff09;該列必須被索引&#xff0c;比如定義為主鍵&#xff08;PRIMARY KEY&#xff09; 感悟…

【數據庫】數據模型基礎概念(圖文版)

0 前言 本文通過一個實例&#xff0c;來講解數據模型的基礎概念。 要求設計一個數據庫的數據模型&#xff0c;統計出你的宿舍每個人&#xff08;4個人&#xff09;的信息&#xff0c;要求包括 個人信息&#xff1a;學號、姓名、班級、年級、學院選課情況&#xff1a;學號、課程…

利用SIGCHLD信號回收子進程

子進程執行結束之后&#xff0c;父進程如果不對其進行回收&#xff0c;子進程就會變為僵尸進程。 父進程可以通過調用wait()函數和waitpid()函數去回收子進程. 由于子進程結束時會發送SIGCHLD信號給父進程&#xff0c;不過此信號的默認動作為忽略&#xff0c;我們可以通過系統函…

【匯編語言】8086匯編語言的debug中,t和p命令的區別

單步跟蹤命令&#xff08;單步進入(step in)&#xff09;&#xff1a;t命令是單步執行&#xff0c;是真的單步執行&#xff0c;碰到任何地方&#xff0c;都會一步步執行&#xff0c;遇到子程序&#xff0c;也會進入里面一步步執行再返回 單步執行命令&#xff08;單步通過(ste…

哲學家就餐問題(如何避免死鎖)(多線程版)

哲學家就餐問題 多線程編程中&#xff0c;常常會遇到線程間訪問共享資源的問題&#xff0c;如果處理不當則會發生死鎖&#xff0c;某一個線程可能永遠訪問不到共享資源。 為了避免死鎖的發生&#xff0c;提出哲學家就餐問題。 下面展示一些代碼片段 #include <stdio.h>…

【匯編語言】匯編語言如何編程,如何避免出錯

0 前言 這里以8086匯編語言舉例。 1 重要方法&#xff1a;畫流程圖 這一點不再多說&#xff01;你懂的&#xff01;只要真的畫流程圖&#xff0c;并且按此翻譯為匯編代碼&#xff0c;程序出錯幾率就會減少很多。 2 框架思維&#xff1a;構建標準編程框架 這里只舉例說明一…