Rumah >pangkalan data >tutorial mysql >Apakah jenis kekangan pangkalan data MySQL?

Apakah jenis kekangan pangkalan data MySQL?

WBOY
WBOYke hadapan
2023-05-28 23:02:001041semak imbas

Kekangan dalam pangkalan data , seperti namanya, menyekat data yang dimasukkan ke dalam pangkalan data Tujuannya adalah untuk memastikan kesahihan dan integriti data. Ini sangat meningkatkan kualiti data dalam pangkalan data, menjimatkan ruang pangkalan data dan masa untuk memanggil data.

Apakah jenis kekangan pangkalan data MySQL?

NOT NULL constraint ialah kekangan peringkat lajur yang menyatakan bahawa lajur tidak dibenarkan menjadi batal. Ia hanya boleh ditakrifkan menggunakan sintaks kekangan peringkat lajur.

Nilai nol dalam SQL tidak sensitif huruf besar dan mempunyai ciri berikut: nilai semua jenis data boleh menjadi batal, termasuk int, float, boolean, dsb. Rentetan kosong tidak sama dengan null, dan 0 tidak sama dengan null. Jika anda ingin menetapkan kekangan bukan nol untuk lajur yang ditentukan, tambahkan "bukan nol" selepas definisi lajur. Contohnya, semasa mencipta jadual:

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

Tambah atau padamkan kekangan bukan nol apabila menggunakan jadual ubah untuk mengubah suai jadual, contohnya:

#增加非空约束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.UNIK: kekangan unik , tentukan lajur atau Beberapa kombinasi lajur tidak boleh diulang.

Dalam pangkalan data, walaupun nilai pendua tidak dibenarkan dalam lajur kekangan unik, berbilang nilai nol boleh muncul kerana null tidak sama dengan null. Berbilang kekangan unik boleh dibuat dalam jadual yang sama, dan kekangan unik juga boleh terdiri daripada berbilang lajur. Apabila kekangan unik dicipta untuk lajur, MySQL akan mencipta indeks unik untuk lajur Jika kekangan unik tidak dinamakan, kekangan unik akan lalai kepada nama lajur. Kekangan unik boleh diwujudkan menggunakan sintaks peringkat lajur atau sintaks peringkat jadual. Hanya melalui sintaks peringkat jadual anda boleh menetapkan kekangan gabungan atau menentukan nama kekangan untuk berbilang lajur.

Gunakan sintaks peringkat lajur untuk mencipta kekangan unik Hanya tambah kata kunci unik selepas takrifan lajur:

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

Sintaks peringkat jadual untuk mencipta kekangan unik: [nama kekangan kekangan] unik. ( Nama lajur [, nama lajur,...]), format sintaks kekangan peringkat jadual di atas boleh diletakkan dalam penyata jadual cipta bersama definisi lajur, atau boleh ditambah dalam penyataan jadual ubah menggunakan kata kunci tambah:

#创建表时,使用表级语法创建唯一约束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;

Padamkan kekangan unik dalam MySQL:

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

3. KUNCI UTAMA: Kekangan kunci utama, dengan menyatakan nilai lajur ini boleh mengenal pasti rekod secara unik.

"kunci asing" ialah kekangan yang menyatakan bahawa barisan rekod dikaitkan dengan rekod dalam jadual utama Tujuan utama adalah untuk memastikan integriti rujukan.

5.CHECK (tidak disokong oleh MySQL): Semak kekangan, nyatakan ungkapan Boolean, digunakan untuk menentukan bahawa nilai lajur yang sepadan mesti memenuhi ungkapan.

Atas ialah kandungan terperinci Apakah jenis kekangan pangkalan data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam