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)