SQL03: Clà usula SQL WHERE
La clàusula WHERE s'utilitza per filtrar registres. S'utilitza per extreure només aquells registres que compleixen una condició especificada.
Exemple de clàusula WHERE
La següent instrucció SQL selecciona tots els clients del país "Mèxic", a la taula "Customers":
SQL:
SELECT * FROM Customers WHERE Country='Mexico';
GenQL:
List<Customers> mexicoCustomers = this.getCustomerManager().select(CustomersFields.COUNTRY.equal("Mexico"));
print(mexicoCustomers);
Executar test
Camps de text vs. Camps numèrics
SQL requereix cometes simples al voltant dels valors de text (la majoria dels sistemes de bases de dades també permetran cometes dobles).
Tanmateix, els camps numèrics no s'han d'entre cometes:
SQL:
SELECT * FROM Customers WHERE CustomerID=1;
GenQL:
Customers customerID1 = this.getCustomerManager().findByPrimaryKey(1L);
print(customerID1);
Executar test
Camps de text vs. Camps numèrics
SQL requereix cometes simples al voltant dels valors de text (la majoria dels sistemes de bases de dades també permetran cometes dobles).
Tanmateix, els camps numèrics no s'han d'entre cometes:
SQL:
SELECT * FROM Customers WHERE CustomerID=1;
GenQL:
List<Customers> customerID1 = this.getCustomerManager().select(CustomersFields.CUSTOMERID.equal(1L));
print(customerID1);
Executar test
Operadors de la clàusula WHERE: igual (=)
SQL:
SELECT * FROM Products WHERE Price = 18;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.equal(18.0));
print(products);
Executar test
Operadors de la clàusula WHERE: superior a (>)
SQL:
SELECT * FROM Products WHERE Price > 30;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.greaterThan(30.0));
print(products);
Executar test
Operadors de la clàusula WHERE: menys de (<)
SQL:
SELECT * FROM Products WHERE Price < 30;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.lessThan(30.0));
print(products);
Executar test
Operadors de la clàusula WHERE: superior o igual (> =)
SQL:
SELECT * FROM Products WHERE Price >= 30;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.greaterThanOrEqual(30.0));
print(products);
Executar test
Operadors de la clàusula WHERE: inferior o igual (<=)
SQL:
SELECT * FROM Products WHERE Price <= 30;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.lessThanOrEqual(30.0));
print(products);
Executar test
Operadors de la clàusula WHERE: no és igual (<>)
SQL:
SELECT * FROM Products WHERE Price <> 18
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.notEqual(18.0));
print(products);
Executar test
Operadors de la clàusula WHERE: BETWEEN
SQL:
SELECT * FROM Products WHERE Price BETWEEN 50 AND 60;
GenQL:
List<Products> products = this.getProductsManager().select(ProductsFields.PRICE.between(50.0, 60.0));
print(products);
Executar test
Operadors de la clàusula WHERE: LIKE
SQL:
SELECT * FROM Customers WHERE City LIKE 's%';
GenQL:
List<Customers> customers = this.getCustomerManager().select(CustomersFields.CITY.like("s%"));
print(customers);
Executar test
Operadors de la clàusula WHERE: IN (array)
SQL:
SELECT * FROM Customers WHERE City IN ('Paris','London')
GenQL:
String[] cities = new String[] { "Paris", "London" };
List<Customers> customers = this.getCustomerManager().select(CustomersFields.CITY.in(cities));
print(customers);
Executar test
Operadors de la clàusula WHERE: IN (col·lecció)
SQL:
SELECT * FROM Customers WHERE City IN ('Paris','London');
GenQL:
List<String> cities = new ArrayList<String>();
cities.add("Paris");
cities.add("London");
List<Customers> customers = this.getCustomerManager().select(CustomersFields.CITY.in(cities));
print(customers);
Executar test