ホームページ  >  記事  >  データベース  >  SQL クエリでテーブルの別名を設定するための重要なポイント (概要の共有)

SQL クエリでテーブルの別名を設定するための重要なポイント (概要の共有)

WBOY
WBOY転載
2022-09-07 14:15:235543ブラウズ

この記事では、SQL サーバー に関する関連知識を提供します。SQL を使用すると、テーブル名または列名の別名を指定できます。以下では、SQL クエリを使用したテーブルの別名作成に関する重要なポイントを紹介します (ネストされたクエリ)、皆さんのお役に立てれば幸いです。

SQL クエリでテーブルの別名を設定するための重要なポイント (概要の共有)

推奨学習: 「SQL チュートリアル

スペースまたは as

を使用してテーブルの別名を付けることができますが、オペレーティング データベースが Oracle の場合、Oracle の構文に準拠していないため、使用できるのはスペースのみであることに注意してください。

例:

単純なクエリでエイリアスを使用する

select *
from student s
where s.id = '10';

単純なクエリでエイリアスを使用する場合、通常は特に注意する必要はなく、実行する操作も少なくなります

複雑なクエリでのエイリアスの使用

質問の概要: 3 つのテーブルがあります。student(sno,sname,ssex,birthday,class)

score(sno,cno,degree)

course(cno,cname,tno)

選択コース「3-105」を受講し、番号「109」の学生より成績が高いすべての学生の記録をクエリします。

回答:

select *
 from (select s.sno,s.sname,s.ssex,s.sbirthday,s.class,    sc.degree,c.cno,c.cname,c.tno from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss
 where  ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');

ご覧のとおり、操作を容易にするために、テーブル ss を再定義しました。このテーブルは、上記 3 つのテーブルの内容も含む大きなテーブルです。ただし、間違いやすいので以下の点に注意してください。

新しく定義したテーブルの値をすべて表示したい場合、*

##を直接使用することはできません。 #. たとえば、宣言された回答を

select *
 from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss
 where  ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');
## に変更すると、 # コマンド ラインでは、列が明確に定義されていないことが表示されます。これは、列を新しいテーブルとして指定したいためですが、列名は一部の列は繰り返されるため、そのうちの 1 つを指定する必要があります。

ネストされたクエリのコードは完全な実行セクションであり、最初から実行されるため、新しく作成されたテーブルをネストされたクエリ ステートメントで使用することはできません。とにかく、それを呼び出すとエラーが報告されます。

select *
 from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss
 where  ss.cno = '3-105' and ss.degree >( select degree from ss where sno = '109' and cno = '3-105');

この SQL のサブクエリでは ss new テーブルが使用されており、コンパイルではテーブルまたはビューにエラーがないことが示されます。

推奨学習:「

SQL チュートリアル

以上がSQL クエリでテーブルの別名を設定するための重要なポイント (概要の共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。