// display all Customers
SELECT c FROM Customer AS c

// display Customer #2
SELECT c FROM Customer AS c
WHERE c.customerID=2          

// display all Products
SELECT p FROM Product AS p

// display Product #2
SELECT p FROM Product AS p
WHERE p.productID=2  

// display all incomplete orders
SELECT o FROM Order o
WHERE o.isComplete=false

// line items with quantity larger than 22
SELECT li FROM LineItem li
WHERE li.quantity >= 23        

// display count of products
SELECT COUNT(p) FROM Product AS p

// display average product price
SELECT AVG(p.price) FROM Product p

// display all customers sorted
// by area code in descending order
SELECT c FROM Customer AS c 
ORDER BY c.phone DESC

// display all products that are
// lenses but are not filters
SELECT p FROM Product p
WHERE LOCATE('lens', p.description) <> 0 AND
LOCATE('filter', p.description) = 0

// display all products with above average prices
SELECT p FROM Product AS p 
  WHERE p.price > 
    (SELECT AVG(x.price) FROM Product AS x) 
    
// display all orders for customer #2 that
// are not yet complete
SELECT o FROM Customer AS c INNER JOIN c.orders AS o 
  WHERE 
   c.customerID = 20 
  AND
   o.isComplete=false    