この記事では、SQL サーバー に関する関連知識を提供します。SQL を使用すると、テーブル名または列名の別名を指定できます。以下では、SQL クエリを使用したテーブルの別名作成に関する重要なポイントを紹介します (ネストされたクエリ)、皆さんのお役に立てれば幸いです。
推奨学習: 「SQL チュートリアル 」
を使用してテーブルの別名を付けることができますが、オペレーティング データベースが 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 サイトの他の関連記事を参照してください。