Segunda-feira, 19 de Julho de 2010

Em Fevereiro colocamos aqui um post com algumas questões de SQL que poderiam ser colocadas numa entrevista.

Vamos tornar a abordar o problema, com a seguinte tabela:

mysql> select * from e;
+-------+-------+
| nome  | valor |
+-------+-------+
| josé  |    20 |
| joão  |    10 |
| rui   |     5 |
| pedro |     3 |
| josé  |     5 |
| pedro |    10 |
| luís  |    25 |
+-------+-------+
7 rows in set (0.00 sec)

 

Algo que costuma ser feito já depois das queries é perguntar aos candidatos quais os tipos de dados das duas colunas.

Para efeitos deste post, vamos assumir uma base de dados MySQL com uma tabela definida da seguinte forma:

create table e (
nome varchar(50),
valor int
) ENGINE=InnoDB;

INSERT INTO e (nome, valor) VALUES
('josé', 20),
('joão', 10),
('rui', 5),
('pedro', 3),
('josé', 5),
('pedro', 10),
('luís', 25)
;

 

Vamos analisar as queries que propusemos no nosso post anterior.

 

mysql> select sum(valor) from e;
+------------+
| sum(valor) |
+------------+
| 78         |
+------------+
1 row in set (0.40 sec)


É das queries mais simples e quase todos os candidatos a escrevem correctamente.

 

mysql> select nome, sum(valor) from e group by nome;
+-------+------------+
| nome  | sum(valor) |
+-------+------------+
| joão  |         10 |
| josé  |         25 |
| luís  |         25 |
| pedro |         13 |
| rui   |          5 |
+-------+------------+
5 rows in set (0.04 sec)


Quase todas as pessoas sabem como se faz, mas já se encontra alguns candidatos que trocam a ordem de algumas cláusulas, que se esquecem do group by, etc.

 

mysql> select nome from e group by nome having count(1) > 1;
+-------+
| nome  |
+-------+
| josé  |
| pedro |
+-------+
2 rows in set (0.00 sec)


Neste ponto sim, já começamos a perder muito boa gente.

 

mysql> select group_concat(distinct nome) from e;
+-----------------------------+
| group_concat(distinct nome) |
+-----------------------------+
| josé,joão,rui,pedro,luís    |
+-----------------------------+
1 row in set (0.00 sec)


Tipicamente já só acerta estas queries quem tem experiência intensiva com bases de dados.

Faz sentido, porque é perfeitamente viável trabalhar com bases de dados sem usar extensivamente tudo o que elas nos oferecem.

Não será de facto por não saber algo deste género que um candidato ficará pelo caminho, mas são perguntas como esta que permitem ir discernindo o tipo de uso que a pessoa dá à base de dados.

Perguntas como esta e não só: perguntas sobre as perguntas.

Numa entrevista não declaramos a base de dados, apenas a desenhamos num quadro ou numa folha de papel.

Depois de termos abordado várias queries, aí sim, abordam-se outras temáticas:


Há sempre mais qualquer coisa que a conversa traz, como por exemplo o entrevistado sugerir que o tipo de dados do valor deveria ser um INT(3)...



publicado por jac às 10:00
link do post | comentar | ver comentários (1) | adicionar aos favoritos |

Segunda-feira, 8 de Fevereiro de 2010

Antes ainda de analisarmos o problema do chmod e as suas múltiplas soluções, eis um problema relativamente simples de SQL.

 

Tomemos como exemplo a seguinte tabela, onde anotamos quanto dinheiro emprestamos a cada pessoa, sendo que já emprestamos dinheiro mais que uma vez a algumas pessoas:

 

| nome | valor |
|--------------|
| josé  | 20   |
| joão  | 10   |
| rui   | 5    |
| pedro | 3    |
| josé  | 5    |
| pedro | 10   |
| luís  | 25   |
|--------------|

 

Tendo por base esta tabela, o problema consiste em escrever várias queries SQL para:

Para quem quiser tentar responder a este problema sugere-se a criação da tabela e o teste das queries no computador.



publicado por jac às 10:00
link do post | comentar | ver comentários (4) | adicionar aos favoritos |


Autores
pesquisar
 
Janeiro 2012
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2
3
4
5
6
7

8
9
10
11
12
13
14

15
16
17
18
19
20
21

22
23
24
25
26
27
28

29
30
31



follow saposessions at http://twitter.com
posts recentes

SQL nas entrevistas

Problemas de SQL

arquivos

Janeiro 2012

Dezembro 2011

Outubro 2011

Setembro 2011

Agosto 2011

Julho 2011

Junho 2011

Maio 2011

Abril 2011

Março 2011

Janeiro 2011

Outubro 2010

Setembro 2010

Agosto 2010

Julho 2010

Junho 2010

Maio 2010

Abril 2010

Março 2010

Fevereiro 2010

Janeiro 2010

Dezembro 2009

Novembro 2009

Outubro 2009

Setembro 2009

Agosto 2009

Julho 2009

Junho 2009

Maio 2009

Abril 2009

Março 2009

Fevereiro 2009

tags

todas as tags

últ. comentários
Boas, Apesar deste post já ser um pouco antigo gos...
Por sinal já foi desenvolvido e encontra-se neste ...
A informação que faltava está agora aqui: http://d...
A informação já está aqui: http://developers.blogs...
Boas,Onde é que isto vai ser? Há algum critério pa...
blogs SAPO
subscrever feeds