SóProvas


ID
1666957
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Deseja-se criar uma tabela chamada Departamento contendo os seguintes campos:

idDep − inteiro, chave primária, não nulo, auto numeração.

nomeDep − cadeia de caracteres com, no máximo, 50 caracteres, não nulo.

telefoneDep − cadeia de caracteres com, no máximo, 15 caracteres.

Considerando-se que o banco de dados está aberto e em condições ideais, o comando SQL que deverá ser utilizado é:

Alternativas
Comentários
  • Alguém pode comentar estas colocações abaixo?

    1- VARCHAR

      Atualmente (até a versão 11G do Oracle Database), VARCHAR nada mais é do que um sinônimo paraVARCHAR2 (desde o Oracle8), por isso a Oracle recomenda não utilizar este tipo de dado. Existe a possibilidade deVARCHAR ser utilizado em versões futuras para ter uma semântica ou característica diferente de VARCHAR2, mas mesmo, estando tudo igual atualmente, utilizeVARCHAR2 ao invés de VARCHAR, para evitar possíveis problemas futuros.


    2- VARCHAR2

    VARCHAR2 armazena caracteres alfanuméricos de tamanho variável, entre 1 e 4000 bytes oucaracteres. O tamanho padrão desta coluna é especificado em bytes. Agora vem a pergunta, qual a diferença entre armazenar bytes ou caracteres? Bom... quando utilizamos caracteres multibyte, como por exemplo UTF-8 (para representar caracteres específicos em múltiplas linguagens), 1 único caractere pode ser armazenado em até 3 bytes. Nestes casos, uma palavra contendo caracteres especiais, como por exemplo, FÁBIO, poderá ter mais bytes do que caracteres (a letra Á, internamente será armazenada em 2 ou 3 bytes), por isso, recomenda-se, nestes casos, especificar o armazenamento da coluna em caracteres, ao invés de bytes.

    http://www.fabioprado.net/2011/08/qual-tipo-de-dado-devo-usar-char.html

    Com relação a questão:

    a) AUTO_NUMBERING é utilizado no Excel e não em SQL

    b) Fiquei na dúvida em saber se o erro está em utilizar VARCHAR2() ou a utilização do NULLABLE (algúem ajuda?)

    c) Sintaxe correta

    d)PRIMARY_KEY não utiliza o caractere "_" ver opção anterior para observar a sintaxe correta

    e)AUTO_INCREMENT não o correto é AUTOINCREMENT. O comando PRIMARY_KEY além de estar escrito errado pode ser adicionada como mostra o link a seguir: http://www.1keydata.com/pt/sql/sql-chave-primaria.php

  • O problema da alternativa B é a instrução NULLABLE (que não existe). 

    Toda coluna que não componha a chave primária e que não tenha a especificação NOT NULL aceitará valores nulos por padrão.

    "AUTO_INCREMENT" funciona apenas para MySQL. No SQL Server, por exemplo, você deveria usar IDENTITY. Já no Oracle você deve usar um outro objeto denominado "sequence". 

    Para validar as instruções acima use um validador de sintaxe, no caso abaixo funciona apenas para MySQL (que é o SGBD alvo da questão).

    http://pt.piliapp.com/mysql-syntax-check/

  • Qual o erro da E? seria o underline no PRIMARY_KEY?

  • A) Errada auto numeração é definida com "AUTO_INCREMENT" e não "AUTO_NUMBERING"

    B) Errada auto numeração é definida com "AUTO_INCREMENT" e não "AUTOINCREMENT" nem usa-se "NULLABLE"

    C) Correta

    D) Errada pois auto numeração é definida com "AUTO_INCREMENT" e não "AUTOINCREMENT"

     

    E) Errada campo com auto numeração é definido com "AUTO_INCREMENT" e as restrições devem ser definidas após a criação dos campos, nesse  contexto deixando o PRIMARY KEY como último comando da query !

  • Prezados,

    O comando da questão pede para criar a tabela Departamento , com o campo idDep sendo chave primária, inteiro e auto incrementável. A coluna nomeDep com 50 caracteres não nulos , a coluna telefoneDep com 15 caracteres.

    A alternativa A está errada pois não existe a característica "AUTO_NUMBERING"
    A alternativa B está errada pois para especificarmos que o campo pode ser nulo pasta não colocar o "NOT NULL". Não existe o "NULLABLE"
    A alternativa C atende todos os requisitos do comando da questão.
    A alternativa D está errada pois falta uma vírgula depois da criação de telefoneDep VARCHAR(15)
    A alternativa E está errada pois a definição da primary key na mesma linha da definição da coluna só funciona em SQL Server , Oracle ou Access , não obstante , a questão colocou "PRIMARY_KEY" , que não existe , o correto seria sem o _ .

    Portanto a alternativa correta é a letra C.

  • É possível sim declarar a Pk junto com o atributo