E a saga continua com a luta de como ser QAs técnicos, onde ouvimos muito sobre automação, selenium, alguma linguagem de programação, ferramentas diversas, mas todos nós esquecemos do bom e velho SQL e acreditem, aprender a validar os dados é um caminho que abrirá várias portas, pois seu horizonte, não apenas como QA, irá se expandir e começaremos a olhar para outras áreas com carinho. Eu não estou dizendo de banco de dados linguição, estou falando em uma base robusta, estruturada, digna de grandes projetos.
Aqui vou colocar alguns conceitos que fazem a diferença em um QA:

  1. Leitura e interpretação de um M.E.R (Modelo de Entidade de Relacionamento) ou seja, temos que nos atentar aos seguintes itens:

    Entidades
    Atributos
    Relacionamentos

É necessário saber ler um M.E.R antes de sair por ai se aventurando com um monte de select, insert, update, pois através dele vamos saber quais são os campos chave (primária – Primary Key e estrangeira – Foreign Key), quais campos são 1:1, 1:N, N:1 e N:N, ou seja, através de um modelo bem entendido, vamos saber quais são as tabelas que vamos poder fazer um “alter” ou um “insert” ou até mesmo um “update“, pois como são campos relacionais, o dado deverá estar em todas as tabelas correspondentes.

  1. Saber identificar constraits.
    Quantos aqui já se depararam com aquele erro ORA-00001: unique constraint (XXX.XXX_PK/ XXX.XXX_FK) violated e não sabia o que fazer e alarmou pra Deus e o mundo sobre o que ocorreu, mas não sabe o que de fato ocorreu, ou porque aconteceu, ou indo mais além, não sabe o que é uma constraint, ainda mais violada. Um exemplo clássico é um campo definido como “NOT NULL” receber “NULL”.

Dica: Para se obter a(s) tabela(s) correspondentes a constraint em questão, executar o comando abaixo:

SELECT constraint_name FROM all_constraints WHERE constraint_name=‘XXX.XXX_PK’ ou ‘XXX.XXX_FK’;

Com esse comando, vamos descobrir quais as colunas de uma determinada tabela que não podem se repetir (caso comum de ORA:0001) ou, no exemplo que citei, colunas NOT NULL recebendo NULL.

Outra dica legal é o site http://www.ora-code.com/ onde traz todos os erros ORA, a causa do erro e também ação a ser tomada, que para nós da área de qualidade é uma mão na roda para descrever aos devs o problema e uma possível ação, pois agiliza o processo, ao invés dos devs irem até o google, pesquisar ou até mesmo pararem o DBA para solucionar esses problemas.
Sintaxe SQL

Após interpretar e reportar, vamos as sintaxes de comandos básicos de consultas, alteração e inserção de dados:

1.

SELECT * FROM TABELA
WHERE CAMPO
AND CAMPO;

Dica: Utilize um “alias” se preferir no nome das tabelas, pois é uma forma mais fácil de setar os campos, por exemplo:

SELECT * FROM CLIENTES clt
WHERE clt.COD_CLIENTE = 1
AND clt.NOME_CLIENTE = ‘Teste’;

Nesse caso, “clt” é o alias para a tabela de cliente, e ao colocar o ponto “.” após, já traz a lista de todos os campos (deve estar configurado na ferramenta).

Se for um tabelão (típico modelo de algumas start ups e empresas que adotam ágil como metodologia), e você quer que apenas algumas colunas apareçam, utilize o seguinte select:

SELECT clt.COD_CLIENTE,
clt.NOME_CLIENTE
FROM CLIENTES clt
WHERE clt.COD_CLIENTE = 1
AND clt.NOME_CLIENTE = ‘Teste’;

Dica: Caso o campo seja do tipo String, lembre-se de sempre utilizar ” (aspas simples).

2.

UPDATE TABELA
SET CAMPO1 = Valor1, CAMPO2= Valor2,…
WHERE CAMPOX=VALORX;

O parâmetro SET define como eu quero que o registro apareça daqui pra frente na tabela para aquele campo.

INSERT INTO CLIENTES (NomeCliente, EnderecoCLiente, CidadeCliente, CepCliente, PaisCliente)
VALUES (‘TESTE’,‘RUA X 21’,‘SAO PAULO’,‘04679000’,‘BRASIL’)

Dica: Definir no *insert *as colunas deixa mais fácil na hora de informar os valores, pois deve ser seguido na mesma ordem.

SQL é um tema que sempre me agradou, pois é interessante como as pessoas se preocupam com a carcaça e não se preocupam com que está nas entranhas do sistema. SQL é simples, fácil e rápido de aprender.

No próximo post, vou abordar temas de SQL mais avançado.