踏上您的 MySQL 之旅
儘管近年來出現了 MongoDB、Firebase 和 Redis 等現代 NoSQL 資料庫,但 SQL 資料庫在開發人員中仍然非常受歡迎。
SQL(結構化查詢語言)是一種用於與各種資料庫中的資料互動的語言,包括 MySQL、PostgreSQL、Oracle 和 MS SQL Server 等流行資料庫。
在本文中,您將了解開始使用 MySQL 所需的一切知識,MySQL 是一個開源資料庫,為 WordPress 等內容管理系統、Shopify 等電子商務平台以及 Twitter 等社交媒體平台提供支援。
您將了解MySQL 的工作原理、關聯式資料庫及其一些關鍵概念、如何使用命令列安裝MySQL 資料庫並與之交互,以及用於建立、讀取、更新和刪除資料的現代SQL 語法在MySQL 中。
了解物件關係映射器 (ORM)
大多數使用關聯式資料庫的開發人員實際上並沒有編寫原始 SQL。更常見的是,他們使用執行物件關係映射或 ORM 的庫。
這些程式庫基本上使您的資料庫表看起來像是網站伺服器端的對象,因此您可以使用您選擇的任何物件導向的程式語言來輕鬆操作資料。
ORM 的範例包括 Sequelize (JavaScript)、Eloquent (Laravel)、SQLAlchemy (Python) 和 Active Record (Ruby on Rails)。
ORM 無需編寫原始 SQL 程式碼。相反,您可以利用物件導向程式設計的知識來建立、讀取、更新和刪除 SQL 資料庫上的資料。 ORM 讓關聯式資料庫的使用更加簡單、直覺。
關聯式資料庫管理系統 (RDMS)
本質上,關聯式資料庫管理系統由兩個主要元件組成:資料庫和查詢語言。
資料庫本身只是表的集合。在每個表中,您的實際資料都按列和行組織,與電子表格相同。關係資料庫中的表可以根據每個表通用的資料進行連結或關聯。
查詢語言用於操作和讀取資料庫中的資料。對於大多數關係型資料庫,用於操作資料的查詢語言是 SQL 的變體。
SQL 資料庫中的一些關鍵概念
如果你想學習如何使用MySQL,我們必須先了解一些基本概念,以便以視覺化的方式解釋以下SQL資料庫概念,我將使用一個名為的資料庫視覺化工具DrawSQL。首先,我們將了解架構和資料類型。
架構和資料類型
您可以將架構視為定義表的整體結構及其與其他表的關係的藍圖。
例如,考慮以下使用者表的架構:

在上面的表格圖中,您會注意到每一行都是一個字典,其中鍵代表資料庫中的列,值代表可以儲存在其中的資料類型。
MySQL中有多種資料類型,不同的SQL資料庫資料類型也不同。
您也會注意到接受整數值的 id
鍵前面也有一個鍵。這表示 id
是使用主鍵約束定義的。
因此每一列的id
的值不能為空,且必須唯一。因此,兩個或多個使用者永遠不能共享相同的主鍵,並且每一行都可以透過其主鍵來識別。
這些規則共同構成了users 表的架構。
讓我們更深入了解 MySQL 資料庫中的限制。
約束
我們之前看到了主鍵約束,它確保指定鍵的值對於表中的每一列都是唯一的。
在 MySQL 中,約束是允許或限製表中儲存哪些值的規則。它們有助於限制將插入表中的資料類型,確保表內資料的準確性和完整性。
MySQL 中常用下列約束:
-
NOT NULL
:確保列不能有 NULL 值 -
UNIQUE
:確保列中的所有值都彼此不同 -
主鍵
:NOT NULL 與UNIQUE 的組合-唯一標識表中的每一行 -
外鍵
:用於將兩個表連結在一起 -
CREATE INDEX
:用於快速建立資料庫並從資料庫檢索資料 -
CHECK
:確保列中的值符合指定條件 -
DEFAULT
:如果未指定值,則為列設定預設值
資料庫規範化
為了添加更多上下文,我們假設用戶表格用於儲存線上購物網站中的註冊用戶。
通常,線上購物網站的資料庫中必須有一個產品表格和一個購物車表。 產品將包含用戶可用的所有產品,購物車將包含特定用戶打算購買的特定商品以及每件商品的數量。 p>
到目前為止所建立的所有表格如下:
#所有這些表都是唯一的實體。例如,這表示 carts 表不需要儲存任何有關使用者的資訊。
從技術上講,沒有什麼可以阻止我們將購物車資料合併到用戶表中。畢竟,兩組資訊都是相互關聯的(用戶擁有購物車)。然而,這種方法最終會導致表擁擠,從而非常難以管理。
相反,我們採取了更永續的方法,創建一個單獨的購物車表來儲存所有與購物車相關的資料。然後,我們透過將外鍵 user_id
和 product_id
放置在 carts 表中來建立對其他表的參考。
這樣,購物車就可以訪問有關擁有購物車的用戶以及購物車中存在的產品的任何信息,儘管其中沒有實際存儲任何此類信息。
安裝並學習如何使用 MySQL
現在我們已經對 MySQL 和 MySQL 伺服器有了更高層次的了解,讓我們透過在我們的系統上安裝 MySQL 來實作。
要在系統上安裝 MySQL,請前往 MySQL 社群下載頁面並下載 MySQL 安裝程式。
下載完成後,執行安裝程式並完成安裝精靈以安裝 MySQL。
選擇安裝類型時,請確保包含 MySQL 伺服器產品。我建議使用開發人員預設選項。
成功安裝後,您應該可以從命令列存取 MySQL 伺服器命令。
但是,要從命令列使用 MySQL,您首先需要驗證自己的身分。執行以下命令,並在佔位符中填寫您的使用者名稱:
mysql -u <your username> -p
系統將提示您輸入管理員密碼,如果這兩個詳細資訊都正確,您將被授予從命令列存取 MySQL 的權限。
請記住,MySQL 的預設使用者名稱是root,預設密碼為空。
MySQL 如何處理常見 SQL 操作?
建立 MySQL 伺服器和資料庫
要在 MySQL 中建立資料庫,我們使用 CREATE DATABASE
語句,後面跟著資料庫名稱:
CREATE DATABASE shopping_site;
語句是告訴系統做某事的程式碼。 SQL 語句總是以分號結尾。大寫的單字是保留的 SQL 關鍵字,SQL 將解釋它們來執行某些操作。
執行上述指令將在 MySQL 中建立一個名為 shopping_site 的空資料庫。
要查看 MySQL 實例中存在的所有資料庫,請執行 SHOW DATABASE
。
在資料庫中建立表格
要在新資料庫中建立表,請使用 CREATE TABLE
語句,後面跟著表名稱和包含我們要在此表中包含的列列表的括號:
CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(255), last_name VARCHAR(255), email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP );
對於使用者中的每一列,我們指定了該列的資料類型。我們也為 id 和 email 欄位新增了一系列約束。
運行該命令將在資料庫中建立一個名為users的空但結構化的表。
在表格中建立新記錄
要在表格中建立新記錄,請使用 INSERT INTO
語句,後面跟著要插入值的表:
INSERT INTO users(first_name, last_name, email, password) VALUES( 'Kingsley', 'Ubah', 'ubahthebuilder@gmail.com', '12345678' );
在第一個括號中,我們指定了要插入值的欄位。然後,在第二個括號中,我們按照正確的順序指定要插入的值。
執行該指令會將這些值插入users表中的指定列。
从表中读取
要从数据库查询数据,请使用 SELECT
语句。
例如,如果我们想从 users 表中选择所有内容,我们可以使用以下语句:
SELECT * FROM users;
星号 (*
) 代表我们数据库中的所有内容。该语句将返回整个表以及每一列。
如果我们只需要列的子集,例如 id 和 email,我们可以指定列来代替星号:
SELECT id, email FROM users;
在选择数据方面,我们的能力是无限的。
删除表格
要从 MySQL 中完全删除表,请使用 DROP
语句,后跟表名称:
DROP TABLE users;
现在,使用此命令时需要小心!它将永久删除users表中的所有数据。另外,不要将其与 DROP DATABASE
语句混淆,该语句会删除整个数据库。
就是这样!现在您知道如何使用 MySQL!
MySQL 是一个开源关系数据库管理系统,即使在今天,它仍然为网络的重要部分提供支持。结构化查询语言或 SQL 用于在 MySQL 数据库中操作和存储数据。
在这篇文章中,我们回顾了 SQL 的一些关键概念,包括 ORM、模式、约束和数据库规范化。我们还回顾了 MySQL 的安装和设置过程。
最后,我们介绍了一些负责在 MySQL 中操作数据的 SQL 语句。
以上是踏上您的 MySQL 之旅的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP8.1中的枚舉功能通過定義命名常量增強了代碼的清晰度和類型安全性。 1)枚舉可以是整數、字符串或對象,提高了代碼可讀性和類型安全性。 2)枚舉基於類,支持面向對象特性,如遍歷和反射。 3)枚舉可用於比較和賦值,確保類型安全。 4)枚舉支持添加方法,實現複雜邏輯。 5)嚴格類型檢查和錯誤處理可避免常見錯誤。 6)枚舉減少魔法值,提升可維護性,但需注意性能優化。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...
