Questões

Código para a questão 1 CREATE TABLE candidato ( 2 numero sm 96966

Código para a questão

1   CREATE TABLE candidato  (

2       numero smallint NOT NULL,

3       nome character varying (40),

4       cargo smallint,

5       votos integer );

6   CREATE TABLE cargo  (

7       pk_cargo smallint NOT NULL,

8       nome character varying (40));

9   CREATE TABLE voto (

10     pk bigint NOT NULL,

11     secao integer,

12     v_cargo smallint,

13     v_candidato integer); 

14  INSERT INTO cargo  (pk_cargo, nome) VALUES (1, 'Presidente');

15  INSERT INTO cargo  (pk_cargo, nome) VALUES (2, 'Governador');

16  INSERT INTO cargo  (pk_cargo, nome) VALUES (3, 'Prefeito');

17  INSERT INTO candidato  (nome, numero, votos, cargo) VALUES ('Joao', 20, 100, 1);

18  INSERT INTO candidato  (nome, numero, votos, cargo) VALUES ('Maria', 12, 10, 2);

19  INSERT INTO voto  (secao, v_cargo, v_candidato, pk) VALUES (1, 1, 12, 1);

20  INSERT INTO voto  (secao, v_cargo, v_candidato, pk) VALUES (1, 2, 20, 2);

21  INSERT INTO voto  (secao, v_cargo, v_candidato, pk) VALUES (2, 2, 20, 2);

22  INSERT INTO voto  (secao, v_cargo, v_candidato, pk) VALUES (2, null, 12, 4);

23  INSERT INTO voto  (secao, v_cargo, v_candidato, pk) VALUES (1, 1, null, 5);

24  SELECT v.secao, c.nome FROM voto AS v, candidato AS c where c.numero = v.v_candidato ;

25  SELECT c.nome, count (*) FROM voto AS v INNER JOIN candidato AS c on c.numero = v.v_candidato

26          GROUP BY c.numero, c.nome;

27  SELECT c.numero, ca.nome, count (*)

28           FROM voto AS v INNER JOIN candidato AS c ON c.numero = v.v_candidato

29                       INNER JOIN cargo AS ca ON v.v_cargo = ca.pk_cargo GROUP BY ca.nome, c.numero;

30  ALTER TABLE ONLY candidato ADD CONSTRAINT candidato_pk PRIMARY KEY (numero);

31  ALTER TABLE ONLY cargo ADD CONSTRAINT cargo_pk PRIMARY KEY (pk_cargo);

32  ALTER TABLE ONLY voto ADD CONSTRAINT voto_pk PRIMARY KEY (pk);

33  CREATE INDEX fki_candidato_cargo_fk On candidato (cargo);

34  ALTER TABLE ONLY candidato

35     ADD CONSTRAINT candidato_cargo_fk FOREIGN KEY  (cargo) REFERENCES cargo (pk_cargo);

36  ALTER TABLE ONLY voto

37     ADD CONSTRAINT candidato_fk FOREIGN KEY (v_candidato) REFERENCES candidato (numero);

38  ALTER TABLE ONLY voto

39     ADD CONSTRAINT voto cargo fk FOREIGN KEY (v cargo) REFERENCES cargo (pk cargo);

Ainda considerando que o script SQL apresentado esteja sintaticamente correto, julgue os itens seguintes.

I O comando da linha 22, se executado novamente após a execução do script, provocará erro de violação de restrição de integridade referencial.

II A consulta da linha 24 retornará um resultado contendo 4 linhas.

III A consulta das linhas 25 e 26 retornará um resultado contendo 2 linhas e 2 colunas, em que a coluna “nome” sempre apresenta o valor 2.

IV A consulta das linhas de 27 a 29 retornará um resultado vazio.

V O comando da linha 33, se removido da sua posição atual e inserido entre os comandos das linhas 13 e 14, provocaria uma diferença relevante no tempo de execução do script.

Estão certos apenas os itens

Questões similares