Compartilhamento de tecnologia

Restrições SQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Restrições SQL

1. Descrição

Conceito: Restrições são regras que atuam nos campos de uma tabela para limitar os dados armazenados na tabela.

Objetivo: Garantir a precisão, validade e integridade dos dados do banco de dados.

limitaçãodescreverPalavras-chave
restrição não nulaRestrinja este campo para não ficar vazionão nulo
restrição únicaCertifique-se de que todos os dados neste campo sejam únicos e não duplicadosexclusivo
restrições de chave primáriaA chave primária é o identificador exclusivo de uma linha de dados e deve ser exclusiva e não vazia.chave primária
Restrições padrãoAo salvar dados, se o valor do campo não for especificado, o valor padrão será usadopadrão
Verifique as restrições (após 8.0.16)Certifique-se de que o campo atenda a uma determinada condiçãoverificar
restrições de chave estrangeiraUsado para estabelecer uma conexão entre dados de duas tabelaschave estrangeira

2. Uso

Incremento automático: auto_increment

MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

Servidor SQL

-- 删除依赖于id列的约束
ALTER TABLE my_table DROP CONSTRAINT <constraint_name>;

-- 修改字段为自增
ALTER TABLE my_table ALTER COLUMN id INT IDENTITY(1,1);

-- 重新创建约束(如果有)
ALTER TABLE my_table ADD CONSTRAINT <constraint_name> PRIMARY KEY (id);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Adicionando restrições

-- 1、添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (主键字段名);
-- 例:ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
-- 2、添加外键
alter table 表名 add constraint 外键名 foreign key (外键字段名) references 主表(主字段名);
-- 删除外键
alter table 表名 drop foreign key 外键名;
-- 3、添加唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 (需要约束的字段);
-- 4、添加默认约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT '默认值' FOR 字段名;
-- 5、检查约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK (Age >= 18 检查的条件);
-- 6、非空约束
ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(255) NOT NULL;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

O papel das chaves estrangeiras
Para garantir a integridade dos dados, o campo de chave estrangeira é chamado de tabela filha e a tabela associada é chamada de tabela pai.
Excluir e atualizar comportamento

  • nenhuma ação (padrão): Ao excluir/atualizar o registro correspondente na tabela pai, se o registro tiver uma chave estrangeira,Não pode ser atualizado/excluído.
  • cascata: Ao excluir/atualizar o registro correspondente na tabela pai, se o registro tiver uma chave estrangeira,Em seguida, exclua/atualize os registros na subtabela.
  • set null: Ao excluir/atualizar o registro correspondente na tabela pai, se o registro tiver uma chave estrangeira,Em seguida, defina o valor da chave estrangeira na subtabela como nulo.
  • definir padrão: quando a tabela pai é alterada, a coluna de chave estrangeira criada na tabela filho é definida como um valor padrão (não suportado pelo InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2