SQLite Criar, alterar, eliminar tabela com exemplos
⚡ Resumo Inteligente
SQLite O gerenciamento de tabelas depende de três comandos de definição de dados: CREATE TABLE para definir uma tabela, ALTER TABLE para renomeá-la ou adicionar e alterar colunas, e DROP TABLE para removê-la completamente do banco de dados.

As seções abaixo mostram como criar tabelas, modificar sua estrutura e excluir tabelas. SQLite3 com exemplos, abrangendo os comandos CREATE TABLE, ALTER TABLE e DROP TABLE.
SQLite Criar tabela
Sintaxe
Abaixo está a sintaxe da instrução CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Para criar uma tabela, você deve usar a consulta “CREATE TABLE” da seguinte forma:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Dentro dos dois colchetes após o nome da tabela, você define as colunas das tabelas, cada coluna deve ter as seguintes propriedades:
- Um nome, o nome da coluna deve ser único entre as colunas da tabela.
- Um tipo de dados – o tipo de dados da coluna.
- Restrições de coluna opcionais, como explicaremos nas seções posteriores deste tutorial.
SQLite CRIAR TABELA SE NÃO EXISTIR
Quando um script é executado mais de uma vez, uma instrução CREATE TABLE simples falha se a tabela já existir e para com um erro. SQLite Isso é resolvido com a cláusula opcional IF NOT EXISTS, que cria a tabela somente quando ela não existe e não faz nada quando ela já existe.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
A instrução acima nunca gera o erro "a tabela já existe", o que a torna segura para manter no início de um script de instalação ou migração.
A mesma ideia funciona ao contrário quando você remove uma tabela. Adicionar `IF EXISTS` ao comando `DROP TABLE` evita um erro quando a tabela já foi excluída.
DROP TABLE IF EXISTS guru99;
Ambas as cláusulas são comuns em scripts automatizados, pois permitem que o mesmo arquivo seja executado repetidamente sem a necessidade de limpeza manual entre as execuções.
Soltar tabela
Para excluir uma tabela, use o comando “DROP TABLE” seguido do nome da tabela, da seguinte forma:
DROP TABLE guru99;
Alterar a tabela
Você pode usar o comando “ALTER TABLE” para renomear uma tabela da seguinte forma:
ALTER TABLE guru99 RENAME TO guru100;
Para verificar se o nome da tabela foi alterado, você pode usar o comando “.tables” para exibir a lista de tabelas. O nome da tabela deverá estar alterado da seguinte forma:
Como você pode ver, o nome da tabela “guru99” foi alterado para “guru100” após o comando “alter table”.
SQLite adicionar colunas - Usando o comando ALTER TABLE
Você também pode usar o comando “ALTER TABLE” para adicionar colunas:
ALTER TABLE guru100 ADD COLUMN Age INT;
Isso alterará a tabela “guru100” e adicionará uma nova coluna chamada Idade a ela.
Se você não viu nenhuma saída, isso significa que a instrução foi bem-sucedida e a coluna foi adicionada. A ausência de saída significa que o cursor ficará posicionado após “sqlite>” sem nenhum texto depois, assim:
No entanto, para verificar se a coluna foi adicionada, podemos usar o comando “.schema guru100”. Isso exibirá a definição da tabela e você deverá ver a nova coluna que acabamos de adicionar:
SQLite ALTER TABLE: Renomear e Excluir uma Coluna
Além de adicionar uma coluna, as versões modernas de SQLite Também é possível renomear uma única coluna e remover uma. A opção de renomear uma coluna está disponível desde SQLite 3.25, e atualiza o nome dentro da definição da tabela, bem como em todos os índices, gatilhos e visualizações que fazem referência à coluna.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Para remover uma coluna, SQLite As versões 3.35 e posteriores suportam uma cláusula DROP COLUMN direta:
ALTER TABLE guru100 DROP COLUMN Age;
Uma coluna não pode ser excluída quando faz parte de uma chave primária, uma restrição de unicidade ou um índice. Em versões mais antigas SQLite Em versões que não possuem o comando DROP COLUMN, a solução clássica é criar uma nova tabela com as colunas desejadas, copiar as linhas para essa nova tabela, excluir a tabela antiga e, por fim, renomear a nova.
Como copiar uma tabela em SQLite Usando CREATE TABLE AS SELECT
Às vezes, você precisa de uma cópia de uma tabela, seja como backup antes de uma alteração arriscada ou como ponto de partida para uma nova tabela. SQLite Isso é feito em uma única etapa com CREATE TABLE AS SELECT, que cria uma nova tabela cujas colunas são provenientes de uma consulta e a preenche com as linhas retornadas por essa consulta.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
A nova tabela “guru100_backup” recebe as mesmas colunas e todas as linhas de “guru100”. Para copiar apenas algumas linhas, adicione uma cláusula WHERE à instrução SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Um ponto importante a lembrar é que o comando CREATE TABLE AS SELECT copia os nomes, tipos e dados das colunas, mas não copia as chaves primárias, outras restrições ou índices. Você precisa adicioná-los à nova tabela manualmente se a cópia precisar seguir as mesmas regras da tabela original.
SQLite Inserir valor em uma tabela
Para inserir valores em uma tabela, usamos a instrução “INSERT INTO” da seguinte forma:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Você pode omitir os nomes das colunas após o nome da tabela e escrevê-los da seguinte forma:
INSERT INTO Tablename VALUES(value1, value2, ….);
Nesse caso, onde você está omitindo os nomes das colunas das tabelas, o número de valores inseridos deve ser exatamente o mesmo número de colunas da tabela. Então cada valor será inserido na coluna de correspondência. Por exemplo, para a seguinte instrução insert:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
O resultado desta declaração será o seguinte:
- O valor 1 será inserido na coluna “id”.
- O valor 'Mike' será inserido na coluna “Nome”, e
- O valor 25 será inserido na coluna “Idade”.
Instrução INSERT… DEFAULT VALUES
Você pode preencher a tabela com os valores padrão das colunas de uma só vez, da seguinte maneira:
INSERT INTO Tablename DEFAULT VALUES;
Se uma coluna não permitir valores nulos nem valores padrão, você receberá um erro informando que a restrição NOT NULL falhou para essa coluna. Veja a seguir:





