もっと詳しく

大規模なデータベースを管理するときに、文字列データフィールドのサブ文字列を置き換えたい場合があります。 アイテムを削除してから、プロパティを追加する機会があります。 ただし、SQLiteでreplaceを使用することは、これを実現するためのより効率的なアプローチです。 SQLiteのREPLACEステートメントは、既存のエントリを破棄して再挿入するために使用されます。 REPLACE SQLiteコマンドは、コマンドINSERT ORREPLACEINSERTの名前です。

SQLiteのREPLACEステートメントは、UNIQUEまたはPRIMARYキーの制約が失敗すると、問題のあるエントリを排除して新しい行を挿入するという考えに基づいて機能します。 SQLiteでは、REPLACEコマンドは通常2段階の操作を実行します。 1つ目は、制約に違反するレコードを削除することから始まり、2つ目は別の行を追加することです。 したがって、新しいエントリを挿入するときに2番目のステップで制約違反が発生した場合、トランザクションはロールバックされます。

例を使用して、SQLite Replaceステートメントと、それらを使用して既存のエントリを削除および再挿入する方法について学習します。

SQLiteのREPLACEステートメントの構文:

SQLiteの置換操作の構文は次のとおりです。

>> 交換(( ストリング を見つける 部分文字列 交換 新着 ストリング)。

これは、3つの引数を渡すことによって機能します。置換される部分文字列を含む「文字列」です。 置き換えられるテキスト内の「サブストリング」、および新しいストリングに「置き換えられる」ストリング。

SQLiteでREPLACEステートメントを使用する方法:

ここでは、いくつかのSQLite置換操作の例を使用して、SQLiteでの使用法を確認します。 置換機能を使用する場合は、大文字と小文字を区別する置換が考慮されることに注意してください。

次の図に、単純なREPLACE操作があります。 まず、SELECTステートメントが必要です。次に、3つの引数を渡したREPLACE関数を使用します。 最初の引数は文字列「Applejuice」で、2番目の引数は置き換えたい「Apple」です。 この「Apple」は指定された文字列のサブ文字列であり、3番目の引数は新しい文字列「orange」で渡され、サブ文字列「Apple」に置き換えられます。 次のクエリ結果は、次のように図に示されています。

>> 選択する 交換((‘リンゴジュース’ ‘アップル’ ‘オレンジ’)。;

2番目のREPLACEケースがあり、これも3つの引数を取ります。 最初は「チキンバーガー」という文字列で、次は「ピザ」というサブ文字列がありますが、これは定義した文字列の一部ではありません。 最初の引数に2番目のパラメーターが見つからない場合は、何も変更されず、元のテキストが返されることに注意してください。 この図は、REPLACE関数のクエリとそれに対応する結果を示しています。

>> 選択する 交換((‘チキンバーガー’ ‘ピザ’ 「パティ」)。;

これは、2番目の引数が空の文字列である3番目のケースです。 ここでも、REPLACE関数は何も変更せず、指定したソース文字列を返します。

>> 選択する 交換((‘ダイヤの指輪’ ‘金’)。;

ただし、これは3番目の引数には当てはまりません。 その文字列が空で、最初の引数に2番目の引数が含まれている場合。 2番目の引数は、次のように文字列から削除されます。

>> 選択する 交換((「黄色い光」 ‘黄色’ )。;

文字列に2番目の引数が含まれていない場合は、文字列を返します。

>> 選択する 交換((‘ビタミンC’ ‘鉄’ )。;

ここで、文字列をSQLiteのREPLACE関数で可能な整数値に置き換えます。 結果は、文字列が数値に置き換えられていることを示しています。

>> 選択する 交換((‘ID番号’ ‘番号’ 8)。;

例1:REPLACE関数を使用するためのテーブルを作成します。

「クリーム」として表されるテーブルを作成しました。 このテーブルに3つの列を割り当て、それらのデータ型も設定しました。 下の画像を示すと、テーブルは正常に作成されています。

作成 テーブル クリーム((
cream_id INT 主要な
cream_name CHAR((10)。
cream_price 浮く

)。;

次に、次のように、テーブル「creams」の各列に対して値を挿入しました。

入れる の中へ クリーム ((1 ‘アイスクリーム’ 300 )。;
入れる の中へ クリーム ((2 「チョコレートクリーム」 600)。;
入れる の中へ クリーム ((3 「チーズクリーム」 560)。;
入れる の中へ クリーム ((4 「カラメルクリーム」 600)。;
入れる の中へ クリーム ((5 「ナッツクリーム」 450 )。;

テーブルレコードを表示するには、次のクエリを使用するだけで、テーブルレコードが次のように表示されます。

例2:UPDATEステートメント内でREPLACE関数を使用する:

そこに、テーブル「creams」に適用したUPDATEステートメントがあります。 updateステートメントは、SET演算子を呼び出して、テーブル列「cream_name」の値を設定します。 SET演算子には、REPLACE関数を割り当て、REPLACE関数内に3つの引数を渡しました。 最初の引数は、置換が必要な列名「cream_name」です。 次に、文字列「cream」が、置換が実装される2番目の引数として使用されます。 REPLACE関数は、テーブル「creams」の列「cream_name」から文字列「cream」を検出すると、新しい文字列「mayo」に変更する必要があります。 REPLACE関数は、文字列「mayo」を3番目の入力として受け取ります。

アップデート
クリーム
設定
cream_name = 交換((cream_name‘クリーム’「まよ」)。;

次の結果画面で変更が正常に行われます。

例3:SQLiteの一意のインデックスでREPLACE関数を使用する:

テーブル「creams」の「creamname」列は、インデックスを生成するために使用されます。 以下のSQLiteクエリを使用して、「クリーム名」フィールドに一意のインデックスを作成しました。

>> 作成 個性的 索引 idx_creams_cream_name オン クリーム((cream_name)。;

次に、クリームの名前をテーブル「cream」に追加するための制約を追加します。 クリーム名がすでに存在する場合は、そのエントリを更新する必要があります。 それ以外の場合は、新しいクリーム名を入力する必要があります。 次のようにSQLiteReplaceステートメントを利用して、この機能を追加しただけです。

交換 の中へ クリーム ((cream_id cream_namecream_price )。
((6「にんにくクリーム」 200)。;

cream_name「Garlic-mayo」はテーブル「creams」に存在しないため、次のSQLiteREPLACEステートメントは新しい行をテーブルに導入します。 selectステートメントを実行すると、SQLiteシェルは新しく挿入されたレコードを含むテーブルクリームのレコードを実行します。

結論:

これは、仕様に従って必要なデータを取得するためのSQLiteReplace関数のパフォーマンスです。 SQLiteで使用するREPLACE関数の構文を定義しました。 次に、REPLACE関数がこれらのケースにどのように応答するかを示すために、いくつかの異なるケースを調査しました。 最後に、SQLiteテーブルで使用するREPLACE関数のインスタンスがあります。

The post SQLite置換 appeared first on Gamingsym Japan.