SQL データ操作の基礎 (中級) 7
SQL によるインデックス作成
テーブルにインデックスを付けるには、タスクバー SQL を起動します
サーバー プログラム グループの ISQL/w プログラム。クエリウィンドウに入ったら、次のステートメントを入力します:
CREATE INDEX mycolumn_index ON
マイテーブル
(myclumn)
このステートメントは、mycolumn_index という名前のインデックスを作成します。インデックスには任意の名前を付けることができますが、インデックス名にはインデックスを作成するフィールドの名前を含める必要があります。これにより、将来インデックスを作成する目的が分かりやすくなります。
注:
本書の SQL ステートメントを実行すると、次のメッセージが表示されます:
This
コマンドはデータを返さず、何も返しませんでした
rows
これは、ステートメントが正常に実行されたことを示します。
インデックス mycolumn_index は、テーブル mytable の mycolumn フィールドに対して実行されます。これは非クラスター化インデックスであり、一意ではないインデックスです。 (これはインデックスのデフォルトのプロパティです)
インデックスのタイプを変更する必要がある場合は、元のインデックスを削除して再構築する必要があります
1つ。インデックスを作成した後、次の SQL ステートメントを使用してインデックスを削除できます:
DROP INDEX
mytable.mycolumn_index
DROP INDEX に関する注意
ステートメントにはテーブルの名前を含める必要があります。この例では、削除したインデックスは mycolumn_index で、これはテーブル mytable のインデックスです。
クラスター化インデックスを作成するには、キーワード CLUSTERED を使用できます。 ) テーブルにはクラスター化インデックスが 1 つだけ存在できることに注意してください。 (テーブルにクラスター化インデックスを作成する方法の例は次のとおりです:
CREATE
クラスター化インデックス mycolumn_clust_index ON
mytable(mycolumn)
テーブル内に重複レコードがある場合、このステートメントを使用してインデックスを作成しようとするとエラーが発生します。ただし、キーワード ALLOW_DUP_ROW を使用して SQL に指示するだけで、重複レコードを持つテーブルにインデックスを付けることもできます。
サーバーのみ:
CREATE CLUSTERED INDEX mycolumn_cindex ON
mytable(mycolumn)
WITH
ALLOW_DUP_ROW
このステートメントは、重複レコードを許可するクラスター化インデックスを作成します。テーブル内の重複レコードを避けるように努める必要がありますが、重複レコードが発生した場合は、この方法を使用できます。
テーブルに一意のインデックスを作成するには、キーワード UNIQUE を使用できます。このキーワードは、クラスター化インデックスと非クラスター化インデックスの両方に使用できます。以下に例を示します:
CREATE
一意のカスタードインデックス myclumn_cindex ON
mytable(mycolumn)
これはよく使用するインデックス作成ステートメントです。可能な限り、クエリ操作を強化するために 1 つのテーブルに一意のクラスター化インデックスを構築するようにしてください。
最後に、複数のフィールドにインデックス (複合インデックス) を作成し、インデックス作成ステートメントに複数のフィールド名を含める必要があります。次の例では、名フィールドと姓フィールドにインデックスを作成します:
CREATE
INDEX 名前_インデックス ON
username(firstname,lastname)
この例では、2 つのフィールドに 1 つのインデックスを作成します。複合インデックスでは、最大 16 個のフィールドにインデックスを付けることができます。
トランザクション マネージャーを使用してインデックスを作成する
トランザクション マネージャーを使用してインデックスを作成するのは、SQL ステートメントを使用するよりもはるかに簡単です。トランザクション マネージャーを使用すると、作成されたインデックスのリストを表示し、グラフィカル インターフェイスを通じてインデックス作成オプションを選択できます。
トランザクション マネージャーを使用すると、次の 2 つの方法でインデックスを作成できます: 管理を使用する
「テーブル」ウィンドウを使用するか、「インデックスの管理」ウィンドウを使用します。
「テーブルの管理」ウィンドウを使用して新しいインデックスを作成するには、「詳細」ボタンをクリックします
オプション (前にプラス記号が付いた表のように見えます)。これにより、[詳細オプション] ダイアログ ボックスが開きます。このダイアログ ボックスには PRimary という名前のセクションがあります。
キー (図 11.1 を参照)。
図 11. 1
新しいインデックスを作成するには、ドロップダウン リストからインデックスを作成するフィールド名を選択します。複数のフィールドにインデックスを作成する場合は、複数のフィールド名を選択できます。インデックスがクラスター化されているか非クラスター化されているかを選択することもできます。テーブル情報を保存すると、インデックスが自動的に作成されます。インマネージ
「テーブル」ウィンドウのフィールド名の横にキーが表示されます。
テーブルの「マスターインデックス」が作成されました。プライマリ インデックスは、NULL 値を含まないフィールドに確立する必要があります。さらに、プライマリ インデックスにより、フィールドは強制的に一意の値フィールドになります。
これらの制限なしでインデックスを構築するには、管理を使用する必要があります
インデックスウィンドウ。メニューから「管理|インデックス」を選択して、「インデックスの管理」ウィンドウを開きます。インデックスの管理
ウィンドウでは、ドロップダウン ボックスからテーブルと特定のインデックスを選択できます。 (図 11.2 を参照)。新しいインデックスを作成するには、[インデックス] ドロップダウン ボックスから [新規] を選択します。
インデックスを付けると、インデックスを付けるフィールドを選択できます。 「追加」ボタンをクリックしてフィールドをインデックスに追加します。
図 11.2
インデックスにはさまざまなオプションを選択できます。たとえば、インデックスをクラスター化するか非クラスター化するかを選択できます。インデックスが一意のインデックスであることを指定することもできます。インデックスを設計したら、[構築] ボタンをクリックしてインデックスを作成します。
注:
一意のインデックスとは、フィールドに重複した値を含めることができないことを意味し、作成できるインデックスが 1 つだけであることを意味するわけではありません。
SQLコアステートメント
第 10 章では、SQL の使用方法を学習しました。
選択する
テーブルからデータを取得するステートメント。ただし、これまで、テーブル内のデータを追加、変更、削除する方法については説明していませんでした。このセクションでは、これらについて学習します。
データの挿入
テーブルに新しいレコードを追加するには、SQL を使用します
INSERT ステートメント。このようなステートメントの使用例を次に示します。
INSERT mytable (mycolumn) VALUES ('some
data')
このステートメントは文字列 'some を変換します
data」がテーブル mytable の mycolumn フィールドに挿入されます。データが挿入されるフィールドの名前は最初の括弧で指定され、実際のデータは 2 番目の括弧で指定されます。
挿入
ステートメントの完全な構文は次のとおりです:
INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT
値 |
値リスト |
select_statement}
テーブルに複数のフィールドがある場合、フィールド名とフィールド値をカンマで区切ることで、すべてのフィールドにデータを挿入できます。テーブル mytable に、first_column、next_column、および third_column という 3 つのフィールドがあるとします。次の INSERT ステートメントは、3 つのフィールドすべての値を含む完全なレコードを追加します:
INSERT
mytable (first_column, Second_column, third_column)
VALUES ('some
データ」、「さらにデータ」、「さらに」
data')
注:
INSERT ステートメントを使用して、テキスト フィールドにデータを挿入できます。ただし、非常に長い文字列を入力する必要がある場合は、WRITETEXT ステートメントを使用する必要があります。この内容は本書では高度すぎるため、説明しません。詳細については、Microsoft を参照してください。
SQL Server のドキュメント。
あなたが挿入している場合
ステートメントでフィールドとデータが 2 つだけ指定されている場合はどうなりますか?つまり、新しいレコードをテーブルに挿入しましたが、フィールドの 1 つがデータを提供しませんでした。この場合、4 つの可能性があります:
フィールドにデフォルト値がある場合、その値が使用されます。たとえば、 third_column フィールドにデータを提供せずに新しいレコードを挿入し、このフィールドのデフォルト値が「some」であるとします。
価値'。この場合、新しいレコードの作成時に値「some value」が挿入されます。
フィールドが null 値を受け入れることができ、デフォルト値がない場合は、null 値が挿入されます。
フィールドが null 値を受け入れることができず、デフォルト値がない場合、エラーが発生します。次のエラー メッセージが表示されます:
テーブル mytable の列は、
なれ
null.
最後に、フィールドが ID フィールドの場合は、新しい値が自動的に生成されます。識別フィールドを持つテーブルに新しいレコードを挿入する場合、そのフィールドを無視するだけで、識別フィールド自体に新しい値が割り当てられます。
注:
ID フィールドを持つテーブルに新しいレコードを挿入した後、SQL 変数 @@identity を使用して、新しいレコードの ID フィールドの値にアクセスできます
。次の SQL ステートメントを考えてみましょう:
INSERT
mytable (first_column) VALUES(‘何らかの値’)
INSERT
anothertable(another_first,another_second)
VALUES(@@identity,’some
value’)
テーブル mytable に識別フィールドがある場合、このフィールドの値はテーブル anothertable の another_first フィールドに挿入されます。これは、変数 @@identity が常に ID フィールドに挿入された最後の値を保持しているためです。
フィールド another_first は、フィールド first_column と同じデータ型である必要があります。ただし、another_first フィールドを識別するフィールドにすることはできません。 Another_first フィールドは、first_column フィールドの値を保存するために使用されます。
レコードの削除
テーブルから 1 つ以上のレコードを削除するには、SQL を使用する必要があります
DELETE ステートメント。 DELETE ステートメントに WHERE を指定できます。
句。 WHERE 句は、削除するレコードを選択するために使用されます。たとえば、次の DELETE ステートメントは、「Delete」に等しいフィールド first_column の値のみを削除します。
私のレコード:
DELETE mytable WHERE first_column='Deltet Me'
DELETE
ステートメントの完全な構文は次のとおりです:
DELETE [FROM] {table_name|view_name} [WHERE]
SQL SELECT ステートメントで使用できる条件はすべて、DELECT ステートメントの WHERE 句で使用できます。
で使われる。たとえば、次の DELETE ステートメントは、first_column フィールドの値が「goodbye」または Second_column フィールドの値が「so」であるもののみを削除します。
長い' レコード:
DELETE mytable WHERE first_column='goodby' OR Second_column='so
long'
DELETE ステートメントに WHERE を指定しない場合
句を指定すると、テーブル内のすべてのレコードが削除されます。このように考えるべきではありません。テーブル内のすべてのレコードを削除したい場合は、第 10 章で説明したように TRUNCATE を使用する必要があります。
TABLE ステートメント。
注:
DELETE ステートメントの代わりに TRUNCATE TABLE ステートメントを使用する必要があるのはなぜですか? TRUNCATEを使用する場合
TABLE ステートメントでは、レコードの削除は記録されません。つまり、これは、TRUNCATE TABLE が DELETE よりもはるかに高速であることを意味します
上記は、SQL データ操作の基礎 (中級) 7 の内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。 )!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HQL と SQL は Hibernate フレームワークで比較されます。HQL (1. オブジェクト指向構文、2. データベースに依存しないクエリ、3. タイプ セーフティ)、SQL はデータベースを直接操作します (1. データベースに依存しない標準、2. 複雑な実行可能ファイル)。クエリとデータ操作)。

「OracleSQLでの除算演算の使用方法」 OracleSQLでは、除算演算は一般的な数学演算の1つです。データのクエリと処理中に、除算演算はフィールド間の比率を計算したり、特定の値間の論理関係を導出したりするのに役立ちます。この記事では、OracleSQL での除算演算の使用法を紹介し、具体的なコード例を示します。 1. OracleSQL における除算演算の 2 つの方法 OracleSQL では、除算演算を 2 つの異なる方法で実行できます。

Oracle と DB2 は一般的に使用される 2 つのリレーショナル データベース管理システムであり、それぞれに独自の SQL 構文と特性があります。この記事では、Oracle と DB2 の SQL 構文を比較し、相違点を示し、具体的なコード例を示します。データベース接続 Oracle では、次のステートメントを使用してデータベースに接続します: CONNECTusername/password@database DB2 では、データベースに接続するステートメントは次のとおりです: CONNECTTOdataba

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

SQL における Identity とは何ですか? 具体的なコード例が必要です。SQL では、Identity は自動インクリメント数値の生成に使用される特別なデータ型です。多くの場合、テーブル内のデータの各行を一意に識別するために使用されます。 Identity 列は、各レコードが一意の識別子を持つようにするために、主キー列と組み合わせてよく使用されます。この記事では、Identity の使用方法といくつかの実用的なコード例について詳しく説明します。 Identity の基本的な使用方法は、テーブルを作成するときに Identity を使用することです。

PHP を使用してバッチ処理とデータのバッチ操作を実装する方法 Web アプリケーションの開発過程では、複数のデータを同時に処理する必要がある状況によく遭遇します。効率を向上させ、データベース リクエストの数を減らすために、PHP を使用してバッチ処理とデータ バッチ操作を実装できます。この記事では、PHP を使用してこれらの機能を実装する方法を紹介し、参考用のコード例を添付します。データのバッチ処理 大量のデータに対して同じ操作を実行する必要がある場合、PHP のループ構造を使用してバッチ処理を行うことができます。

解決策: 1. ログインしているユーザーがデータベースにアクセスまたは操作するための十分な権限を持っているかどうかを確認し、ユーザーが正しい権限を持っているかどうかを確認します; 2. SQL Server サービスのアカウントに指定されたファイルまたはデータベースにアクセスする権限があるかどうかを確認します。 3. 指定されたデータベース ファイルが他のプロセスによって開かれているかロックされているかどうかを確認し、ファイルを閉じるか解放して、クエリを再実行します。管理者として試してください。Management Studio をなどとして実行します。

MySQL でデータの集計と統計に SQL ステートメントを使用するにはどうすればよいですか?データの集計と統計は、データ分析と統計を実行する際の非常に重要な手順です。 MySQL は強力なリレーショナル データベース管理システムとして、データの集約と統計操作を簡単に実行できる豊富な集約機能と統計機能を提供します。この記事では、SQL ステートメントを使用して MySQL でデータの集計と統計を実行する方法を紹介し、具体的なコード例を示します。 1. カウントには COUNT 関数を使用します。COUNT 関数は最も一般的に使用されます。
