SQL データ操作の基礎 (初級) 2
ISQL を使用して SELECT クエリを実行する
SQL をインストールする場合
サーバー、ISQL/w というアプリケーションもインストールしました。 ISQL/w を使用すると、対話型 SQL クエリを実行できます。 ASP Web ページにクエリを含める前に、ISQL/w でクエリをテストすると非常に役立ちます。
注:
この本の最初の部分では、Microsoft のインストールと構成方法を学習しました。
SQLサーバー。 SQL Sever がインストールされていない場合、または SQL Sever を実行できない場合は、第 3 章「SQL のインストールと使用」を参照してください。
SQL でタスクを選択
サーバー プログラム グループの ISQL_w を使用してプログラムを開始します。プログラムが起動すると、最初にダイアログ ボックスが表示され、サーバー情報とログイン情報の入力を求められます (図 10.1 を参照)。 [サーバー] ボックスに SQL サーバーの名前を入力します。サーバーがローカル コンピューターで実行されている場合、サーバー名はコンピューターの名前になります。
ログイン情報ボックスにログインアカウントとパスワードを入力するか、「信頼された接続」を使用することを選択し、「接続」ボタンをクリックします。
図10.1
注:
SQLを使用する場合
サーバーが完全なセキュリティまたは混合セキュリティを使用するように構成されている場合は、信頼された接続を使用できます。標準セキュリティを使用する場合は、ユーザー名と
パスワードを入力する必要があります。詳細については、第 3 章を参照してください。
すべてがうまくいけば、図 10.2 に示すように、接続ボタンをクリックした後にクエリ ウィンドウが表示されます。 (異常がある場合は3章を参照してください)
図10.2
クエリを実行する前に、データベースを選択する必要があります。 SQL Server をインストールするときは、自分用のデータベース、SQL を作成します。
サーバーには、master、model、msdb、tempdb などの多くのシステム データベースもあります。
便利な SQL
サーバーには、pubs と呼ばれる特別なサンプル データベースが付属しています。図書館
pubs には、仮想パブリッシャが使用するテーブルが含まれています。ドキュメント内のすべてのサンプル プログラムは、このライブラリ用に設計されています。本書の例の多くでもこのデータベースが使用されています。
クエリ ウィンドウの上部にある DB ドロップダウン ボックスでデータベース パブを選択し、データベースを選択します。すべてのクエリは、このライブラリ内のさまざまなテーブルに対して実行されます。これで、最初のクエリを実行できるようになりました。これはとてもエキサイティングです!
最初のクエリは、autrors というテーブルに対して行われます。このテーブルには、仮想出版社で働くすべての著者に関するデータが含まれています。クエリ ウィンドウをクリックし、次のステートメントを入力します:
SELECT
著者からの電話 どこから
au_name="Ringer"
入力が完了したら、[クエリの実行] ボタン (VCR の再生ボタンのような緑色の三角形) をクリックします。このボタンをクリックすると、クエリ ウィンドウに表示されるすべてのステートメントが実行されます。クエリ ウィンドウは自動的に結果表示ウィンドウに変わり、クエリの結果を確認できます (図 10.3 を参照)。
表示されるクエリ結果は、図 10.3 に示されているものとは異なる場合があります。 SQLで
サーバーのバージョンが異なると、ライブラリ パブ内のデータも異なります。 SQLサーバー
6.5 の場合、
は 2 つのレコードを検索します。結果表示ウィンドウには次の内容が表示されます:
phone
……………….
801
826_0752
801 826_0752
(2行)
影響を受けます)
図 10.3
実行した SELECT ステートメントは、著者テーブルから Ringer という名前のすべての著者の電話番号を取得します。 WHERE 句で特別な選択条件を使用することで、クエリの結果を制限します。選択基準を無視して、テーブルからすべての著者の電話番号を取得することもできます。これを行うには、[クエリ] タブをクリックし、クエリ ウィンドウに戻り、次の SELECT ステートメントを入力します:
SELECT
からの電話
authors
このクエリが実行されると、authors テーブル内のすべての電話番号が (順不同で) 取得されます。 authors テーブルに 100 の電話番号が含まれている場合、100 のレコードがフェッチされます。テーブルに 10 億の電話番号がある場合、10 億のレコードすべてがフェッチされます (これには時間がかかる場合があります)。
テーブル作成者のフィールドには、姓、名、電話番号、住所、都市、州、郵便番号が含まれます。 SELECT ステートメントの最初の部分にフィールドを指定することで、テーブルから任意のフィールドを取得できます。
SELECT のような SELECT ステートメントで複数のフィールドを一度に取得できます。
au_fname、au_lname、電話番号 FROM
authors
この SELECT ステートメントが実行されると、これら 3 つの列の値がすべて取得されます。このクエリの結果の例を次に示します (紙の節約のため、クエリ結果の一部のみが表示され、残りのレコードは省略記号で置き換えられています):
au_fname
au_lname 電話
……………………………………………………………………………….
Johnson White 408
496_7223
マージョリー・グリーン 415 986_7020
シェリル・カーソン 415
548_7723
マイケル・オリアリー 408 286_2428
…
(23 row(s)
影響を受けます)
SELECT ステートメントでは、リストする必要があるだけフィールドをリストできます。フィールド名をカンマで区切ることを忘れないでください。アスタリスク (*) を使用して、テーブルからすべてのフィールドを抽出することもできます。アスタリスクを使用した例を次に示します:
SELECT
* から
著者
SELECT ステートメントが実行されると、テーブル内のすべてのフィールドの値が取り出されます。 SQL クエリではアスタリスクが頻繁に使用されることがわかります。
ヒント:
アスタリスクを使用すると、テーブル内のすべての列の名前を確認できます。これを行うには、SELECT ステートメントの実行後にクエリ結果の列ヘッダーを確認するだけです。
複数のテーブルを操作する
これまでは、SQL クエリを使用して 1 つのテーブルからデータを取得することのみを試みてきました。
SELECT ステートメントの FROM 句にデータをフェッチするテーブルの名前をリストするだけで、SELECT ステートメントを使用して複数のテーブルから同時にデータをフェッチすることもできます。
au_lname ,title FROM 著者, タイトル
このSELECT文を実行すると、authorsテーブルとtitlesテーブルから同時にデータが取得されます。 authors テーブルからすべての著者名を取得し、titles テーブルからすべての
本のタイトルを取得します。 ISQL/w プログラムでこのクエリを実行し、クエリ結果を確認します。いくつかの奇妙で予期せぬ状況に遭遇するでしょう。著者の名前はその著者が書いた本と一致しませんが、著者の名前と本のタイトルの考えられるすべての組み合わせが表示されます。これは、あなたが期待していたものではないかもしれません。を参照してください。
何が問題だったのでしょうか?問題は、2 つのテーブル間の関係を指定していないことです。テーブルを相互に関連付ける方法を SQL に指示することはありません。 2 つのテーブルを関連付ける方法がわからない場合、サーバーは両方のテーブルから取得したレコードの可能なすべての組み合わせを単純に返すことができます。
2 つのテーブルから意味のあるレコードの組み合わせを選択するには、2 つのテーブルのフィールド間の関係を確立して、2 つのテーブルを関連付ける必要があります。これを行う 1 つの方法は、他の 2 つのテーブルのフィールド間の関係を記述するために特に使用される 3 番目の
テーブルを作成することです。
著者テーブルには au_id という名前のフィールドがあり、各著者の一意の ID が含まれています。テーブルタイトルには、title_id と呼ばれるフィールドがあり、各書籍タイトルの一意の識別子が含まれています。フィールドau_idとフィールドtitle_idに含めることができる場合
それらの間に関係を確立することにより、2 つのテーブルを関連付けることができます。データベース pubs には、titleauthor という名前の
テーブルがあり、この作業を完了するために使用されます。テーブル内の各レコードには、titles テーブルと authors テーブルを関連付けるために使用される 2 つのフィールドが含まれています。次の SELECT ステートメントは、
これら 3 つのテーブルを使用して正しい結果を取得します:
SELECT
au_name,title FROM authors,titles,titleauthor
WHERE
authors.au_id=titleauthor.au_id
AND title.title_id=titleauthor.title_id
この SELECT ステートメントが実行されると、各著者が正しい書籍タイトルと照合されます。テーブル titleauthor は、各テーブルから 1 つのフィールドを含めることによって、authors テーブルと title テーブルの間の関係を指定します。 3 番目のテーブルの唯一の目的は、他の 2 つのテーブルのフィールド間の関係を確立することです。それ自体には追加のデータは含まれません。
この例ではフィールド名がどのように記述されているかに注目してください。 authors テーブルと Titles テーブルで同じフィールド名 au_id を区別するために、各フィールド名の前にテーブル名のプレフィックス
とピリオドが付けられます。名前付き author.au_id
という名前のフィールドはテーブル authors に属し、titleauthor.au_id という名前のフィールドはテーブル titleauthor に属します。この 2 つは混同されません。
3 番目のテーブルを使用すると、2 つのテーブルのフィールド間にさまざまな種類の関係を確立できます。たとえば、1 人の著者が多数の異なる本を執筆する場合や、1 つの本が多数の異なる著者によって執筆される場合があります。 2 つのテーブルのフィールド間にこの「多対多」の関係がある場合、3 番目のテーブルを使用してこの関係を示す必要があります。
ただし、多くの場合、2 つのテーブル間の関係は複雑ではありません。たとえば、テーブルのタイトルとテーブルの発行者の間の関係を指定する必要があります。書籍のタイトルが複数の出版社と一致することは不可能なので、2 つのテーブル間の関係を示す 3 番目のテーブルは必要ありません。 Titles テーブルと Publishers テーブルの間の関係を指定するには、2 つのテーブル間に共通のフィールドが必要なだけです。データベース pubs では、テーブルのタイトルとパブリッシャーに pub_id という名前のフィールドがあります。本のタイトル
とその出版社のリストを取得したい場合は、次のステートメントを使用できます:
SELECT
title,pub_name FROM タイトル,出版社
WHERE
title.pub_id=publishers.pub_id
もちろん、書籍が 2 つの出版社によって共同出版されている場合は、この関係を表す 3 番目のテーブルが必要です。
通常、2 つのテーブルのフィールド間に「多対多」の関係があることが事前にわかっている場合、3 番目のテーブルを使用して 2 つのテーブルを関連付けます。一方、2 つのテーブルのフィールド間に「1 対 1」または「1 対多」の関係しかない場合は、共通フィールドを使用してそれらを関連付けることができます。
上記は SQL データ操作の基礎 (初級) 2 の内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
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 つの異なる方法で実行できます。

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

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タグです。

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

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

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