Para os velhinhos que nem eu..... rs
Muitos aqui começaram usando o DBASE.
E devem se lembrar dos comandos que eram aceitos nele.
LIST FOR CLIENTE = 5
LIST DOCUMENTO, EMISSAO, VENCIMENTO, VALOR FOR CLIENTE = 5
SET RELATION TO CLIENTES INTO CODCLI
LIST DOCUMENTO, EMISSAO, VENCIMENTO, VALOR, CLIENTES->NOME FOR VALOR > 100
Pois é...
O SQL é como se voltasse esse tempo do DBASE.
Só que ao invés de digitar o comando, o computador é que envia o comando pro servidor, e o servidor responde.
É como se o computador digitasse esse LIST, e o servidor retornasse o resultado da consulta.
Em DBASE:
USE FINANCEIRO
LIST DOCUMENTO, EMISSAO, VENCIMENTO, VALOR FOR CLIENTE =5
E o resultado aparece na tela
Em MYSQL
SELECT DOCUMENTO, EMISSAO, VENCIMENTO, VALOR FROM FINANCEIRO WHERE CLIENTE = 5
E o resultado vém no formato da LIB usada, que pode ser recordset no ADO, array na classe TMySQL, DBF na SQLMIX, etc.
Basta usar o resultado da consulta.
E os tais geradores de relatório?
Voltemos ao DBASE:
USE ARQUIVO
REPORT FORM arquivo.frm FOR CLIENTE=5 TO PRINT
O grande sucesso do DBASE foi a facilidade de obter dados via comandos.
O SQL é exatamente a mesma coisa, mas que o aplicativo também pode usar.
O DBASE morreu?
Dependendo do ponto de vista.... talvez ele tenha evoluÃdo para o SQL.
Então temos:
- O SQL, que seria o estilo de comandos interativos do DBASE, mas com uso mais universal, e mais poderoso
- O formato de gravação... aà inventaram vários: MySQL, SQL Server, Firebird, etc... que usam os comandos SQL padronizados. Para o programador, nem faz diferença esse "formato binário", já que os comandos SQL fazem tudo que precisa, e retornam as informações do jeito que precisa
- A linguagem de programação... se o banco de dados pode fazer muita coisa... a linguagem de programação passa a ser gosto pessoal, nem importa muito, porque ela vai só enviar comandos e receber respostas.
Quantas vezes você já não pensou isto:
"É tão fácil no DBASE digitar comandos pra buscar coisas.... e no aplicativo é complicado...."
Pois é... o SQL resolveu essa questão.
Pode fazer muitos browses/grids no aplicativo, gerados a partir de comandos SQL.
Precisa de uma tela pra listar pedidos pendentes......
Pense no DBASE... como faria isso com o comando LIST.... é só fazer o mesmo, mas com o comando equivalente SELECT.
SELECT * FROM PEDIDOS WHERE STATUS="PENDENTE"
Só isso e o browse/grid e tá pronto.
E totalizado? tinha isso no DBASE também:
USE PEDIDOS
LIST SUM( VALOR ) FOR CLIENTE = 5
Em SQL, juntou tudo numa linha só:
SELECT SUM(VALOR) FROM PEDIDOS WHERE CLIENTE = 5
"Talvez" pensar no SQL como o interativo do DBASE ajude a entender melhor o que é o SQL.
A diferença é que você não digita, você envia o comando pelo aplicativo, e quem faz o trabalho não é o computador do aplicativo e sim o servidor que seria o "dbase".