SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Criar uma tabela no SQLite


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:
  • DEFAULT cláusula. Isso especifica um valor ou expressão padrão para cada coluna na tabela.
  • O COLLATE clá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 KEY clá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 ROWID tabela. 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.