Condivisione della tecnologia

Vincoli SQL

2024-07-12

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

Vincoli SQL

1. Descrizione

Concetto: i vincoli sono regole che agiscono sui campi di una tabella per limitare i dati archiviati nella tabella.

Scopo: garantire l'accuratezza, la validità e l'integrità dei dati nel database.

vincolodescrivereParole chiave
vincolo non nulloLimita questo campo a non essere vuotonon nullo
vincolo unicoAssicurati che tutti i dati in questo campo siano univoci e non duplicatiunico
vincoli di chiave primariaLa chiave primaria è l'identificatore univoco di una riga di dati e deve essere non vuota e univoca.chiave primaria
Vincoli predefinitiQuando si salvano i dati, se il valore del campo non è specificato, viene utilizzato il valore predefinitopredefinito
Verifica vincoli (dopo 8.0.16)Assicurarsi che il campo soddisfi una determinata condizionecontrollo
vincoli di chiave esternaUtilizzato per stabilire una connessione tra i dati di due tabellechiave esterna

2. Utilizzo

Incremento automatico: incremento_auto

Il mio SQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

Server 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

Aggiunta di vincoli

-- 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

Il ruolo delle chiavi esterne
Per garantire l'integrità dei dati, il campo della chiave esterna è chiamato tabella figlia e la tabella associata è chiamata tabella padre.
Elimina e aggiorna il comportamento

  • nessuna azione (impostazione predefinita): quando si elimina/aggiorna il record corrispondente nella tabella padre, se il record ha una chiave esterna,Non può essere aggiornato/eliminato.
  • a cascata: quando si elimina/aggiorna il record corrispondente nella tabella padre, se il record ha una chiave esterna,Quindi elimina/aggiorna i record nella sottotabella.
  • set null: quando si elimina/aggiorna il record corrispondente nella tabella padre, se il record ha una chiave esterna,Quindi imposta il valore della chiave esterna nella sottotabella su null.
  • set default: quando la tabella padre viene modificata, la colonna di chiave esterna creata nella tabella figlio viene impostata su un valore predefinito (non supportato da InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2