Technologieaustausch

SQL-Einschränkungen

2024-07-12

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

SQL-Einschränkungen

1. Beschreibung

Konzept: Einschränkungen sind Regeln, die auf Felder in einer Tabelle einwirken, um die in der Tabelle gespeicherten Daten zu begrenzen.

Zweck: Gewährleistung der Genauigkeit, Gültigkeit und Integrität der Daten in der Datenbank.

ZwangbeschreibenSchlüsselwörter
Nicht-Null-EinschränkungBeschränken Sie, dass dieses Feld nicht leer istnicht null
einzigartige BeschränkungStellen Sie sicher, dass alle Daten in diesem Feld eindeutig und nicht dupliziert sindeinzigartig
PrimärschlüsseleinschränkungenDer Primärschlüssel ist die eindeutige Kennung einer Datenzeile und darf nicht leer und eindeutig sein.Primärschlüssel
StandardeinschränkungenWenn beim Speichern von Daten kein Feldwert angegeben wird, wird der Standardwert verwendetStandard
Einschränkungen prüfen (nach 8.0.16)Stellen Sie sicher, dass das Feld eine bestimmte Bedingung erfülltüberprüfen
FremdschlüsseleinschränkungenWird verwendet, um eine Verbindung zwischen Daten aus zwei Tabellen herzustellenUnbekannter Schlüssel

2. Nutzung

Automatisches Inkrementieren: auto_inkrementieren

MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

SQL Server

-- 删除依赖于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

Einschränkungen hinzufügen

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

Die Rolle von Fremdschlüsseln
Um die Integrität der Daten sicherzustellen, wird das Fremdschlüsselfeld als untergeordnete Tabelle und die zugehörige Tabelle als übergeordnete Tabelle bezeichnet.
Verhalten löschen und aktualisieren

  • keine Aktion (Standard): Wenn der entsprechende Datensatz in der übergeordneten Tabelle gelöscht/aktualisiert wird und der Datensatz einen Fremdschlüssel hat,Es kann nicht aktualisiert/gelöscht werden.
  • Kaskade: Wenn der entsprechende Datensatz in der übergeordneten Tabelle gelöscht/aktualisiert wird und der Datensatz einen Fremdschlüssel hat,Anschließend Datensätze in der Untertabelle löschen/aktualisieren.
  • set null: Wenn der entsprechende Datensatz in der übergeordneten Tabelle gelöscht/aktualisiert wird und der Datensatz einen Fremdschlüssel hat,Setzen Sie dann den Fremdschlüsselwert in der Untertabelle auf Null.
  • Standard festlegen: Wenn die übergeordnete Tabelle geändert wird, wird die in der untergeordneten Tabelle erstellte Fremdschlüsselspalte auf einen Standardwert gesetzt (von InnoDB nicht unterstützt).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2