Skip to content

Junwu0615/Database-Template

Repository files navigation

GitHub Views GitHub Clones


A. Update Plan

事件 敘述 更新時間
專案上架 Database Template 2024-12-25
建立常用函式 developers.package.norm_function 2024-12-28
資料表: 模板定義 依 developers.model.TForexQuotes 模板畫葫蘆 2024-12-28
更新常用函式 日誌打印 / 字串處理 / 數值處理 / 爬蟲連線 2024-12-28
模組化 將 SQL 串接 Database 過程模組化,並用繼承方式使用功能 2024-12-28
套件化 將整個功能打包成套件,用安裝方式直接使用該功能 2024-12-29
定義制式規格 update_once & config_once 2024-12-30
定義運行狀態 詳見 developers.definition.state 2024-12-30
加入排程邏輯 可依據參數定時設定,到點啟動專案 2024-12-30
查詢資料: 增加可用參數 SQL WHERE 條件篩選 2025-01-09
更新 README SQL SERVER 設定 + 如何建置 SQL SERVER 2025-09-25
嚴苛定義路徑 - 2025-09-25
更新日誌邏輯 - 2025-09-25
調整常用函式 - 2025-09-25
查詢資料: 增加可用參數 參數時間 -
更新底層 外圍包大型迴圈,基於回傳狀態判斷是否 Retry -
優化進入點 name == 'main' 移至底層 -
調整 Merge 邏輯 用子方法 ( 插入 / 查詢 / 合併 ) 分別進行,不採用官方 Merge 語法 -

B. Showcase Results

Directory Structure Diagram

Database-Template/developer
  │
  ├── __init__.py
  │
  ├── config
  │   └── __init__.py
  │
  ├── lib
  │   └── __init__.py
  │
  ├── modules
  │   ├── __init__.py
  │   │
  │   ├── model
  │   │   ├── __init__.py
  │   │   ├── TForexQuotes.py
  │   │   ├── TLineGenAI.py
  │   │   └── WorkStatus.py
  │   │
  │   ├── ms_sql
  │   │   ├── __init__.py
  │   │   ├── sql_account.py
  │   │   └── sql_server.py
  │   │
  │   ├── interface.py
  │   └── logger.py
  │
  └── utils
      ├── __init__.py
      └── normal.py

00.gif

00.jpg


C. Installation Package

  • 本目錄底下執行下方指令 # 若本專案更新,引用套件則會隨著更新
    pip install -e .
    
    • 03.jpg
  • developer.modules.ms_sql.sql_account.py 更改欲使用內容,或是直接設定環境變數
  • 開發其他專案時可以直接引用本套件撰寫物件
  • 02.jpg

D. Syntax

  • I. SQL 語法

    • 新建資料庫

      CREATE DATABASE <MyDatabase>;
    • 刪除資料庫順序 : 一律手動,勿程式化

      -- 檢查資料庫是否存在
      SELECT name FROM master.sys.databases WHERE name = '<MyDatabase>';
      
      -- 強制斷開所有連接,將資料庫設為單一使用者模式以便刪除。
      -- 因為如果有其他使用者正在使用資料庫,直接用 DROP DATABASE 會失敗。
      ALTER DATABASE <MyDatabase> SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
      
      -- 直接刪除資料庫及其所有內容。
      DROP DATABASE <MyDatabase>;
      -- 查詢該表格是否存在
      SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = <MyDatabase>;
  • II. Python 串接 SQL server 語法

    • 顯示系統上可用的所有 ODBC 驅動

      pyodbc.drivers()
  • III. 創建 SQL SERVER ( MS SQL )

  • IV. 其他備註

    • 查看 ODBC 版本(名稱)

      win + R : odbcad32 -> 切到驅動程式 -> ex: ODBC Driver 17 for SQL Server
      
    • 呼叫 SQL Server Configuration Manager

      # 當資料庫 IP 變更時,有可能 SQL SERVER 無法正常啟用,需要重新設定,或是更改為 127.0.0.1
      # 輸入對應版本的檔案名稱
        - SQL Server 2022	SQLServerManager16.msc
        - SQL Server 2019	SQLServerManager15.msc
        - SQL Server 2017	SQLServerManager14.msc
        - SQL Server 2016	SQLServerManager13.msc
        - SQL Server 2014	SQLServerManager12.msc
        - SQL Server 2012	SQLServerManager11.msc
      
        win + R : SQLServerManager16.msc
      

E. Field Format

  • a. 整數類型

    類型 說明
    Integer 對應 SQL 的整數類型,如 INT
    SmallInteger 對應 SQL 的小整數類型,如 SMALLINT
    BigInteger 用於大整數,對應 SQL 的 BIGINT
  • b. 字符串類型

    類型 說明
    String(length) 可變長度的字符串。length 指定最大長度,對應 SQL 的 VARCHAR
    Text 不定長度的大文本,對應 SQL 的 TEXT 或 CLOB
    Unicode(length) 支持 Unicode 的字符串,類似 String
    UnicodeText 支持 Unicode 的長文本,類似 Text
    CHAR(length) 固定長度字符串,對應 SQL 的 CHAR
  • c. 數值類型

    類型 說明
    Float 浮點數,對應 SQL 的 FLOAT 或 REAL
    Numeric(precision, scale) 精確數值類型,對應 SQL 的 NUMERIC 或 DECIMAL,用於高精度計算
    DECIMAL(precision, scale) 與 Numeric 相同,是其別名
  • d. 日期和時間類型

    類型 說明
    Date 僅日期部分,對應 SQL 的 DATE
    Time 僅時間部分,對應 SQL 的 TIME
    DateTime 日期和時間,對應 SQL 的 DATETIME 或 TIMESTAMP
    Interval 時間間隔,對應 SQL 的 INTERVAL
  • e. 布林值類型

    類型 說明
    Boolean 布林值,對應 SQL 的 BOOLEAN,存儲 True 或 False
  • f. 二進制類型

    類型 說明
    LargeBinary 二進制數據,對應 SQL 的 BLOB 或 BYTEA
  • g. UUID 類型

    類型 說明
    UUID 用於存儲通用唯一標識符(UUID),對應 SQL 的相關類型(如 UUID)
  • h. JSON 類型

    類型 說明
    JSON 用於存儲 JSON 數據,對應 SQL 的 JSON 或類似類型

F. Reference Sources

About

SQL Server 用 ORM 風格撰寫 Python 底層模板

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages