數據庫入門:從零開始構建你的第一個數據庫

歡迎來到數據庫的世界!今天,我們將一起探索如何創建、管理和查詢數據庫。無論你是初學者還是希望加深理解的開發者,這篇博客都將幫助你更好地掌握數據庫的基礎知識。

一、數據庫的基本操作

創建數據庫

首先,讓我們從創建一個新數據庫開始。想象一下數據庫就像是一個巨大的文件柜,每個文件柜都有自己的名字和用途。使用以下SQL語句可以創建一個新的文件柜(數據庫):

CREATE DATABASE IF NOT EXISTS mydb;

這行代碼的意思是:如果不存在名為mydb的數據庫,則創建它。你可以用SHOW DATABASES;查看所有已有的文件柜。

使用和修改數據庫

選擇了要工作的文件柜后,可以通過USE mydb;進入它。如果你想改變這個文件柜的語言設置(字符集),可以這樣做:

ALTER DATABASE mydb CHARACTER SET utf8mb4;

最后,如果你不再需要某個文件柜了,可以用DROP DATABASE IF EXISTS mydb;將其刪除。

二、數據表的操作

在數據庫中,數據是以表格的形式存儲的。這些表格就像Excel中的工作表一樣,每列代表一種類型的數據。

創建和查看表格

創建表格的過程類似于設計一張信息收集表。為了查看表格的設計結構,可以使用:

DESC students;

這將顯示表格的所有列及其屬性。想要詳細了解表格是如何被創建的?試試SHOW CREATE TABLE students;

修改表格結構

隨著時間的發展,你可能需要對表格進行調整。比如,添加新的信息字段(列):

ALTER TABLE students ADD email VARCHAR(100);

或者修改已有字段的類型:

ALTER TABLE students MODIFY age TINYINT;

甚至重命名字段或刪除不需要的字段也是常有的事:

ALTER TABLE students CHANGE email student_email VARCHAR(100);
ALTER TABLE students DROP student_email;

三、數據的插入、更新和刪除

這部分涉及到如何向表格中添加數據、更新現有數據以及刪除數據。

  • 插入數據:向表格中添加一行或多行數據。
    INSERT INTO students (name, age) VALUES ('張三', 20), ('李四', 21);
  • 更新數據:根據條件更新特定行的數據。
    UPDATE students SET age = 23 WHERE name = '張三';
  • 刪除數據:刪除符合條件的數據行。
    DELETE FROM students WHERE age > 22;

四、約束與索引

約束用于確保數據的準確性和一致性。例如,主鍵約束保證每一行都有唯一的標識符,非空約束確保某些列不能為空等。

  • 主鍵:每個表格只能有一個主鍵,它可以由一個或多個列組成。
    ALTER TABLE table_name ADD PRIMARY KEY (column_name);
  • 自增:通常與主鍵一起使用,自動為每條記錄生成唯一的ID。
    id INT AUTO_INCREMENT,
    PRIMARY KEY(id)

五、查詢數據

查詢是數據庫中最常用的功能之一。通過不同的查詢語句,我們可以輕松獲取所需的信息。

  • 基本查詢:選擇表格中的所有列或指定列。
    SELECT * FROM students;
    SELECT name, age FROM students;
  • 排序查詢:按照指定的順序排列結果。
    SELECT * FROM students ORDER BY age ASC;
  • 聚合查詢:用于統計分析,如計算總數、平均值等。
    SELECT COUNT(*) AS total_students FROM students;

總結來說,數據庫管理不僅僅是關于數據的存儲,它還涉及到如何高效地組織、訪問和保護數據。希望通過這篇博客,你能對數據庫有一個更加清晰的理解。

下一篇博客我們將開始走進數據庫的基礎的一些語法

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

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

相關文章

從匯編角度揭秘C++構造函數(1)

C的構造函數一直比較神秘,今天我們通過匯編的角度來揭秘一下,它的本質是什么。與常規函數有什么不同。從以下這段代碼說起: class Person { public:Person(int age) { _age age; }void printAge(){ printf("age %d\r\n",_age); …

java10學習筆記

Java 10 于 2018 年 3 月發布,是 Java 平臺按照新的六個月發布周期發布的第一個版本。雖然相比 Java 8 和 Java 9 的大型更新,Java 10 的變化較小,但仍然引入了一些重要的特性,特別是本地變量類型推斷(var)…

Flutter Listview的基本使用

Listview() 前端頁面常見的一個以列表方式顯示內容的組件。可垂直或水平滾動的列表。屬性說明scrollDirection設置滾動的方向,取值包括horizontal、verticalreverse設置是否翻轉,默認值falseitemExtent設置滾動方向子元素的長度,垂直方向為高…

強化學習筆記:從Q學習到GRPO

推薦學習huggingface的強化學習課程,全面了解強化學習的發展史。 以下是個人筆記,內容不一定完整,有些是個人理解。 基于值函數(value function)的強化學習 基于值函數(value function)的強化學習:學習的是一個值函數&#xff0…

MySQL索引底層原理與性能優化實踐

#技術棧深潛計劃一、前言 在日常開發中,MySQL數據庫以其高效、易用、可擴展等特性成為最主流的關系型數據庫之一。而索引作為數據庫查詢優化的核心工具,被譽為“數據庫的加速器”。但你真的了解MySQL索引的底層原理嗎?為什么InnoDB默認采用B樹…

Ext系列文件系統

1.硬件常見的硬件有磁盤、服務器、機柜、機房機械磁盤但是計算機中唯一的一個機械設備磁盤外設的特點就是外設慢容量大,價格便宜1.1.磁盤的物理結構磁盤的物理圖:磁盤的存儲圖扇區:是磁盤存儲數據的基本單位,512字節,塊設備磁盤的…

前綴函數——KMP的本質

前綴函數我個人覺得 oiwiki 上的學習順序是很合理的,學 KMP 之前先了解前綴函數是非常便于理解的。前后綴定義 前綴 prefixprefixprefix 指的是從字符串 SSS 的首位到某個位置 iii 的一個子串,這樣的子串寫作 prefix(S,i)prefix(S,i)prefix(S,i)。 后綴 …

解決chrome下載crx文件被自動刪除,加載未打包的擴展程序時提示“無法安裝擴展程序,因為它使用了不受支持的清單版本解決方案”

解決chrome下載crx文件被自動刪除 【chrome設置-隱私與安全-安全瀏覽】,選擇 不保護 【chrome設置-下載內容】,勾選 下載前詢問每個文件的保存位置 下載crx文件時,選擇保存文件夾,將 .crx后綴 改為 .zip后綴,再確定。 …

嵌入式學習day23-shell命令

linux軟件編程學習大綱:1.IO操作文件2.多任務編程3.網絡編程4.數據庫編程5.硬件設備管理學習目標:1.學習接口調用(第一層)2.軟件操作流程和思想(第二層)3.軟件設計思想和流程架構(第三層&#x…

GPT-5 系列深度詳解:第1章-引言(目錄)

1 引言2 模型數據與訓練3 觀察到的安全挑戰與評估 3.1 從強制拒絕到安全完成 3.2 禁?內容 3.3 拍?屁 3.4 越獄 3.5 指令層級 3.6 幻覺 3.7 欺騙 3.7.1 欺騙思維鏈監控 3.8 圖像輸入 3.9 健康 3.10 多語言性能 3.1.1公平性與偏見: BBQ評估4 紅隊測試與外部評估…

NineData 新增支持 AWS ElastiCache 復制鏈路

2025 年,絕大多數企業已完成業務上云,以獲取更高的彈性、可擴展性和成本效益。AWS ElastiCache 作為 AWS 提供的全托管式內存數據庫服務,已成為許多企業在云上構建高并發、低延遲應用的理想選擇。NineData 數據復制現已全面支持從自建 Redis …

人工智能-python-特征選擇-皮爾遜相關系數

以下是關于特征選擇中常用方法的表格總結,并且詳細闡述了皮爾遜相關系數的原理、計算方法、步驟以及示例。 常用特征選擇方法總結方法原理優點缺點使用場景過濾法(Filter Method)基于特征的統計信息(如相關性、方差等)…

LabVIEW多循環架構

?LabVIEW的多循環架構是一種常見的架構,本文Temperature Monitoring.vi 采用 LabVIEW 典型的多循環并行架構,通過功能模塊化設計實現溫度監測全流程,各循環獨立運行又協同工作,構成完整的監測系統。1. 事件處理循環(E…

深入理解Maven BOM

一、什么是Maven BOM? 1.1 BOM的基本概念 Maven BOM(Bill of Materials,材料清單)是一種特殊的POM文件,它主要用于集中管理多個相關依賴的版本。BOM本身不包含任何實際代碼,而是作為一個 版本管理的"參…

Mysql分頁:高效處理海量數據的核心技術

Mysql分頁:高效處理海量數據的核心技術01 引言 在Web應用、移動應用或數據分析場景中,數據庫常常需要處理百萬甚至千萬級的數據記錄。一次性加載所有數據不僅效率低下,還會消耗大量網絡帶寬和內存資源。數據庫分頁技術正是解決這一挑戰的關鍵…

通過 Docker 運行 Prometheus 入門

Promethues 組件 prometheus serverexporteralertmanager 環境準備 Docker 拉取鏡像備用 # https://hub.docker.com/r/prom/prometheus docker pull m.daocloud.io/docker.io/prom/prometheus:main# https://hub.docker.com/r/prom/node-exporter docker pull m.daocloud.io/do…

Java 8特性(一)

目錄 一、Lambda表達式 1、語法格式: (1)接口名 對象名(參數類型1參數名1,....參數類型n 參數名n)->{方法體;} (2)參數類型h 參數名n:接口中抽象方法的參數項 (3)->:表示連接操作 &a…

【代碼隨想錄|232.用棧實現隊列、225.用隊列實現棧、20.有效的括號、1047.刪除字符串中的所有相鄰重復項】

232.用棧實現隊列 timutimtit232. 用棧實現隊列 - 力扣&#xff08;LeetCode&#xff09; class MyQueue { public:stack<int> Sin;stack<int> Sout;MyQueue() {}void push(int x) {Sin.push(x);}int pop() {if (Sout.empty()) { // 出棧為空就把入棧的數導出來w…

碼上爬第三題【協程+瀏覽器調試檢測】

前言&#xff1a;圖靈第三題就是對用戶瀏覽器調試檢測&#xff0c;檢測鼠標右擊打開控制臺&#xff0c;檢測鍵盤按鍵ctrlshifti&#xff0c;從瀏覽器設置打開開發者工具也不行&#xff0c;應該是有瀏覽器寬高檢測的&#xff0c;所以我們保證瀏覽器頁面寬高不變即可。你如果想右…

windows、linux應急響應入侵排查

windows入侵排查 1.1檢查賬號 1.查看服務器是否有弱口令&#xff0c;遠程管理端口是否對公網開放 2.查看服務器是否存在可疑賬號、新增賬號 檢查方法&#xff1a;打開 cmd 窗口&#xff0c;輸入 lusrmgr.msc 命令&#xff0c;查看是否有新增/可疑的賬號&#xff0c;如有管…