MySQL8 0資料庫基礎教程 二 理解 關係

2021-10-02 20:21:09 字數 2240 閱讀 8042

形如 linux 哲學一切都是檔案,在 sql 領域也有這樣一條至理名言

一切都是關係

所謂關聯式資料庫(relational database)是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的資料。

現實世界中的各種實體以及實體之間的各種聯絡均用關係模型表示。現如今雖然對此模型有一些批評意見,但它還是資料儲存的傳統標準。標準資料查詢語言sql就是一種基於關聯式資料庫的語言,這種語言執行對關聯式資料庫中資料的檢索和操作。

關係模型由關係資料結構、關係操作集合、關係完整性約束三部分組成。

關係模組中常用的操作包括:

其中,使用最多、也最複雜的操作就是資料查詢,具體來說包括

完整性約束包括

實體完整性(是關係模型中資料庫完整性三項規則的其中之一。實體完整性這項規則要求每個資料表都必須有主鍵,而作為主鍵的所有字段,其屬性必須是獨一及非空值。

在關聯式資料庫中,唯一標識每一行資料的字段稱為主鍵(primary key),主鍵字段不能為空。每個表有且只能有乙個主鍵。

又稱引用完整性,是資料的屬性,用以表明引用的有效。參照的完整性不允許關係中有不存在的實體引用。參照完整性與實體完整性二者,皆是關係模型必須滿足的完整性約束條件,其目的在於保證資料的一致性。

外來鍵的參照完整性。

基於業務需要自定義的約束。

mysql 中只有 innodb 儲存引擎支援外來鍵約束;mysql 8.0.16 增加了對檢查約束的支援。因此我們強大的 mysql 支援以上所有約束。

從 mysql 5.5 開始預設使用 innodb 儲存引擎,支援事務處理(acid)、行級鎖定、故障恢復、多版本併發控制(mvcc)以及外來鍵約束等

sql 是一種宣告性的程式語言,語法接近於自然語言(英語)。通過幾個簡單的英文單詞,例如 select、insert、update、create、drop 等,完成大部分的資料庫操作。

sql 語句不區分大小寫,但是遵循一定的規則可以讓**更容易閱讀。

sql 是一種宣告式的語言,宣告式語言的主要思想是告訴計算機想要什麼結果(what),但不指定具體怎麼做。這類語言還包括 html、正規表示式以及函式式程式設計等。

對於 sql 語句而言,它所操作的物件是乙個集合(表),操作的結果也是乙個集合(表)。例如以下查詢:

select emp_id, emp_name, salary

from employee;

其中 employee 是乙個表,它是該語句查詢的物件;同時,查詢的結果也是乙個表。所以,我們可以繼續擴充套件該查詢:

select emp_id, emp_name, salary

from

(select emp_id, emp_name, salary

from employee

) dt;

我們將括號中的查詢結果(取名為 dt)作為輸入值,傳遞給了外面的查詢;最終整個語句的結果仍然是乙個表。

sql 中的查詢可以完成各種資料操作,例如過濾轉換、分組彙總、排序顯示等;但是它們本質上都是針對表的操作,結果也是表。

不僅僅是查詢語句,sql 中的插入、更新和刪除都以集合為操作物件。我們再看乙個插入資料的示例:

create

table t(id integer);

-- 適用於 mysql、sql server 以及 postgresql

insert

into t(id)

values(1

),(2

),(3

);

我們首先使用 create table 語句建立了乙個表,然後使用 insert into 語句插入資料。在執行插入操作之前,會在記憶體中建立乙個包含 3 條資料的臨時集合(表),然後將該集合插入目標表中。由於我們通常一次插入一條資料,以為是按照資料行進行插入;實際上,一條資料也是乙個集合,只不過它只有乙個元素而已。

union all 是 sql 中的並集運算,用於將兩個集合組成乙個更大的集合。此外,sql 還支援交集運算(intersect)、差集運算(except)以及笛卡兒積(cartesian product)

包含 3 個表:員工表(employee)、部門表(department)和職位表(job)。

關係模型中定義了乙個簡單的資料結構,即關係(表),用於儲存資料。而 sql 是關聯式資料庫的通用標準語言,通過宣告的方式執行資料定義、資料操作、訪問控制等。

記住,對於 sql,一切都是關係(表)。

徹底刪除mysql8 0資料庫

廢話不多說,我們直接上流程 第一步 關掉服務 有的服務執行時,與刪除會有衝突,先關閉服務 按住windows r,在命令視窗輸入services.msc 找到如圖的mysql,將其關掉,即可 第二步 按住windows r,在命令視窗輸入regedit 在登錄檔裡找到以下currentcontrol...

Mysql 8 0 查詢資料庫事務隔離級別

根據慕課網課程中的方法,查詢事務隔離級別使用 select tx isolation 我在sequal pro中,卻提示錯誤 unknown system variable tx isolation 查詢了官方文件,在8.0 就已經拋棄了這樣的查詢方法,在mysql 8.0.3 中,該變數已經被 t...

MySQL 8 0 的關聯式資料庫新特性

mysql 8.0 當前的最新版本是 8.0.4 rc,估計正式版本出來也快了。本文介紹幾個 8.0 在關聯式資料庫方面的主要新特性。你可能已經知道 mysql 從版本 5.7 開始提供了 nosql 儲存的功能,在 8.0 中這部分功能也得到了一些改進,但鑑於這個在實際當中用得極少,本人也是沒用過...