SQLite Criar Tabela

Resumo : neste tutorial, você aprenderá como criar novas tabelas usando CREATE TABLEa instrução SQLite usando várias opções.

CREATE TABLEIntrodução à instrução SQLite

Para criar uma nova tabela no SQLite, você usa CREATE TABLEuma instrução usando a seguinte sintaxe:

CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
	column_1 data_type PRIMARY KEY,
   	column_2 data_type NOT NULL,
	column_3 data_type DEFAULT 0,
	table_constraints
) [WITHOUT ROWID];Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, especifique o nome da tabela que deseja criar após as CREATE TABLEpalavras-chave. O nome da tabela não pode começar sqlite_porque está reservado para uso interno do SQLite.
  • Segundo, use IF NOT EXISTSa opção para criar uma nova tabela se ela não existir. Tentar criar uma tabela que já existe sem usar a IF NOT EXISTSopção resultará em erro.
  • Terceiro, especifique opcionalmente a schema_nameque a nova tabela pertence. O esquema pode ser o banco de dados principal, tempbanco de dados ou qualquer banco de dados anexado.
  • Quarto, especifique a lista de colunas da tabela. Cada coluna possui um nome, tipo de dados e restrição de coluna. SQLite suporta restrições PRIMARY KEY, UNIQUE, NOT NULLCHECKcolunas.
  • Quinto, especifique as restrições da tabela, como PRIMARY KEY, FOREIGN KEY, UNIQUEe CHECKrestrições.
  • Finalmente, opcionalmente, use a WITHOUT ROWIDopção. Por padrão, uma linha em uma tabela possui uma coluna implícita, chamada de coluna rowidou . A coluna armazena uma chave inteira assinada de 64 bits que identifica exclusivamente a linha dentro da tabela. Se você não quiser que o SQLite crie a coluna, especifique a opção. Uma tabela que contém a coluna é conhecida como tabela. Observe que a opção só está disponível no SQLite 3.8.2 ou posterior.oid_rowid_rowidrowidWITHOUT ROWIDrowidrowidWITHOUT ROWID

Observe que a chave primária de uma tabela é uma coluna ou grupo de colunas que identifica exclusivamente cada linha da tabela.

CREATE TABLEExemplos de SQLite

Suponha que você precise gerenciar contatos usando SQLite.

Cada contato possui as seguintes informações:

  • Primeiro nome
  • Sobrenome
  • E-mail
  • Telefone

O requisito é que o e-mail e o telefone sejam únicos. Além disso, cada contato pertence a um ou mais grupos e cada grupo pode ter zero ou muitos contatos.

Com base nesses requisitos, criamos três tabelas:

  • A contactstabela que armazena informações de contato.
  • A groupstabela que armazena informações do grupo.
  • A contact_groupstabela que armazena o relacionamento entre contatos e grupos.

O diagrama de banco de dados a seguir ilustra tabelas: contacts groupsecontact_groups.

SQLite Criar Tabela

A instrução a seguir cria a contactstabela.

CREATE TABLE contacts (
	contact_id INTEGER PRIMARY KEY,
	first_name TEXT NOT NULL,
	last_name TEXT NOT NULL,
	email TEXT NOT NULL UNIQUE,
	phone TEXT NOT NULL UNIQUE
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

A contact_idé a chave primária da contactstabela.

Como a chave primária consiste em uma coluna, você pode usar a restrição de coluna.

As colunas first_namee last_nametêm TEXTclasse de armazenamento e essas colunas são NOT NULL. Isso significa que você deve fornecer valores ao inserir ou atualizar linhas na contactstabela.

O email e o telefone são únicos, portanto usamos a UNIQUErestrição para cada coluna.

A instrução a seguir cria a groupstabela:

CREATE TABLE groups (
   group_id INTEGER PRIMARY KEY,
   name TEXT NOT NULL
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

A groupstabela é bastante simples com duas colunas: group_ide name. A group_idcoluna é a coluna de chave primária.

A seguinte instrução cria contact_groupstabela:

CREATE TABLE contact_groups(
   contact_id INTEGER,
   group_id INTEGER,
   PRIMARY KEY (contact_id, group_id),
   FOREIGN KEY (contact_id) 
      REFERENCES contacts (contact_id) 
         ON DELETE CASCADE 
         ON UPDATE NO ACTION,
   FOREIGN KEY (group_id) 
      REFERENCES groups (group_id) 
         ON DELETE CASCADE 
         ON UPDATE NO ACTION
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

A contact_groupstabela possui uma chave primária que consiste em duas colunas: contact_ide group_id.

Para adicionar a restrição de chave primária da tabela, use esta sintaxe:

PRIMARY KEY (contact_id, group_id)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Além disso, contact_ide group_idsão as chaves estrangeiras. Portanto, você usa FOREIGN KEYrestrição para definir uma chave estrangeira para cada coluna.

FOREIGN KEY (contact_id) 
   REFERENCES contacts (contact_id) 
      ON DELETE CASCADE 
      ON UPDATE NO ACTIONLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
FOREIGN KEY (group_id) 
    REFERENCES groups (group_id) 
      ON DELETE CASCADE 
      ON UPDATE NO ACTIONLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que discutiremos a FOREIGN KEYrestrição em detalhes no tutorial subsequente.

Neste tutorial, você aprendeu como criar uma nova tabela com várias opções usando a CREATE TABLEinstrução SQLite.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *