39

ここでは、基本的な関係代数演算子について言及しています。
私が見ているように、プロジェクトで実行できることはすべて選択で実行できます。

私が見逃した違いや特定のニュアンスがあるかどうかはわかりません。

4

10 に答える 10

60

選択操作 :この操作は、 と呼ばれる特定のロジックを指定するテーブル (リレーション) から行を選択するために使用されますpredicate。述語は、ユーザーが選択した行を選択するためのユーザー定義の条件です。

プロジェクト操作 :ユーザーがテーブル (リレーション) のすべての属性を選択するのではなく、いくつかの属性の値を選択することに関心がある場合は、操作を選択する必要がありますPROJECT

もっと見る :関係代数とその操作

于 2011-03-25T12:49:27.770 に答える
28

リレーショナル代数では、「選択」と「射影」は異なる操作ですが、SQL SELECT はこれらの操作を 1 つのステートメントに結合します。

Select は、「述語」セクション (WHERE 句) の条件が真であるリレーション (テーブル) 内のタプル (行) を取得します。

Project は、指定された属性 (列) を取得します。

次の SQL SELECT クエリ:

select field1,field2 from table1 where field1 = 'Value';

関係代数の射影演算と選択演算の両方を組み合わせたものです。

于 2014-02-28T03:40:27.547 に答える
10

プロジェクトはステートメントではありません。それは select ステートメントの機能です。Select ステートメントには 3 つの機能があります。それらは、選択、投影、結合です。Selection-it は、指定されたクエリに適合する行を取得します。プロジェクション - 指定されたクエリを満たす列を選択します。Join-it は 2 つ以上のテーブルを結合します

于 2015-06-06T04:41:09.390 に答える
1

Project行に影響を与えながら、テーブルSelectの列に影響を与えます。一方Project、すべての列データを選択するのではなく、特定のプロパティを持つ列を選択するために使用されます

于 2016-08-13T19:47:01.993 に答える
0

違いは、プロジェクトが列に影響し、選択が行に影響する関係代数にあります。ただし、クエリ構文では、選択は単語です。プロジェクトのようなクエリはありません。users という名前のテーブルがあり、数十万のレコード (行) があり、テーブルに 6 つのフィールド (userID、Fname、Lname、age、pword、salary) があるとします。機密データ (userID、pword、および給与) へのアクセスを制限し、アクセスするデータの量も制限したいとします。mysql maria DB では、次のようにビューを作成します (Create view user1 as select Fname,Lname, age from users limit 100;) 発行するビュー (select Fname from users1;) から。このクエリは選択とプロジェクトの両方です

于 2018-02-27T08:47:00.443 に答える