許多組織會致力在其應用程式中實作輸入驗證來保護其資料。事實上,大多數網路攻擊直接針對資料庫服務器本身,而應用程式安全性根本沒有發揮作用!身為一個資料庫管理員(DBA)或資料庫開發人員,你有強大的能力來降低網路攻擊的風險和/或由此造成的損害,包括最常見的網路攻擊形式:SQL 隱碼攻擊。在今天的文章中,我們將探索一些可以大大減少遭受 SQL 隱碼攻擊的做法。
不久之前,「原子」一詞指的是無法進一步分裂的最小粒子。儘管我們已經發現原子本身是由更小的粒子組成,但該術語繼續保留其原本含義。對於關聯式資料庫而言,原子性(Atomicity)意味著資料庫執行的作業(DML 或 DDL 等)將是不可部分完成的。關聯式資料庫通常提供的原子性單位是交易(Transaction)。為什麼這很重要?原子性保證可以防止更新時只更新了某部分的資料庫,這比直接拒絕整系列的作業會引起更大的問題。在今天的文章中,我們將學習原子性是什麼以及如何在你的資料庫執行個體中強制執行它。
GROUP BY 和 ORDER BY 都是具有相似功能的子句(或陳述式),也就是排序查詢結果。但是,它們的目的截然不同。實際上差異非常大,以至於它們可以單獨使用或一起使用。如果你不確定要使用哪一個,事情可能會變得有點冒險。在今天的文章中,我們將學習這兩個子句的功能以及如何一起使用它們以最終控制查詢的輸出。為此,我們將使用 Navicat Premium 和 Sakila 範例資料庫。
在之前的文章中,我們使用 Navicat for SQL Server 將 SQL Server 中特定的欄的平均每日計數製成表格。在今天的後續文章中,我們將稍微提高難度係數,計算開始日期和結束日期欄的每日平均日期時間間隔。為了示範之用,我將使用 Navicat Premium 和 MySQL。
通常,查詢正規化資料庫需要將資料表的一個或多個通用欄位聯結。否則,可能會產生笛卡爾積。這是一個列數等於第一個資料表列數乘以第二個資料表列數的結果集。因此,如果輸入包含 1000 人和 1000 個電話號碼,則結果會有 1,000,000 個組合!這種做法並不好。話雖如此,如果你想彙總不直接相關但相似的資料表中的資料,可以使用 UNION 運算子。在今天的文章中,我們將學習一些有關使用 UNION 及其相類似的 UNION ALL 的要點。
- 2024 (1)
- 2023 (1)
- 2022 (1)
- 2021 (1)
- 2020 (1)
- 2019 (1)
- 2018 (1)
- 2017 (1)