Jailer Database
Tools提供數據庫導出功能,可以在軟件上連接到多個數據庫,從關系數據庫中導出一致的、引用完整的行集,您可以選擇創建多個連接,支持PostgreSQL、oracle、mysql、MariaDB、Microsoft
sql server、IBM
Db2、SQLite等多種常用的數據庫,連接完畢就可以在軟件查詢數據,分析數據庫,創建提取模型,分析SQL腳本,從而篩選自己需要的數據將其導出到電腦使用,軟件提供一個案例內容,可以在軟件學習導出數據的方式,也可以結合官方的教程導出數據!
數據庫子集和關系數據瀏覽工具。通過遵循基于外鍵或用戶定義的關系在數據庫中雙向導航。從關系數據庫中導出一致的、引用完整的行集。刪除不違反完整性的數據。生成拓撲排序的 SQL-DML,分層結構的 XML。和數據庫單元數據集。
從生產數據庫中導出一致且引用完整的行集,并將數據導入開發和測試環境。
數據瀏覽。通過遵循基于外鍵或用戶定義的關系在數據庫中雙向導航。
具有代碼完成、語法突出顯示和數據庫元數據可視化功能的 SQL 控制臺。
在不違反完整性的情況下刪除和歸檔過時的數據,從而提高數據庫性能。
API 提供對導出/導入功能的編程訪問。http://jailer.sourceforge.net/api.html
包含一個演示數據庫,您無需任何配置工作即可獲得第一印象。
Jailer是一個用于數據庫子集設置、模式和數據瀏覽的工具。
它從數據庫中創建小片段,并允許您按照關系在數據庫中導航。
非常適合創建測試數據的小樣本或使用相關生產數據進行局部問題分析。
支持的數據庫
由于使用了JDBC技術,基本上支持任何DMBS。
Jailer還使用額外的知識來應對主要數據庫系統的特殊性。這些是:
PostgreSQL
Oracle
MySQL
MariaDB
Microsoft SQL Server
IBM Db2
SQLite
Sybase
Amazon Redshift
Firebird
Informix Dynamic Server
H2
HSQL (HyperSQL)
Derby
Interbase
導出數據
在本教程中,您將學習如何從 關系數據庫分為拓撲排序的SQL-DML,即 以無外鍵的方式排序的 INSERT 語句序列 在執行過程中將違反禁忌。
目的
導出與員工相關的所有數據 將“Scott”命名為SQL腳本。
第 1 步。設置數據庫
請參閱“準備”或使用演示數據模型“演示斯科特(7 個表)”
第 2 步。出口員工斯科特(無限制)
現在讓我們 嘗試導出名為斯科特的員工。為此,我們需要一個提取模型。
選擇“員工”作為要從中提取的表,然后在“位置”字段中鍵入 T.NAME=“SCOTT”:
此提取模型描述一組包含 名為“SCOTT”的員工,與之相關的實體 員工、與這些實體關聯的實體等 四。
導出此集(導出 數據按鈕或 Tools>導出數據)。獄卒優先 要求輸入新提取模型的文件名。叫它斯科特.csv。之后,將顯示“數據導出”對話框:
在第一個字段中鍵入 scott.sql。這 定義要生成的導出文件的名稱。
單擊導出數據。進度面板顯示:
Jailer 生成了一個文件scott.sql其中包含 Scott、他的老板的插入語句, 對于總統和斯科特的部門,工資等級和 項目參與。
但是,為什么所有其他員工也有聲明呢?
單擊“每個表的行數”概述中的“員工”。這將顯示導致其他員工記錄的所有流程步驟。
如您所見,分配給與 SCOTT 相同的部門的所有員工都將被導出。同樣,屬于相同工資等級的所有員工也是如此。
第 3 步。出口員工斯科特(受限)
出口 員工也需要輸出他的老板和部門。 否則,導出的實體集將不一致(由于 基于外鍵約束的依賴關系)。不 限制使我們無法排除工資等級和 導出的獎金,但我們不這樣做,因為結果集 將是不完整的。
另一方面,我們不想導出所有下屬 員工,或與員工在同一部門工作的所有員工 斯科特。
排除下屬、部門成員和“相同” 工薪級員工,我們必須限制一些 協會。
限制是 關聯連接條件(在 SQL 語法中)的擴展 關聯的一個方向。殘疾(或錯誤)代表不滿意 條件。
定義限制:
從部門到員工
從員工到員工(反向老板)
從工資級到員工
從項目到project_PARTICIPATION
從角色到PROJECT_PARTICIPATION
再次使用工具->導出數據。獄卒現在將僅導出與 斯科特。
刪除數據
本教程向您展示如何在沒有的情況下從數據庫中刪除行 違反其余數據的完整性。
刪除數據與數據導出密切相關。一樣 應用限制,不會刪除任何行,這也不是 出口。這樣,您始終可以通過以下方式恢復已刪除的行 重新導入它們。
刪除腳本包含 所有未關聯的導出行的 DELETE 語句 根據受限數據模型的任何非導出行。 此外,可以從刪除中排除表,以便其 行永遠不會被刪除(請參閱步驟 2)
目的
刪除之前已結束的所有項目 2008-01-01. 刪除所有關聯的參與,但不刪除角色 而且沒有員工。
第 1 步。刪除項目
創建新模型。選擇 表 PROJECT 作為主題表并輸入 T.END_DATE<'2008-01-01' 作為主體條件。
為了防止刪除PROJECT_PARTICIPATION, 不與舊項目關聯,但與 參與舊項目,禁用與角色的關聯 到PROJECT_PARTICIPATION。對來自的關聯執行相同的操作 員工到PROJECT_PARTICIPATION。
也禁用與員工的所有關聯。這將減少集合 向參與的員工導出的員工行數 在一個舊項目中。
打開數據導出對話框。輸入刪除舊項目.sql作為名稱 刪除腳本并開始導出。
獄卒生成了刪除兩個舊 項目和六個相關的參與,也為 刪除六名員工和一名角色。此角色是 參與一個舊項目,但不參與剩余項目。這 六名員工參加了一個舊項目,但沒有參加 其余項目。
第 2 步。防止員工和角色 刪除
打開數據模型編輯器(工具->數據模型編輯器)。編輯 表 EMPLOYEE 并打開“從刪除中排除”復選框。做同樣的事情 與表角色。
(從版本 6.7 開始,也可以通過表的 上下文菜單)
再次導出數據。 員工和角色現在已從刪除中排除:
添加了 Java 11 及更高版本缺少的依賴項。
改進了對 CHAR/NCHAR 列的支持。
網友評論