Resumo :neste tutorial, você aprenderá como criar novas tabelas usando SQLite
CREATE TABLE declaração usando várias opções. Introdução ao SQLite CREATE TABLE declaração
Para criar uma nova tabela no SQLite, você usa
CREATE TABLE declaraçã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];Code language: SQL (Structured Query Language) (sql) Nesta sintaxe:
- Primeiro, especifique o nome da tabela que você deseja criar após o
CREATE TABLEpalavras-chave. O nome da tabela não pode começar comsqlite_porque é reservado para uso interno do SQLite. - Segundo, use
IF NOT EXISTSopção para criar uma nova tabela se ela não existir. Tentando criar uma tabela que já existe sem usar oIF NOT EXISTSopção resultará em um erro. - Terceiro, especifique opcionalmente o
schema_nameà qual 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 tem um nome, tipo de dados e a restrição de coluna. SQLite suporta
PRIMARY KEY,UNIQUE,NOT NULLeCHECKrestrições de coluna. - Quinto, especifique as restrições da tabela, como
PRIMARY KEY,FOREIGN KEY,UNIQUEeCHECKrestrições. - Finalmente, opcionalmente, use o
WITHOUT ROWIDopção. Por padrão, uma linha em uma tabela tem uma coluna implícita, que é chamada derowid,oidou_rowid_coluna. OrowidA coluna armazena uma chave inteira assinada de 64 bits que identifica exclusivamente a linha dentro da tabela. Se você não quiser, o SQLite cria orowidcoluna, você especifica oWITHOUT ROWIDopção. Uma tabela que contém orowidcoluna é conhecida comorowidtabela. Observe que oWITHOUT ROWIDA opção está disponível apenas no SQLite 3.8.2 ou posterior.
Observe que a chave primária de uma tabela é uma coluna ou um grupo de colunas que identificam exclusivamente cada linha da tabela.
SQLite CREATE TABLE exemplos
Suponha que você tenha que gerenciar contatos usando SQLite.
Cada contato tem as seguintes informações:
- Nome
- Sobrenome
- Telefone
O requisito é que o e-mail e o telefone sejam exclusivos. Além disso, cada contato pertence a um ou vários grupos e cada grupo pode ter zero ou muitos contatos.
Com base nesses requisitos, criamos três tabelas:
- Os
contactstabela que armazena informações de contato. - Os
groupstabela que armazena informações do grupo. - Os
contact_groupstabela que armazena a relação entre contatos e grupos.
O diagrama de banco de dados a seguir ilustra as tabelas:
contacts groups e contact_groups.
A instrução a seguir cria os
contacts tabela. 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
);Code language: SQL (Structured Query Language) (sql) Tente
O
contact_id é a chave primária dos contacts tabela. Como a chave primária consiste em uma coluna, você pode usar a restrição de coluna.
O
first_name e last_name as colunas têm TEXT classe de armazenamento e essas colunas são NOT NULL . Isso significa que você deve fornecer valores ao inserir ou atualizar linhas nos contacts tabela. O email e telefone são únicos, portanto, usamos o
UNIQUE restrição para cada coluna. A instrução a seguir cria os
groups tabela:CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql) Tente
Os
groups table é bem simples com duas colunas:group_id e name . O group_id coluna é a coluna de chave primária. A instrução a seguir cria
contact_groups tabela: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
);Code language: SQL (Structured Query Language) (sql) Tente
Os
contact_groups tabela tem uma chave primária que consiste em duas colunas:contact_id e group_id . Para adicionar a restrição de chave primária da tabela, você usa esta sintaxe:
PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql) Além disso, o
contact_id e group_id são as chaves estrangeiras. Portanto, você usa FOREIGN KEY restrição para definir uma chave estrangeira para cada coluna. FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql) FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql) Observe que discutiremos no
FOREIGN KEY restrição em detalhes no tutorial subsequente. Neste tutorial, você aprendeu como criar uma nova tabela com várias opções usando SQLite
CREATE TABLE demonstração.