SQLite - restrições

Restrições são as regras aplicadas em colunas de dados na tabela. Eles são usados ​​para limitar o tipo de dados que podem entrar em uma tabela. Isso garante a precisão e confiabilidade dos dados no banco de dados.

As restrições podem ser no nível da coluna ou no nível da tabela. As restrições de nível de coluna são aplicadas apenas a uma coluna, enquanto as restrições de nível de tabela são aplicadas a toda a tabela.

A seguir estão as restrições comumente usadas disponíveis no SQLite.

  • NOT NULL Constraint - Garante que uma coluna não possa ter valor NULL.

  • DEFAULT Constraint - Fornece um valor padrão para uma coluna quando nenhum é especificado.

  • UNIQUE Constraint - Garante que todos os valores em uma coluna sejam diferentes.

  • PRIMARY Key - Identifica exclusivamente cada linha / registro em uma tabela de banco de dados.

  • CHECK Constraint - Garante que todos os valores em uma coluna satisfaçam certas condições.

Restrição NOT NULL

Por padrão, uma coluna pode conter valores NULL. Se você não deseja que uma coluna tenha um valor NULL, então você precisa definir tal restrição nesta coluna especificando que NULL agora não é permitido para aquela coluna.

Um NULL não é o mesmo que nenhum dado; em vez disso, representa dados desconhecidos.

Exemplo

Por exemplo, a seguinte instrução SQLite cria uma nova tabela chamada COMPANY e adiciona cinco colunas, três das quais, ID e NAME e AGE, especifica para não aceitar NULLs.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Restrição DEFAULT

A restrição DEFAULT fornece um valor padrão para uma coluna quando a instrução INSERT INTO não fornece um valor específico.

Exemplo

Por exemplo, a seguinte instrução SQLite cria uma nova tabela chamada COMPANY e adiciona cinco colunas. Aqui, a coluna SALARY é definida como 5000,00 por padrão, portanto, caso a instrução INSERT INTO não forneça um valor para esta coluna, então, por padrão, esta coluna será definida como 5000,00.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Restrição única

A restrição UNIQUE impede que dois registros tenham valores idênticos em uma coluna específica. Na tabela COMPANY, por exemplo, você pode querer evitar que duas ou mais pessoas tenham a mesma idade.

Exemplo

Por exemplo, a seguinte instrução SQLite cria uma nova tabela chamada COMPANY e adiciona cinco colunas. Aqui, a coluna AGE é definida como UNIQUE, de modo que você não pode ter dois registros com a mesma idade -

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Restrição PRIMARY KEY

A restrição PRIMARY KEY identifica exclusivamente cada registro em uma tabela de banco de dados. Pode haver mais colunas UNIQUE, mas apenas uma chave primária em uma tabela. As chaves primárias são importantes ao projetar as tabelas do banco de dados. As chaves primárias são IDs exclusivos.

Nós os usamos para se referir às linhas da tabela. As chaves primárias tornam-se chaves estrangeiras em outras tabelas, ao criar relações entre as tabelas. Devido a uma 'supervisão de codificação de longa data', as chaves primárias podem ser NULL no SQLite. Este não é o caso de outros bancos de dados.

Uma chave primária é um campo em uma tabela que identifica exclusivamente cada linha / registro em uma tabela de banco de dados. As chaves primárias devem conter valores exclusivos. Uma coluna de chave primária não pode ter valores NULL.

Uma tabela pode ter apenas uma chave primária, que pode consistir em um ou vários campos. Quando vários campos são usados ​​como uma chave primária, eles são chamados decomposite key.

Se uma tabela possui uma chave primária definida em qualquer campo (s), então você não pode ter dois registros com o mesmo valor desse campo (s).

Exemplo

Você já viu vários exemplos acima, onde criamos a tabela COMPANY com ID como chave primária.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Restrição CHECK

A restrição CHECK permite que uma condição verifique o valor que está sendo inserido em um registro. Se a condição for avaliada como falsa, o registro viola a restrição e não é inserido na tabela.

Exemplo

Por exemplo, o seguinte SQLite cria uma nova tabela chamada COMPANY e adiciona cinco colunas. Aqui, adicionamos um CHEQUE com a coluna SALÁRIO, de forma que você não pode ter nenhum SALÁRIO Zero.

CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

Dropping Constraint

SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or add a new column to an existing table. It is not possible to rename a column, remove a column, or add or remove constraints from a table.