首頁  >  文章  >  後端開發  >  踏上您的 MySQL 之旅

踏上您的 MySQL 之旅

WBOY
WBOY原創
2023-09-02 14:09:071321瀏覽

儘管近年來出現了 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 之旅
用戶表

在上面的表格圖中,您會注意到每一行都是一個字典,其中鍵代表資料庫中的列,值代表可以儲存在其中的資料類型。

MySQL中有多種資料類型,不同的SQL資料庫資料類型也不同。

您也會注意到接受整數值的 id 鍵前面也有一個鍵。這表示 id 是使用主鍵約束定義的。

因此每一列的id的值不能為空,且必須唯一。因此,兩個或多個使用者永遠不能共享相同的主鍵,並且每一行都可以透過其主鍵來識別。

這些規則共同構成了users 表的架構。

讓我們更深入了解 MySQL 資料庫中的限制。

約束

我們之前看到了主鍵約束,它確保指定鍵的值對於表中的每一列都是唯一的。

在 MySQL 中,約束是允許或限製表中儲存哪些值的規則。它們有助於限制將插入表中的資料類型,確保表內資料的準確性和完整性。

MySQL 中常用下列約束:

  • NOT NULL:確保列不能有 NULL 值
  • UNIQUE:確保列中的所有值都彼此不同
  • 主鍵:NOT NULL 與UNIQUE 的組合-唯一標識表中的每一行
  • 外鍵:用於將兩個表連結在一起
  • CREATE INDEX:用於快速建立資料庫並從資料庫檢索資料
  • CHECK:確保列中的值符合指定條件
  • DEFAULT:如果未指定值,則為列設定預設值

資料庫規範化

為了添加更多上下文,我們假設用戶表格用於儲存線上購物網站中的註冊用戶。

通常,線上購物網站的資料庫中必須有一個產品表格和一個購物車表。 產品將包含用戶可用的所有產品,購物車將包含特定用戶打算購買的特定商品以及每件商品的數量。 p>

到目前為止所建立的所有表格如下:

踏上您的 MySQL 之旅

#所有這些表都是唯一的實體。例如,這表示 carts 表不需要儲存任何有關使用者的資訊。

從技術上講,沒有什麼可以阻止我們將購物車資料合併到用戶表中。畢竟,兩組資訊都是相互關聯的(用戶擁有購物車)。然而,這種方法最終會導致表擁擠,從而非常難以管理。

相反,我們採取了更永續的方法,創建一個單獨的購物車表來儲存所有與購物車相關的資料。然後,我們透過將外鍵 user_idproduct_id 放置在 carts 表中來建立對其他表的參考。

這樣,購物車就可以訪問有關擁有購物車的用戶以及購物車中存在的產品的任何信息,儘管其中沒有實際存儲任何此類信息。

這種在關聯式資料庫中組合和連結表格的方法稱為規範化。我在本文中只涉及了規範化的基礎知識 - 如果您正在為 Web 應用程式設計資料庫模式,那麼值得閱讀更多有關規範化的內容。

安裝並學習如何使用 MySQL

現在我們已經對 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
);

對於使用者中的每一列,我們指定了該列的資料類型。我們也為 idemail 欄位新增了一系列約束。

運行該命令將在資料庫中建立一個名為users的空但結構化的表。

在表格中建立新記錄

要在表格中建立新記錄,請使用 INSERT INTO 語句,後面跟著要插入值的表:

INSERT INTO users(first_name, last_name, email, password)
VALUES(
    'Kingsley',
    'Ubah',
    'ubahthebuilder@gmail.com',
    '12345678'
);

在第一個括號中,我們指定了要插入值的欄位。然後,在第二個括號中,我們按照正確的順序指定要插入的值。

執行該指令會將這些值插入users表中的指定列。

因為我們將id欄位設定為自動遞增,所以該值會自動新增。另外,時間戳記是MySQL自動產生的,所以我們不需要自己指定。

从表中读取

要从数据库查询数据,请使用 SELECT 语句。

例如,如果我们想从 users 表中选择所有内容,我们可以使用以下语句:

SELECT * FROM users;

星号 (*) 代表我们数据库中的所有内容。该语句将返回整个表以及每一列。

如果我们只需要列的子集,例如 idemail,我们可以指定列来代替星号:

SELECT id, email FROM users;

在选择数据方面,我们的能力是无限的。

删除表格

要从 MySQL 中完全删除表,请使用 DROP 语句,后跟表名称:

DROP TABLE users;

现在,使用此命令时需要小心!它将永久删除users表中的所有数据。另外,不要将其与 DROP DATABASE 语句混淆,该语句会删除整个数据库。

就是这样!现在您知道如何使用 MySQL!

MySQL 是一个开源关系数据库管理系统,即使在今天,它仍然为网络的重要部分提供支持。结构化查询语言或 SQL 用于在 MySQL 数据库中操作和存储数据。

在这篇文章中,我们回顾了 SQL 的一些关键概念,包括 ORM、模式、约束和数据库规范化。我们还回顾了 MySQL 的安装和设置过程。

最后,我们介绍了一些负责在 MySQL 中操作数据的 SQL 语句。

以上是踏上您的 MySQL 之旅的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn