Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — Quadrix 2024
Banco de Dados›Sublinguagens SQL (DDL, DML, DQL, DCL e DTL)
Código
qa630737
Banca
Quadrix
Órgão
CRQ 12 (GO, TO e DF)
Ano
2024
Cargo
Ana (CRQ 12)
1. CREATE TABLE Empresa ( 2. Cod_Empresa INT PRIMARY KEY, 3. Nome VARCHAR(100) NOT NULL, 4. Endereco VARCHAR(200), 5. Telefone INT NOT NULL 6. ); 7. 8. CREATE TABLE Produto_Quimico ( 9. Cod_Produto_Quimico INT PRIMARY KEY, 10. Nome VARCHAR(100) NOT NULL, 11. Composicao VARCHAR(300) 12. ); 13. 14. CREATE TABLE Empresa_Produto_Quimico ( 15. Cod_Empresa INT, 16. Cod_Produto_Quimico INT, 17. PRIMARY KEY (Cod_Empresa, Cod_Produto_Quimico), 18. FOREIGN KEY (Cod_Empresa) REFERENCES Empresa(Cod_Empresa), 19. FOREIGN KEY (Cod_Produto_Quimico) REFERENCES Produto_Quimico(Cod_Produto_Quimico) );
Com referência ao código SQL (Structured Query Language) acima, julgue o item.
Para que o script seja executado sem qualquer tipo de erro, é necessário incluir uma vírgula (,) ao final das linhas 5, 11 e 19.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Sintaxe do CREATE TABLE e o uso de vírgulas
Gabarito: ERRADO (letra E). A afirmação está incorreta porque as linhas 5, 11 e 19 não precisam de vírgula ao final — a vírgula em SQL é um separador entre definições de colunas ou constraints, e a última definição de cada bloco (seja a última coluna ou a última constraint) não deve ser seguida de vírgula. A sintaxe correta do CREATE TABLE exige vírgula apenas entre os elementos da lista, nunca após o último.
O comando CREATE TABLE é um comando da sublinguagem DDL (Data Definition Language), responsável por definir a estrutura dos objetos do banco de dados. A sintaxe básica é:
A vírgula é um separador entre os itens da lista de colunas (e, no caso de constraints de tabela, entre as próprias constraints). Ela indica que há outro elemento vindo em seguida. Quando o elemento é o último da lista, a vírgula é omitida — adicioná-la gera erro de sintaxe na maioria dos SGBDs (MySQL, PostgreSQL, SQL Server, Oracle etc.).
Vamos analisar o script linha por linha:
Linha 5 (Telefone INT NOT NULL): é a última coluna da tabela Empresa. Como não há outra coluna depois dela, não deve haver vírgula. A linha 6 fecha o parêntese e a linha 7 (implícita) tem o ponto e vírgula que encerra o comando.
Linha 11 (Composicao VARCHAR(300)): é a última coluna da tabela Produto_Quimico. Pela mesma regra, não deve haver vírgula.
Linha 19 (FOREIGN KEY (Cod_Produto_Quimico) REFERENCES Produto_Quimico(Cod_Produto_Quimico)): é a última constraint da tabela Empresa_Produto_Quimico. A linha 17 define a PRIMARY KEY composta e as linhas 18 e 19 definem as FOREIGN KEYs. Como a linha 19 é a última, não deve haver vírgula.
A pegadinha da banca está em inverter a regra: o candidato pode pensar que, por haver múltiplas colunas ou constraints, todas as linhas precisam de vírgula. Mas a regra é clara: vírgula separa, não finaliza.
NÃO CAIA NESSA!
A banca tenta fazer você acreditar que toda linha de definição precisa terminar com vírgula. Na verdade, a vírgula é um separador — ela só aparece entre os elementos da lista. A última coluna e a última constraint de cada CREATE TABLE ficam sem vírgula. Essa é uma pegadinha clássica de sintaxe SQL: inverter o papel da vírgula (separador vs. terminador).
Para fixar, veja a diferença:
Situação
Exemplo
Vírgula?
Coluna seguida de outra coluna
Nome VARCHAR(100),
Sim
Última coluna da tabela
Telefone INT NOT NULL
Não
Constraint seguida de outra constraint
FOREIGN KEY (...),
Sim
Última constraint da tabela
FOREIGN KEY (...)
Não
Item — ❌ Errado
A afirmação de que é necessário incluir vírgula ao final das linhas 5, 11 e 19 está errada. Nessas linhas, a vírgula é proibida (ou, no mínimo, desnecessária e geradora de erro), pois elas representam o último elemento de cada lista de definições. A sintaxe correta do CREATE TABLE exige vírgula apenas entre os elementos, nunca após o último.