ホームページ > データベース > mysql チュートリアル > SQL データ操作の基礎 (初級) 3

SQL データ操作の基礎 (初級) 3

黄舟
リリース: 2016-12-17 14:29:33
オリジナル
883 人が閲覧しました

フィールドの操作

通常、テーブルからフィールド値を取得すると、その値はテーブルの作成時に定義されたフィールド名に関連付けられます。 authors テーブルからすべての著者名を選択すると、すべての値がフィールド名 au_lname に関連付けられます。ただし、場合によっては、フィールド名を操作する必要があります。 SELECT ステートメントでは、デフォルトのフィールド名に続けて新しい名前を付けるだけで、デフォルトのフィールド名を置き換えることができます。たとえば、より直感的で読みやすい名前「Author」を使用できます。 フィールド名の代わりに姓 au_lname:

SELECT au_lname "著者の姓" FROM authors

この SELECT ステートメントが実行されると、フィールド au_lname の値は「Author Last」と同じになります。 クエリの結果は次のようになります:

著者の姓

……………………………………………………………………..

ホワイト

グリーン

カーソン

オリアリー

ストレート



(影響を受ける 23 行)

フィールドのタイトルが au_lname ではなく、Author Last になっていることに注意してください。 名前が置き換えられました。

演算を実行することで、テーブルから返されたフィールド値を操作することもできます。たとえば、タイトル テーブル内のすべての本の価格を 2 倍にしたい場合は、次の
SELECT ステートメントを使用できます:

SELECT タイトルからの価格*2

このクエリが実行されると、各本の価格はテーブルから取り出された時点で 2 倍になります。ただし、この方法でフィールドを操作しても、テーブルに保存されている書籍の価格は変更されません。フィールドに対する操作は SELECT ステートメントの出力にのみ影響し、テーブル内のデータには影響しません。書籍の元の価格と値上げ後の新しい価格の両方を表示するには、次のクエリを使用できます:

SELECT 価格「元の価格」、価格*2「新価格」 FROM タイトル

テーブルタイトルからデータを取り出した場合、タイトルの下に元の価格が表示され、タイトルの下に2倍の価格が表示されますNew 以下の価格。結果は次のようになります:

元の価格 new 価格

………………………………………………………….

39.98
11.95 23.90

5.98
39.98


(18 row(s) 影響を受けます)

加算 (+)、減算 (-)、乗算 (*)、除算 (/) など、ほとんどの標準的な算術演算子を使用してフィールド値を操作できます。複数のフィールドに対して一度に操作を実行することもできます。例:

SELECT 価格*ytd_sales "総収益" FROM タイトル

この例では、本の種類ごとの総売上高は、価格と販売量を乗算して計算されます。この SELECT ステートメントの結果は次のようになります:

total 収入

……………………………………………………………………

(18 影響を受ける行)

最後に、連結演算子 (プラス記号のように見えます) を使用して 2 つの文字フィールドを結合することもできます:

SELECT au_fname+" "+au_lname "著者名" FROM authors

この例では、フィールド au_fname とフィールド au_lname をカンマで区切って貼り付け、クエリ結果のタイトルを author として指定します。
名前。このステートメントの実行結果は次のようになります:

author 名前

………………………………………………………………

ジョンソン・ホワイト

マージョリー グリーン

シェリル・カーソン

マイケル・オリアリー

ディーン ストレート



(23 row(s) 影響を受けます)

ご覧のとおり、SQL ではクエリ結果を大幅に制御できます。 ASP プログラミングの際には、これらの利点を最大限に活用する必要があります。 SQL を使用してクエリ結果を操作することは、ほとんどの場合、同じことを行うスクリプトを使用するよりも効率的です。

クエリ結果の並べ替え

この章の導入部分で、SQL テーブルには固有の順序がないことが強調されました。たとえば、テーブルから 2 番目のレコードをフェッチすることは意味がありません。 SQL の観点から見ると、他のレコードに先行するレコード
はありません。

ただし、SQL クエリの結果の順序は操作できます。デフォルトでは、レコードはテーブルから取得されるときに特定の順序で表示されません。たとえば、テーブル
authors からフィールド au_lname を取り出すと、クエリ結果は次のように表示されます:

au_lname

……………………………….

White

Green

カーソン

オレアリー

ストレート



(23 影響を受ける行)

名前の列を順不同で見るのは非常に不便です。名前をアルファベット順に並べると、はるかに読みやすくなります。 ORDERを利用することで BY 句を使用すると、次のように
クエリ結果を強制的に昇順で並べ替えることができます:

SELECT au_lname FROM authors ORDER BY au_lname

このSELECT文を実行すると、著者名の表示がアルファベット順になります。注文 BY 句は、著者名を昇順に並べ替えます。

複数の列で ORDER を同時に使用することもできます BY句。たとえば、フィールド au_lname とフィールド au_fname の両方を昇順で表示したい場合は、両方のフィールドを
する必要があります。並べ替え:

SELECT au_lname、au_fname 著者からの注文 au_lname ,au_fname

このクエリは、まず au_lname フィールドで結果を並べ替え、次に au_fname フィールドで並べ替えます。レコードは次の順序で取得されます:

au_lname au_fname

………………………………………………………………………….

ベネット・エイブラハム

リンガー アルバート

リンガー・アン

スミス・ミアンダー



(23 row(s) 影響を受けます)

Ringer という同じ名前の著者が 2 人いることに注意してください。アルバート・リンガーという作家がアンとして登場 リンガーの著者よりも前に、アルファベット順で姓アルバートが姓アンよりも前に来る必要があるためです。

クエリ結果を逆順に並べ替える場合は、キーワード DESC を使用できます。次の例に示すように、キーワード DESC はクエリ結果を降順に並べ替えます。 au_lname,au_fname 著者から

WHERE au_lname=”Ringer” ORDER BY au_lname ,au_fname DESC

このクエリは、authors テーブルから Ringer という名前のすべての著者レコードを取得します。注文 BY 句は、作成者の姓名に基づいてクエリ結果を降順に並べ替えます。結果は次のようになります:

au_lname au_fname

……………………………………………………………………………………………….

着信音 アン

リンガー・アルバート

(2 row(s) affec)

この表では、アンという姓がアルバートという姓の前に表示されていることに注意してください。著者名は降順に表示されます。

クエリ結果を数値フィールドで並べ替えることもできます。たとえば、すべての書籍の価格を降順で取得したい場合は、次の SQL クエリを使用できます:

SELECT タイトルから価格 価格で注文 DESC

この SELECT ステートメントは、テーブルからすべての書籍の価格を取得し、結果を表示する際に、価格の低い書籍が最初に表示され、価格の高い書籍が最後に表示されます。

警告:

サーバーがこの作業を完了するにはある程度の労力がかかるため、特に必要な場合を除き、クエリ結果を並べ替えないでください。これは、ORDER を使用すると、 による この句の SELECT ステートメントは、通常の SELECT ステートメントよりも実行に時間がかかります。

異なるレコードを取得する

テーブルの同じ列に重複した値が含まれる場合があります。たとえば、データベース pubs の作成者テーブルには、Ringer という名前の 2 人の作成者がいます。この表から
の名前をすべて取得すると、Ringer という名前が 2 回表示されます。

場合によっては、テーブルから異なる値を取得することだけに興味があるかもしれません。フィールドに重複した値がある場合、キーワード DISTINCT を使用して各値を 1 回だけ選択することができます:

SELCET DISTINCT au_lname FROM authors WHERE au_lname="Ringer"

この SELECT ステートメントが実行されると、1 つのレコードのみが返されます。 SELECT ステートメントにキーワード DISTINCT を含めることにより、重複する値をすべて削除できます。たとえば、ニュース グループで公開された情報に関するテーブルがあり、このニュース グループで情報を公開したすべての人の名前を取得したい場合は、キーワード DISTINCT を使用できます。各ユーザーの名前は 1 回だけ取得されますが、複数のメッセージを投稿するユーザーもいます。

警告:

いいね注文 BY 句と同様に、サーバーに異なる値を強制的に返すと、操作上のオーバーヘッドが増加します。 Blessings はこれを完了するのにしばらく時間を費やす必要がありました。したがって、絶対に必要でない場合は、キーワード DISTINCT を使用しないでください。

新しいテーブルを作成する

前述したように、データベース内のすべてのデータはテーブルに保存されます。データテーブルには行と列が含まれます。列はテーブル内のデータのタイプを決定します。行には実際のデータが含まれます。

たとえば、データベース pubs のテーブル authors には 9 つのフィールドがあります。フィールドの 1 つは au_lname という名前で、作成者の名前情報を保存するために使用されます。新しい著者がこのテーブルに追加されるたびに、その著者の名前がこのフィールドに追加され、新しいレコードが作成されます。

フィールドを定義することで、新しいテーブルを作成できます。各フィールドには名前と特定のデータ型があります (データ型については後述の「フィールド型」セクションで説明します)。たとえば、フィールド au_lname には文字データが格納されます。フィールドには他のタイプのデータを格納することもできます。

SQL の使用 新しいテーブルを作成するにはさまざまな方法があります。 SQL ステートメントを実行するか、SQL トランザクション マネージャー (SQL Enterprise) を使用できます。 Manager) を使用して新しいテーブルを作成します。次のセクションでは、SQL ステートメントを使用して新しいテーブルを作成する方法を学習します。



上記は SQL データ操作の基礎 (初級) 3 の内容です。その他の関連記事については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート