Heim >Datenbank >MySQL-Tutorial >Welche Arten von MySQL-Datenbankeinschränkungen gibt es?

Welche Arten von MySQL-Datenbankeinschränkungen gibt es?

WBOY
WBOYnach vorne
2023-05-28 23:02:001041Durchsuche

Einschränkungen in der Datenbank schränken, wie der Name schon sagt, die in die Datenbank eingefügten Daten ein. Der Zweck besteht darin, die Gültigkeit und Integrität der Daten sicherzustellen. Dies verbessert die Qualität der Daten in der Datenbank erheblich, spart Datenbankplatz und Zeit für den Datenabruf.

Welche Arten von MySQL-Datenbankeinschränkungen gibt es?

NOT NULL-Einschränkung ist eine Einschränkung auf Spaltenebene, die angibt, dass eine Spalte nicht null sein darf. Es kann nur mithilfe der Einschränkungssyntax auf Spaltenebene definiert werden.

Der Nullwert in SQL unterscheidet nicht zwischen Groß- und Kleinschreibung und weist die folgenden Merkmale auf: Werte aller Datentypen können Null sein, einschließlich int, float, boolean usw. Die leere Zeichenfolge ist nicht gleich Null und 0 ist nicht gleich Null. Wenn Sie für eine bestimmte Spalte eine Nicht-Null-Einschränkung festlegen möchten, fügen Sie nach der Spaltendefinition einfach „not null“ hinzu. Zum Beispiel beim Erstellen einer Tabelle:

create table t_test
(
   id int not null,
   name varchar(255) default 'xyz' not null,
   gender varchar(2) null
);

Wenn Sie alter table verwenden, um die Tabelle zu ändern, fügen Sie Nicht-Null-Einschränkungen hinzu oder löschen Sie sie, zum Beispiel:

#增加非空约束alter table t_test modify gender varchar(2) not null;#取消非空约束alter table t_test modify gender varchar(2) null;#取消非空约束,并指定默认值alter table t_test modify name varchar(255) default 'abc' null;

2.UNIQUE: Eindeutige Einschränkung, die angibt, dass eine bestimmte Spalte oder eine Kombination davon ist Spalten können nicht wiederholt werden.

In der Datenbank können mehrere Nullwerte angezeigt werden, obwohl die Spalte mit der eindeutigen Einschränkung keine doppelten Werte zulässt, da null nicht gleich null ist. In derselben Tabelle können mehrere eindeutige Einschränkungen erstellt werden, und eindeutige Einschränkungen können auch aus mehreren Spalten bestehen. Wenn eine eindeutige Einschränkung für eine Spalte erstellt wird, erstellt MySQL einen eindeutigen Index für die Spalte. Wenn die eindeutige Einschränkung nicht benannt ist, wird standardmäßig der Spaltenname als eindeutige Einschränkung verwendet. Eindeutige Einschränkungen können mithilfe der Syntax auf Spaltenebene oder der Syntax auf Tabellenebene festgelegt werden. Nur über die Syntax auf Tabellenebene können Sie kombinierte Einschränkungen festlegen oder Einschränkungsnamen für mehrere Spalten angeben.

Verwenden Sie die Syntax auf Spaltenebene, um eindeutige Einschränkungen zu erstellen. Fügen Sie einfach das Schlüsselwort „unique“ nach der Spaltendefinition hinzu:

#创建表时建立唯一约束,使用列级语法建立create table unique_test
(
   #建立非空约束,意味着id不能为null   id int not null,
   #建立唯一约束,意味着多行数据的该列值不能相等   name varchar(255) unique
);

Format der Syntax auf Tabellenebene, um eindeutige Einschränkungen zu erstellen: [Name der Einschränkungseinschränkung] eindeutig (Spaltenname[, Spaltenname, &hellip ;]) kann das obige Syntaxformat für Einschränkungen auf Tabellenebene parallel zur Spaltendefinition in die Anweisung „create table“ eingefügt werden oder mit dem Schlüsselwort „add“ in die Anweisung „alter table“ eingefügt werden:

#创建表时,使用表级语法创建唯一约束create table uniques_test2
(
   #为id建立非空约束,意味着id不能为null   id int not null,
   name varchar(255),
   pass varchar(255),
   #使用表级语法为name建立唯一约束   unique (name),
   #使用表级语法为pass建立唯一约束,并指定约束名为test2_uk   constraint test2_uk unique (pass)
);#创建表时,使用表级语法建立组合列的唯一约束create table unique_test3
(
   id int not null,
   name varchar(255),
   pass varchar(255),
   #指定name和pass两列组合不能重复   constraint test3_uk unique (name, pass)
);#在修改表时,使用add关键字来增加唯一约束alter table unique_test3 add unique (id, name);#在修改表时,使用modify关键字,来为单列设置唯一约束alter table unique_test3 modify name varchar(100) unique;

Löschen Sie eine eindeutige Einschränkung in MySQL:

alter table tableName drop index 约束名;
   例句:#删除unique_test3表中的test3_uk唯一约束alter table unique_test3 drop index test3_uk;

3.PRIMARY KEY: Primärschlüsseleinschränkung, die den Wert dieser Spalte angibt, um den Datensatz eindeutig zu identifizieren.

Ein „Fremdschlüssel“ ist eine Einschränkung, die angibt, dass der Zeilendatensatz einem Datensatz in der Haupttabelle zugeordnet ist. Der Hauptzweck besteht darin, die referenzielle Integrität sicherzustellen.

5.CHECK (von MySQL nicht unterstützt): Überprüfen Sie die Einschränkungen, geben Sie einen booleschen Ausdruck an, der verwendet wird, um anzugeben, dass der Wert der entsprechenden Spalte den Ausdruck erfüllen muss.

Das obige ist der detaillierte Inhalt vonWelche Arten von MySQL-Datenbankeinschränkungen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen