1
resposta

o código não deveria dar erro?

INSERT INTO LivrosClássicos (id_livro, titulo_livro, autor, ano_publicacao)
VALUES ('1', 'Moby Dick', 'Herman Melville', '1851');

tendo em vista que o nome da coluna é "ano_publicacao" e o valor apresentado está entre strings, isto não deveria ser um erro?

1 resposta

Olá, Hugo, tudo bem?

No SQL, é comum que valores numéricos sejam inseridos sem aspas, mas, na prática, muitos sistemas de banco de dados, incluindo o SQLite, são flexíveis quanto a isso. Eles permitem que você insira números como strings, principalmente se o tipo de dado da coluna for texto ou se o sistema for capaz de converter automaticamente a string em um número.

No caso do SQLite, ele é bastante permissivo e faz a conversão automática quando necessário, por isso o código que você postou não gera erro e insere os dados com sucesso na tabela "LivrosClássicos". Abaixo deixo o exemplo desse insert:

Interface de banco de dados SQLiteOnline com um código SQL e seu resultado. No código, é criada uma tabela chamada "LivrosClássicos" com as colunas "id_livro" (inteiro e chave primária), "titulo_livro" (texto obrigatório), "autor" (texto obrigatório) e "ano_publicacao" (inteiro obrigatório). Em seguida, um registro é inserido na tabela com os valores: id_livro = 1, titulo_livro = "Moby Dick", autor = "Herman Melville" e ano_publicacao = 1851. Por fim, uma consulta exibe todos os registros da tabela. Na seção de resultados, aparece uma linha com os dados inseridos, mostrando o livro "Moby Dick" de "Herman Melville" publicado em 1851 com id 1.

Espero ter esclarecido.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado