PostgreSQL Restrições: Tipos com Exemplo

O que é Restrição?

Os tipos de dados são usados ​​para limitar o tipo de informação que pode ser armazenada em uma tabela. Mas há dois problemas com essa abordagem.

  • 1 Issue: As restrições impostas por tipos de dados não são adequadas para determinadas aplicações. Por exemplo, uma coluna contendo um preço de item só deve aceitar valores positivos. No entanto, não existe um tipo de dados específico que aceite apenas o número positivo.
  • Edição 2: você pode querer limitar as informações nos dados de uma linha/coluna em relação a outras colunas ou linhas. Por exemplo, uma tabela contendo informações de Item deve ter apenas uma linha para cada restrição de coluna exclusiva.

Para superar esses problemas e definir essas regras, você pode usar restriçãoem PostgreSQL. Em termos simples, restrições são regras que seus dados devem seguir. Adicionar restrições de tabela permite que o sistema de banco de dados imponha a integridade dos dados.

Portanto, se um usuário estiver tentando armazenar dados em uma coluna que viola uma restrição definida, uma mensagem de erro deverá ser exibida.

Tipo de PostgreSQL restrições

Vamos dar uma olhada em vários tipos de PostgreSQL restrição que você pode criar para garantir a exatidão dos dados:

  • Único
  • Não nulo
  • Verifique restrição
  • Chave primária
  • chave estrangeira
  • Restrição de execução

1) PostgreSQL Restrição única

As restrições exclusivas ajudam a garantir que os dados contidos em uma coluna ou em um grupo de restrições de coluna sejam exclusivos.

Exemplo

CREATE TABLE Item(
Item_no integer UNIQUE,
Name text,
);

2) NÃO restrições nulas

Uma restrição não nula define que uma coluna nunca deve ser um valor nulo. Este tipo de restrição é muito semelhante à criação de uma restrição de verificação. No entanto, PostgreSQL cria uma restrição não nula, que é mais eficiente. O problema com este método é que você não pode dar nomes explícitos a restrições não nulas.

A restrição not null não é padrão PostgreSQL padrão e não deve ser usado em aplicações portáteis. Foi adicionado posteriormente em PostgreSQL para torná-lo compatível com algum outro Sistemas SGBD. Muitos o utilizam porque facilita a alternância da restrição em um arquivo de script.

Sintaxe:

CREATE TABLE Item (
product no integer NULL, Item_name text NULL, Itm_price numeric NULL
);

3) PostgreSQL Verificar restrições

Uma restrição de verificação ajuda a especificar que o valor em alguma coluna deve ser uma expressão booleana.

A PostgreSQL A restrição de verificação consiste na palavra-chave CHECK, que é seguida por uma expressão entre parênteses. A restrição de verificação do Postgres deve envolver a coluna que deve ser restrita, caso contrário não faz sentido.

Sintaxe:

CREATE TABLE Item(
Item_id INTEGER PRIMARY KEY,
name VARCHAR(20),
Item_price NUMERIC CHECK(price>0)
);

Exemplo:

CREATE TABLE Emp(
ID	INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l) check(gender gender='M'),
Salary INTEGER NOT NULL,
Dept_Num INTEGER
);
CREATE TABLE ITEM(
Id INTEGER PRIMARY KEY,
name VARCHAR(15),
price numeric CHECK (price > 0)
);

4) Restrições de chave primária

Uma restrição de chave primária permite usar uma coluna ou grupo de colunas como um identificador exclusivo para linhas na tabela. Para definir restrições de chave primária, seus valores declarados devem ser exclusivos e não nulos. Isso permite que duas definições de tabela aceitem os mesmos dados.

Sintaxe:

Create Table Item(
Item_no, integer PRIMARY KEY,
Item_name text,
Item_Price numeric
);

1 exemplo:

CREATE TABLE Employee(
ID INTEGER PRIMARY KEY
Fname VARCHAR(20),
Lname VARCHAR(20),
Gender CHAR(l),
Salary INTEGER NOT NULL, Dept INTEGER, UNIQUE(FNAME, LNAME)
);

2 exemplo:

CREATE TABLE first(
A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl)
);
Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER.
);

3 exemplo:

CREATE TABLE Items (
Item_no integer UNIQUE NOT NULL, name text, price numeric
CREATE TABLE Items (
Items_no no integer PRIMARY KEY, name text, price numeric

5) Restrições de chave estrangeira

Uma restrição de chave estrangeira especifica que os valores em uma coluna ou grupo de colunas devem corresponder aos valores que aparecem em alguma linha de outra tabela. Isso permite estabelecer a integridade referencial entre duas tabelas associadas.

Vamos supor que você tenha uma tabela que armazena pedidos de produtos diferentes. Você deseja garantir que a tabela contenha pedidos de produtos existentes. Então, aqui, você precisa definir uma restrição de chave estrangeira na tabela de pedidos que faz referência à tabela de produtos.

Sintaxe:

CREATE TABLE	(
id INTEGER PRIMARY KEY. name VARCHAR(IO)
>;
CREATE TABLE testable
Id INTEGER PRIMARY KEY
read INTEGER REFERENCES	(id)
);

2 exemplo:

CREATE TABLE Student (
Std_ID INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l),
Steam, VARCHAR(20),
Dept_NUM INTEGER REFERENCES Department
);

6) Restrições de exclusão

Restrições de exclusão ajudam você a garantir que se quaisquer duas linhas forem comparadas entre si nas colunas ou expressões especificadas com operadores especificados, então pelo menos uma dessas comparações de operadores retornará um valor nulo ou falso. Adicionando isso PostgreSQL restrição criará automaticamente um índice do tipo especificado na declaração de restrição.

Exemplo:

Por exemplo, o seguinte PostgreSQL instrução cria uma nova tabela chamada School e adiciona cinco colunas.

CREATE TABLE SCHOOL6(
STDID INT PRIMARY KEY NOT NULL,
STDNAME TEXT NOT NULL,
STDAGE INT NOT NULL,
FEEDBACK CHAR(50),
STANDARD INT NOT NULL,

Por exemplo, o seguinte PostgreSQL A instrução cria uma nova tabela chamada Branch, que adiciona três colunas. A coluna STD_ID é a chave estrangeira e faz referência ao campo ID da tabela SCHOOL6.

CREATE TABLE BRANCH (
BRANCHCODE INT PRIMARY KEY NOT NULL,
BRAMCHNAME CHAR(50) NOT NULL,
STD_ID INT references SCHOOL6(ID)
);