Native Relational Operations
 
  
   
    | Name | 
    Symbol | 
    Keyboard Form | 
    Example | 
   
   
    | PROJECT | 
    R[ ] | 
    R[ ] | 
    R[ Ai1 ... Aik ] | 
   
   
    | SELECT | 
    R where C | 
    R where C | 
    R where A1 = 5 | 
   
   
    | JOIN | 
    ∞ | 
    JOIN | 
    R∞S, or R JOIN S | 
   
   
    | DIVISION | 
    ÷ | 
    DIVIDEBY | 
    R÷S, or R DIVIDEBY S | 
   
  
 Projection
Assume 
Head(R)=A1…An.
The projection of 
R on attributes 
Ai1,…,Aik, where 
{Ai1,…,Aik}⊆{A1,…,An} is a table 
T whose heading is 
Head(T)=Ai1…Aik, with the following content.
For every row 
r in the table 
R there will be single row 
t in the table 
T such that 
r[Aij]=t[Aij]
for every 
Aij contained in 
{Ai1,…,Aik}.
 - The project of 
R on {Ai1,…,Aik} is denoted by R[Ai1,…,Aik].
  
 - Duplicate rows will be deleted until only one copy in the result of the projection.
 
 
 
  
 
  
 
  | customer | 
  
 
  | cid | 
  cname | 
  city | 
  discnt | 
  
 
  | c001 | 
  TipTop | 
  Duluth | 
  10.00 | 
  
 
  | c002 | 
  Basics | 
  Dallas | 
  12.00 | 
  
 
  | c003 | 
  Applied | 
  Dallas | 
  12.00 | 
  
 
  | c004 | 
  ACME | 
  Duluth | 
  12.00 | 
  
 
  | c006 | 
  ACME | 
  Kyoto | 
  0.00 | 
  
 
   | 
  
   
    ⇒ 
    CN := CUSTOMER[cname]
   
   | 
  
 
  
 
  | CN | 
  
 
  | cname | 
  
 
  | TipTop | 
  
 
  | Basics | 
  
 
  | Applied | 
  
 
  | ACME | 
  
 
   | 
  
 
   | 
  
 
   | 
 
 
 
  
   
          
     My girlfriend’s dog died, so I tried to      
           cheer her up by getting her an identical one.      
           It just made her more upset.
     She screamed at me,      
           “What am I supposed to do with two dead dogs?”
        
    |