[C#] .Net Framework のフレームワークでの SQLike の使用と基本概念

2023 年、第 32 週、第 2 条。自分に目標を与えて、必ず領収書があると主張してください。信じられない場合は、試してみてください。
C# の .NET Framework フレームワークの下には、次のような軽量データベース オプションが多数あります。SQLike もその 1 つです。SQLike の簡単な使用法について学びましょう。

1. 軽量データベース

ここに画像の説明を挿入

1.1. 基本概念

軽量データベースとは、ストレージ要件が小さく、リソース消費が少なく、展開と使用が簡単なデータベース システムを指します。
通常、小規模なアプリケーション、組み込みシステム、または一時的なストレージが必要なプロジェクトに適した、基本的なデータ ストレージとクエリ機能を提供することに重点を置いています。

1.2、SQLite

SQLite は、自己完結型、サーバーレス、設定不要のトランザクション リレーショナル データベース エンジンです。
ファイルレベルのストレージが特徴で、単一のファイルをデータベースとして直接利用できる。
SQLite は、モバイル アプリケーション開発、デスクトップ アプリケーション開発、組み込みシステムなど、さまざまなプラットフォームやプログラミング言語で使用されています。

1.2、バークレーDB

Berkeley DB は、組み込みシステム用のデータベース エンジンです。
高速で信頼性の高いキーと値のペアのストレージおよびクエリ機能を提供し、ACID トランザクション操作をサポートします。
Berkeley DB は非常に柔軟性があり、永続ストレージ、キャッシュ、ログ ファイルなどのさまざまな目的に使用できます。

1.3、レベルDB

LevelDB は、Google によって開発されたキー/値ストレージ エンジンです。
これは、ログ構造化マージ (Log-Structured Merge、LSM) ツリー データ構造に基づいており、書き込みとクエリのパフォーマンスが高速です。
LevelDB はオープンソースであり、いくつかのプログラミング言語のバインディングをサポートしています。

1.4、Redis

Redis は、データベース、キャッシュ、メッセージ ミドルウェアなどの複数の目的に使用できるオープン ソースのメモリ データ構造ストレージ システムです。
高いパフォーマンス、高い同時実行性、スケーラビリティを備えたさまざまなデータ構造 (文字列、ハッシュ テーブル、リスト、セット、順序付きセットなど) をサポートします。

1.5、H2データベース

H2 は、Java で書かれた組み込みリレーショナル データベース エンジンです。
SQLデータベース標準とJDBC APIをサポートし、メモリデータベース、永続データベース、クラスタデータベースなどの豊富な機能を提供します。

これらの軽量データベースには独自の特徴があり、プロジェクトの特定のニーズに応じて適切なデータベースを選択できます。
一般に、展開、構成、使用が簡単で、小規模なアプリケーションやリソースの制約がある環境に適しています。
これらのデータベースは小規模なデータ ストレージのニーズに対応できますが、大規模で同時実行性の高いシナリオでは、より強力なデータベース システムの使用が必要になる場合があることに注意してください。
したがって、データベースを選択するときは、プロジェクトのサイズ、パフォーマンス要件、スケーラビリティなどの要素に基づいて評価する必要があります。

ここに画像の説明を挿入

2. SQLikeの利点

SQLike は、次の機能を備えた軽量の組み込み SQL データベース エンジンです。

2.1、使いやすい

SQLike の構文は標準の SQL 構文に似ているため、学習と使用が簡単です。SELECT、INSERT、UPDATE、DELETE などの一般的な SQL 操作に加え、複数テーブルの結合、集計関数なども提供します。

2.2. 小型・軽量

SQLike のコア コードは比較的小さく、少数の外部ライブラリにのみ依存します。これにより、システム リソースの消費が低くなり、組み込みデバイスやモバイル アプリケーションなど、リソースに制約のある環境での使用に適しています。

2.3、組み込みサポート

SQLike は、組み込みデータベース エンジンとしてアプリケーションに直接組み込むことができます。このようにして、別個のデータベース サーバーや別個のデータベース管理システム (DBMS) の構成やメンテナンスを必要とせずに、アプリケーションとともに配布できます。

2.4. プラットフォームの独立性

SQLike は C 言語で書かれており、Windows、Linux、macOS などの複数のオペレーティング システムおよびプラットフォームで実行できます。これにより、クロスプラットフォーム互換性が向上します。

3. SQLikeの欠点

3.1. 機能制限

SQLike の主な目的はシンプルな SQL データベース エンジンを提供することであるため、一部の高度な機能と拡張性が制限される場合があります。たとえば、一部の複雑なクエリや最適化手法をサポートする機能は比較的弱い可能性があります。

3.2、パフォーマンスの制限

SQLike の設計は軽量さとシンプルさに重点を置いているため、高パフォーマンスを目的として特別に設計された一部のデータベース エンジンほどパフォーマンスが優れない場合があります。高い同時実行性、大量のデータ、または複雑なクエリなどのシナリオでは、SQLike のパフォーマンスが低下する可能性があります。

3.3. 高度な機能の欠如

一部の成熟したデータベース システムと比較すると、SQLike にはトランザクション処理、ストアド プロシージャ、トリガーなどの高度な機能が欠けている場合があります。これらの機能は一部のシナリオで必要ですが、SQLike では利用できない場合があります。

全体として、SQLike は、シンプルなデータ ストレージとクエリのニーズに対応する、便利で使いやすく、展開可能な軽量の組み込みデータベース エンジンです。ただし、複雑で高性能、拡張性の高いデータベース シナリオでは、他のより強力なデータベース ソリューションを検討する必要がある場合があります。

4、SQLike操作

3.1. データベースファイルの作成

デフォルトでは、database を使用してデータベース名を付けることができます。もちろん、ビジネス状況に応じて名前を付けることもできます。
デフォルトのデータベース ファイルはプログラマが実行するディレクトリと同じディレクトリに作成され、出力用のパスを指定できます。

string connectionString = "Data Source=database.db;Version=3;";
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
    
    
    connection.Open();
    // 判断数据库文件
    string databasePath = "database.db";

    if (!File.Exists(databasePath))
    {
    
    
        SQLiteConnection.CreateFile(databasePath);
    }
}

ここに画像の説明を挿入

3.2、テーブルを作成する

ここで論理的な判断を追加できます。テーブルが存在しない場合はテーブルを作成し、そうでない場合は操作しません。

// 判断表
bool isTable = true;
string tableName = "MyTableName";
string query = $"SELECT name FROM sqlite_master WHERE type='table' AND name='{
      
      tableName}'";
using (SQLiteCommand command = new SQLiteCommand(query, connection))
{
    
    
    var result = command.ExecuteScalar();
    if (result == null)
    {
    
    
        isTable = false;
    }
}
// 创建表
if (!isTable)
{
    
    
    string createTableQuery = $"CREATE TABLE {
      
      tableName} (Id INTEGER PRIMARY KEY, countValue int,name Text)";
    using (SQLiteCommand command = new SQLiteCommand(createTableQuery, connection))
    {
    
    
        command.ExecuteNonQuery();
    }
}

3.3. テーブルレコードの追加

根据上一步判断,都会确保存在表
// 并添加一条记录
if (!isTable)
{
    
    
    string insertDataQuery = $"INSERT INTO {
      
      tableName} (countValue,name) VALUES (99,'张三')";
    using (SQLiteCommand command = new SQLiteCommand(insertDataQuery, connection))
    {
    
    
        command.ExecuteNonQuery();
    }
}

3.4. テーブルレコードのクエリ

// 查询表
string tableName = "MyTableName";
string queryText = $"SELECT * FROM {
      
      tableName}";
using (SQLiteCommand command = new SQLiteCommand(queryText, connection))
{
    
    
    using (SQLiteDataReader reader = command.ExecuteReader())
    {
    
    
        while (reader.Read())
        {
    
    
            // 获取每行的数据
            int id = reader.GetInt32(0);

            int CountValue = reader.GetInt32(1);
            string name = reader.GetString(2);
        }
    }
}

3.5. テーブルレコードの更新

テーブルレコードを追加または更新する場合、パラメータ化を通じて操作することもできます

string databasePath = "database.db";
string connectionString = $"Data Source={
      
      databasePath};Version=3;";

using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
    
    
    connection.Open();

    // 创建 UPDATE 语句
    string updateQuery = "UPDATE MyTableName SET CountValue = @CountValue WHERE Id = @Id";

    using (SQLiteCommand command = new SQLiteCommand(updateQuery, connection))
    {
    
    
        // 设置 UPDATE 语句中的参数
        command.Parameters.AddWithValue("@CountValue", CountValue);
        command.Parameters.AddWithValue("@Id", IdValue);

        // 执行 SQL 语句
        int rowsAffected = command.ExecuteNonQuery();

        if (rowsAffected > 0)
        {
    
    
            // 更新成功
        }
        else
        {
    
    
            // 更新失败            
        }
    }

    connection.Close();
}

5. ビジュアル管理ツール

SQLike は軽量の組み込み SQL データベース エンジンであるため、公式の視覚化ツールはありません。
SQLike は、スタンドアロンのデータベース サーバーとして実行するよりも、C# アプリケーションに直接埋め込まれた組み込みデータベース エンジンとして使用するのに適しています。

ただし、他のサードパーティの視覚化ツールを使用して SQLike データベースを管理および操作できます。
これらのツールは、クエリ エディター、データ ビュー、テーブル ビュー、グラフ表示など、他のデータベース システムで使用されているものと同様の視覚的なインターフェイスと機能を提供できます。

SQLike で使用できる一般的な SQL データベース管理ツールをいくつか紹介します。

5.1、Dビーバー

DBeaver は、複数のデータベース エンジンをサポートする無料のオープンソースの汎用 SQL データベース管理ツールです。DBeaver を介して SQLike データベースに接続して管理し、データベースが提供するビジュアル インターフェイスをデータ操作とクエリに使用できます。

5.2、ハイジSQL

HeidiSQL は、MySQL、MariaDB、SQL Server、PostgreSQL などのデータベース エンジン用に設計された視覚化ツールです。主な位置付けはリレーショナル データベースですが、HeidiSQL を使用して SQLike データベースに接続して管理することもできます。

5.3、Navicat (推奨)

Navicat は、MySQL、SQL Server、SQLite、PostgreSQL などの複数のデータベース エンジンをサポートする商用データベース管理ツールです。Navicat が提供するインターフェイスと関数を使用して、SQLike データベースを管理できます。

これらのツールは、データベースの管理、クエリの実行、データの操作をより簡単に行うのに役立つ、視覚的で使いやすいインターフェイスを提供します。
自分に合ったツールを選択し、SQLikeデータベースに接続して使用することができます。
これらのツールは通常、リレーショナル データベース用に設計されており、SQLike 固有の機能や最適化を提供していない場合があることに注意してください。
したがって、これらのツールを使用する場合、いくつかの機能制限や互換性の問題が発生する可能性があります。

おすすめ

転載: blog.csdn.net/lmy_520/article/details/132097947