作為一種交易性程式設計語言,SQL 被設計成全部執行或全部不執行其工作。同時,程序性程式設計語言(如 C# 和 Java)在本質上通常是反覆運算的。因此,它們傾向於在相同的程式碼上迴圈,直到堆棧减少並得到完全處理。資料指標(Cursor)是 SQL 交易方法的一個顯著例外。與 WHILE 迴圈一樣,資料指標允許程式設計師通過對 SELECT 結果集的每一列進行反覆運算來分別處理它們。雖然許多 SQL 純粹主義者出於蔑視或恐懼而避開反覆運算,但它們在資料庫開發中有自己的位置,非常值得我們學習。為此,今天的文章將介紹何時以及如何在預存程序中使用資料指標。
很多時候,我們可能需要將資料從一個現有的資料表複製到一個新的資料表中,例如,備份資料,或就像為了測試將一個環境中的資料複製到另一個環境中。在 SQL 中,通常會使用以下的 CREATE TABLE 和 SELECT 陳述式:
CREATE TABLE new_table; SELECT SELECT col, col2, col3 INTO new_table FROM existing_table;
在第一個陳述式中,資料庫使用 CREATE TABLE 陳述式中指定的名稱建立一個新資料表。 新資料表的結構由 SELECT 陳述式的結果集定義。然後,資料庫將 SELECT 陳述式的結果擴展到新資料表中。
儘管上述的程序可以完美地複製資料表,但是有一種更簡單的方法,我們可以使用 CREATE TABLE 陳述式的變體將資料表複製到新資料表中!今天我們將在這裡學習如何使用它。
在認識資料庫交易文章中,我們學習了交易是如何透過保證使用交易執行的所有作業同時成功或同時失敗來防止資料遺失和不一致。在今天的後續文章中,我們將學習如何在預存程序中使用交易,以確保所涉及的所有資料表保持一致的狀態。
許多組織會致力在其應用程式中實作輸入驗證來保護其資料。事實上,大多數網路攻擊直接針對資料庫服務器本身,而應用程式安全性根本沒有發揮作用!身為一個資料庫管理員(DBA)或資料庫開發人員,你有強大的能力來降低網路攻擊的風險和/或由此造成的損害,包括最常見的網路攻擊形式:SQL 隱碼攻擊。在今天的文章中,我們將探索一些可以大大減少遭受 SQL 隱碼攻擊的做法。
- 2025 (1)
- 2024 (1)
- 2023 (1)
- 2022 (1)
- 2021 (1)
- 2020 (1)
- 2019 (1)
- 2018 (1)
- 2017 (1)