Consultas SQL vs Smalltalk

Recopilado por Germán S. Arduino


Lenguaje Smalltalk, que más?

El Smalltalk provee de un lenguage muy superior a cualquier lenguaje de queries.

Ejemplos:

SQL
Smalltalk
SELECT * FROM Client clients
SELECT name FROM Client clients collect:[:each | each name]
SELECT name FROM Client WHERE lastName = 'Gomez Deck' clients
select:[:each | each lastName = 'Gomez Deck']
thenCollect:[:each | each name]
SELECT * FROM Client WHERE name LIKE '%Deck%' clients
select:[:each | '*Deck*' match:each name]
SELECT * FROM Client WHERE name LIKE 'Gomez%' clients
select:[:each | each name beginsWith:'Gomez']
SELECT Client.* FROM Client, City
WHERE (Client.cityID = City.ID) AND (City.name = 'Grueningen')
 clients
select:[:each | each city name = 'Grueningen'].
(cities detect:[:each | each name = 'Grueningen']) clients.
SELECT COUNT(*) FROM Client clients size
 SELECT SUM(age) FROM Client (clients collect:[:each | each age]) sum


A lo mejor es conveniente ampliar el protocolo de Collection para algunos casos, ejemplos: #collectAndSum: o #sum:

(Estos ejemplos son gentileza de Diego Gómez Deck)
 


ArSol.biz 2004