NA AULA 3, tópico 4 "mão na massa, inserindo outros clientes da hermex".
A tabela produtos, o ID produtos foi adiconado como int e não como text ou varchar.
Então porque nesse caso preciso inserir entre aspas?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
NA AULA 3, tópico 4 "mão na massa, inserindo outros clientes da hermex".
A tabela produtos, o ID produtos foi adiconado como int e não como text ou varchar.
Então porque nesse caso preciso inserir entre aspas?
Olá, Antônio! Tudo bem?
Sua dúvida sobre a aula 3, tópico 4 "mão na massa, inserindo outros clientes da Hermex" é muito pertinente e ajuda a entender melhor como o banco de dados lida com tipos de dados.
Na tabela de produtos, o campo ID_Produto foi adicionado como INT e, sua inserção ocorre sem aspas. Na atividade contém o script de inserção da tabelaprodutos, onde o ID_Produto aparece sem aspas, enquanto os campos de texto e data aparecem com aspas simples:
INSERT INTO tabelaprodutos (
ID_Produto,
Nome_do_Produto,
Descricao,
Categoria,
Preco_de_Compra,
Unidade,
Fornecedor,
Data_de_Inclusao)
VALUES
(1, 'Smartphone X', 'Smartphone de última geração', 1, 699.99, 'Unidade', 1, '2023-08-01'),
(2, 'Notebook Pro', 'Notebook poderoso com tela HD', 2, 1199.99, 'Unidade', 2, '2023-08-02'),
(3, 'Tablet Lite', 'Tablet compacto e leve', 3, 299.99, 'Unidade', 3, '2023-08-03');
Agora, caso tenha ocorrido uma confusão, note que no caso da tabelacliente, o id_cliente também foi criado como INT, mas foi inserido entre aspas simples porque, naquele contexto específico, o ID funciona como um código de identificação e não como um valor numérico destinado a cálculos. O SQLite é bastante flexível e consegue realizar essa conversão automaticamente, sem gerar erros.
Vale lembrar que a instrutora comenta sobre esse comportamento a partir do minuto 4:00 da aula Inserindo uma linha - INSERT.
Após entender essa diferença, ficou mais claro para você quando usar ou não as aspas na inserção de dados?
Então quando é um codigo numérico de identificação, usando o PRIMARI KEY, mesmo não sendo texto e usando o tipo de dado int, preciso inserir com aspas simples, sendo quase uma "obrigatoriedade"?
Oi Antônio!
Não é uma "obrigatoriedade" inserir um código numérico de identificação com aspas simples, mesmo que ele seja PRIMARY KEY e do tipo INT. O SQLite é bastante flexível e, se a coluna for do tipo INT, ele geralmente aceitará o valor numérico sem aspas (ex: 1) e também o valor numérico entre aspas simples (ex: '1'), convertendo-o para inteiro automaticamente.
A instrutora optou por usar aspas simples para o id_cliente para enfatizar que, embora seja um número, ele funciona como um código de identificação e não como um valor numérico para cálculos. É uma forma de deixar claro o propósito do dado.
INT: você pode inserir 1 (sem aspas) ou '1' (com aspas). O SQLite tentará converter '1' para o número 1.TEXT ou VARCHAR). Nesses casos, você precisa usar aspas simples para indicar que está inserindo uma string.Portanto, para um PRIMARY KEY do tipo INT, você tem a flexibilidade. A escolha de usar aspas simples na aula foi mais uma questão de clareza semântica (para indicar que é um código) do que uma exigência técnica do SQLite para o tipo INT.
Destaco que, a depender do Sistema Gerenciador de Banco de Dados (SGBD), essa conversão automática de uma string numérica para um tipo inteiro pode não acontecer ou se comportar de maneira diferente.
O importante é entender o comportamento do tipo de dado e como o SQLite lida com as conversões. Para um INT, ambos os formatos geralmente funcionam, mas o uso de aspas para IDs que são códigos pode ser uma convenção para alguns desenvolvedores.
Espero ter esclarecido!