Para criar uma tabela no SQLite, use o
CREATE TABLE demonstração. Esta instrução aceita o nome da tabela, os nomes das colunas e suas definições, bem como algumas outras opções.
Exemplo
Aqui está um exemplo básico.
CREATE TABLE Products(
ProductId INTEGER PRIMARY KEY AUTOINCREMENT,
ProductName TEXT NOT NULL,
Price NUMERIC
); Portanto, neste caso,
Products é o nome da tabela e contém três colunas; ProductId , ProductName e Price . Neste exemplo, adicionei o tipo de dados de cada coluna, bem como algumas restrições, mas todas são opcionais.
Especifique o esquema
O nome da tabela pode (opcionalmente) ser prefixado com o nome do esquema. Ao fazer isso, o nome do esquema deve ser
main , temp , ou o nome de um banco de dados anexado. Então eu poderia fazer isso em vez disso:
CREATE TABLE Store.Products(
ProductId,
ProductName,
Price
); Neste caso,
Store é o nome do banco de dados anexado no qual quero criar a tabela. O nome da coluna pode ser seguido pelo tipo de dados e quaisquer restrições.
O tipo de dados é opcional
Sim, você leu certo – o tipo de dados é realmente opcional.
O SQLite usa tipagem dinâmica e, portanto, o tipo de dados de um valor é associado ao próprio valor, não ao contêiner (coluna). Isso contrasta com a maioria dos outros sistemas de banco de dados SQL, nos quais você deve especificar o tipo de dados ao criar a coluna.
Então eu poderia fazer isso em vez disso:
CREATE TABLE Products(
ProductId,
ProductName,
Price
); Restrições e outras opções
Você tem a opção de especificar quaisquer restrições ou outras opções que gostaria de aplicar em cada coluna. Estes incluem o seguinte:
DEFAULTcláusula. Isso especifica um valor ou expressão padrão para cada coluna na tabela.- O
COLLATEcláusula para especificar o nome de uma sequência de ordenação a ser usada como a sequência de ordenação padrão para a coluna. O valor padrão é BINÁRIO. PRIMARY KEYcláusula. Opcionalmente, você pode especificar que uma coluna é uma chave primária. As chaves primárias de coluna única e composta (várias colunas) são suportadas no SQLite.- O SQLite também suporta restrições UNIQUE, NOT NULL, CHECK e FOREIGN KEY.
- Uma restrição de coluna gerada (também chamada de coluna computada). São colunas cujos valores são uma função de outras colunas na mesma linha.
- Se a tabela é um
WITHOUT ROWIDtabela. Esta é uma técnica de otimização de desempenho que omite a coluna “rowid” que é uma coluna especial que o SQLite usa por padrão. Para obter mais informações sobre essa técnica, consulte a documentação do SQLite.
Tabelas temporárias
Você pode especificar que uma tabela é uma tabela temporária usando o comando
TEMP ou TEMPORARY palavra-chave. Se estiver usando uma dessas palavras-chave, elas devem ser inseridas entre o
CREATE e TABLE . Aqui está um exemplo:
CREATE TEMP TABLE Products(
ProductId,
ProductName,
Price
); Você também pode adicionar o
temp esquema se desejar. Consulte Como criar uma tabela temporária para obter mais exemplos de criação de tabelas temporárias no SQLite.
Criar uma tabela a partir de outra tabela
Você também pode usar um
CREATE TABLE ... AS SELECT instrução para criar uma nova tabela com base em outra tabela. Quando você faz isso, a nova tabela é preenchida com os dados do SELECT instrução (que seleciona dados de outra tabela ou tabelas). Segue um exemplo básico:
CREATE TABLE Store.Products2 AS
SELECT * FROM Store.Products; Este exemplo cria uma nova tabela chamada
Products2 e o preenche com todos os dados dos Products tabela. Todos os nomes de coluna são os mesmos da tabela original.
É importante notar que as tabelas criadas desta forma não possuem PRIMARY KEY e nenhum tipo de restrição. Além disso, o valor padrão de cada coluna é
NULL . Além disso, a sequência de agrupamento padrão para cada coluna da nova tabela é BINARY.