SQLite 3.35版本已發布 在此新版本的數據庫管理器中 數學函數加法突出顯示, 並支持ALTER TABLE DROP COLUMN表達式從表中刪除列,改進的操作等。
對於那些不熟悉SQLite軟件包的人 這是一個輕量級的DBMS,設計為插件庫。 SQLite代碼 作為公共領域分發, 也就是說,它可以不受限制地免費使用,並且可以出於任何目的免費使用。
SQLite 3.35的主要新功能
如開頭所述,在這個新版本中 內置數學函數 (log2(),cos(),tg(),exp(),ln(),pow()等) 可以在SQL中使用。 要啟用內置功能,需要帶有“ -DSQLITE_ENABLE_MATH_FUNCTIONS”選項的程序集。
表達 現在,“ ALTER TABLE DROP COLUMN”支持從表中刪除列 並刪除以前存儲在此列中的數據。
執行UPSERT操作(添加或修改),如果您無法通過“ INSERT”添加數據(例如,記錄,則可以執行UPDATE(而不是INSERT)。
在新版本中,允許指定多個塊«衝突中«,將按順序處理。 在最後一個“ ON CONFLICT”塊中,不允許指定衝突定義參數以使用“ DO UPDATE”。
行動 DELETE,INSERT和UPDATE支持RETURNING表達式,可以使用 顯示已刪除,已插入或已修改記錄的內容。 例如,“插入...返回ID”將返回添加的行標識符,而“更新...設置價格=價格* 1.10返回價格”將返回更新價格的值。
對於允許使用時間命名結果集的通用表表達式(通用表表達式,CTE),使用WITH運算符,允許選擇模式“ MATERIALIZED”和“ NOT MATERIALIZED”。
- “ MATERIALIZED”表示將視圖中指定的查詢緩存在單獨的物理表中,隨後從該表中檢索數據。
- 並使用“未進行材料化”,每次訪問視圖時都將執行重複查詢。 最初,SQLite默認默認為“ NOT MATERIALIZED”,但由於多次使用的CTE,現在已更改為“ MATERIALIZED”。
其他變化 從這個新版本中脫穎而出:
- 對於包含帶有TEXT或BLOB類型的非常大的值的數據庫執行VACUUM操作時,減少了內存消耗。
- 已經完成了提高優化器和查詢調度程序性能的工作。
- 在將min和max函數與表達式“ IN”一起使用時,添加了優化。
- EXISTS語句的執行已加快。
- 實現了JOIN中使用的UNION ALL表達式的子查詢的擴展。
- 用於IS NOT NULL表達式的索引。
- 為帶有“ NOT NULL”標誌的列提供了“ x IS NULL”和“ x IS NOT NULL”到FALSE或TRUE的轉換。
- 如果操作未更改與外鍵關聯的列,則跳過UPDATE中的外鍵檢查。
- 如果將WHERE子句的某些部分限制為使用常量和窗口函數中使用的“ PARTITION BY”子句表達式的副本,則允許將這些部分移動到包含窗口函數的子查詢中。
更改為命令行界面:
- 添加了“ .filectrl data_version”命令。
- “ .once”和“ .output”命令增加了對使用未命名管道(“ |”)將輸出傳遞到調用的控制器的支持。
- “ .stats”命令添加了“ stmt”和“ vmstep”參數,以顯示有關虛擬機計數器和表達式的統計信息。
終於 如果您有興趣了解更多信息 關於此新版本的SQLite,您可以查看詳細信息 通過轉到以下鏈接。