SQL para Inglês Ver

SQL para Inglês Ver

Temos muitos alunos de SQL, um dos carros-chefes da Aprenda Virtual. Entretanto, em retornos obtidos pelos alunos, nos chamou a atenção o comentário feito por um deles em que relata que o entendimento da linguagem SQL não era devido apenas ao conhecimento da área de banco de dados, mas também da língua inglesa, visto que todos os comandos em SQL são descritos em inglês.

Durante nossas turmas de banco de dados, esta hipótese se confirma na medida em que vejo muitos alunos com dificuldades em decorar uma sintaxe simples de um comando SELECT, por exemplo. Já vimos de tudo, aluno que troca o FROM pelo WHERE, o GROUP BY pelo HAVING, e por aí vai no mais perfeito empirismo desvairado.

Isto leva a crer que, apesar das milhares de ofertas de cursos de inglês, campanhas de "A Cidade Vai de Bike" e uso exagerado de termos ingleses em nossa mídia colonial, a grande maioria da população, na qual se insere os alunos em geral, não pensa necessariamente utilizando termos anglo-saxônicos.

Os efeitos colaterais desta situação são sentidos em sala de aula no momento em que os alunos demonstram grande dificuldade de aprender o uso correto da sintaxe de comandos na linguagem SQL.

Se pensarmos bem, no fundo, no fundo, a grande vantagem de um estudante que mora em um país que fala o inglês, de um outro que não fala, é que este praticamente "conversa" com seu computador em linguagem nativa.

Sim ! Se as linguagens de computador são em inglês, o emprego de comandos nesta lingua para quem pensa em inglês é praticamente um diálogo bacana de se ter com a máquina .

Vamos a um exemplo didático para que vocês entendam do que estou falando.

Suponhamos que o inventor da linguagem SQL seja um brasileiro, mais especificamente um soteropolitano. 😀

Em um belo dia, um professor de SQL discorre sobre consultas a serem feitas em um banco de dados e cita um exemplo hipotético envolvendo duas coleções distintas de dados: Os cabides dos guarda-roupas de Maria e Joana.

Tanto a Maria quanto a Joana guardam em cada cabide um trio de roupas contendo uma camisa, uma calça e uma meia.

Para fins de organização, elas resolveram guardar em um banco de dados as cores de cada peça de roupa, segundo o cabide onde estão localizados. A Maria e a Joana então tomaram o cuidado de numerar seus cabides com o objetivo de melhor recuperar as roupas. Desta forma, foram criadas duas tabelas distintas contendo os dados dos cabides de ambas:

TABELA cabide_de_maria

CAMPOS: id_cabide, cor_da_calça, cor_da_camisa, cor_da_meia

TABELA cabide_de_joana

CAMPOS: id_cabide, cor_da_calça, cor_da_camisa, cor_da_meia

É importante dizer que o campo "id_cabide" guarda o número do cabide que a Maria e a Joana numeraram em seus guarda-roupas.

Para criar estas tabelas, basta dizer para o computador que os criem com os seguintes comandos:

CRIE TABELA cabide_de_maria

(

id_cabide INTEIRO NÃO NULO CHAVE PRIMARIA,

cod_da_calça CARACTER (50) NÃO NULO,

cor_da_camisa CARACTER (50) NÃO NULO,

cor_da_meia  CARACTER (50) NÃO NULO

);

CRIE TABELA cabide_de_joana

(

id_cabide INTEIRO NÃO NULO CHAVE PRIMARIA,

cod_da_calça CARACTER (50) NÃO NULO,

cor_da_camisa CARACTER (50) NÃO NULO,

cor_da_meia  CARACTER (50) NÃO NULO

);

Uma vez dito ao computador para criar as tabelas, basta inserir os valores, seguindo este exemplo:

INSIRA DENTRO DE cabide_maria (id_cabide, cor_da_calça, cor_da_camisa, cor_da_meia)

OS VALORES (1,'azul','vermelho','amarelo');

Bem, digamos que Maria deseje recuperar os cabides que possuem uma cor de camisa que esteja em uma das camisas nos cabides do guarda-roupa de Joana.

Para fazer isto, é muito simples, basta dizer ao computador que ele faz:

SELECIONE TODOS_OS_CABIDES

DO cabide_de_maria APELIDADO DE cm

ONDE cm.cor_da_camisa ESTEJA NA

(SELEÇÃO cj.cor_da_camisa

DO cabide_de_joana APELIDADO DE cj)

Veja que os campos de ambas as tabelas são iguais, por isto foi necessário apelidá-las para economizar os dedos durante a digitação de qual cabide a cor de camisa, por exemplo, se refere. Note que sem isto o computador pode ficar em dúvida e irá interromper a execução do comando solicitado.

Em uma consulta mais complexa, digamos que a Maria queira saber quais cabides de seu guarda-roupa contém uma camisa e calça penduradas, cujas cores também existam em uma camisa e calça penduradas em um cabide de Joana.

Para saber isto, basta dizer o seguinte ao computador:

SELECIONE TODOS_OS_CABIDES

DO cabide_de_maria APELIDADO DE cm

ONDE EXISTA UMA

(SELEÇÃO TODOS_OS_CABIDES

DO cabide_de_joana APELIDADO DE cj

ONDE cj.cor_da_camisa = cm.cor_da_camisa

E cj.cor_da_calça = cm.cor_da_calca);

Viu como é fácil aprender o SQL? Basta dizer ao computador que ele faz. 😀

---------------------------

Bem, se você entendeu a lição, por que será que tem tanta dificuldade em fazer o mesmo em inglês?

CREATE TABLE cabide_de_maria

(

id_cabide INT NOT NULL PRIMARY KEY,

cod_da_calça CHAR (50) NOT NULL,

cor_da_camisa CHAR (50) NOT NULL,

cor_da_meia  CHAR (50) NOT NULL

);

CREATE TABLE  cabide_de_joana

(

id_cabide INT NOT NULL PRIMARY KEY,

cod_da_calça CHAR (50) NOT NULL,

cor_da_camisa CHAR (50) NOT NULL,

cor_da_meia  CHAR (50) NOT NULL

);

INSERT INTO cabide_maria (id_cabide, cor_da_calça, cor_da_camisa, cor_da_meia)

VALUES (1,'azul','vermelho','amarelo');

SELECT *

FROM cabide_de_maria AS cm

WHERE cm.cor_da_camisa IN

(SELECT cj.cor_da_camisa

FROM cabide_de_joana AS cj);

SELECT *

FROM cabide_de_maria AS cm

WHERE EXISTS

(SELECT *

FROM cabide_de_joana AS cj

WHERE cj.cor_da_camisa = cm.cor_da_camisa

AND cj.cor_da_calça = cm.cor_da_calca);

-------------------------

Perceberam a diferença da coisa? Enquanto os comandos em português se resumem a "dizer" ao computador o que ele deve fazer, os comandos em inglês, para muitos alunos, participam de um intrincado quebra-cabeças de palavras que mais parece um código secreto de uma lingua alienígena dentro da máquina.

Em meu entendimento, pecamos um pouco por menosprezar o conhecimento de inglês dos alunos e o fato de muitos deles sequer terem a chance de pensar nesta língua durante as aulas. Como corrigir isto, bem tenho muitas sugestões a fazer e que deixarei para um próximo post. Só adianto uma coisa, o inglês nada mais é que uma língua como todas as outras. Nos concentremos na comunicação e no fazer entender-se apenas, ao invés de nos cobrarmos uma fluência bastante díficil de ser alcançada para quem não vive a língua diariamente.

Programar nada mais é do que dizer ao computador como se espera que ele faça algumas coisas. Pense nisto.

Para aprender mais sobre SQL, acesse nossos cursos da Aprenda Virtual.

Clique para conhecer o curso de PL/SQL na Aprenda Virtual

Clique para conhecer o curso de SQL na Aprenda Virtual

Nenhum Comentário

Escrever um Comentário