Berbagi teknologi

Batasan SQL

2024-07-12

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

Batasan SQL

1. Deskripsi

Konsep: Batasan adalah aturan yang bertindak pada bidang dalam tabel untuk membatasi data yang disimpan dalam tabel.

Tujuan: Untuk memastikan keakuratan, validitas dan integritas data dalam database.

paksaanmenggambarkanKata kunci
batasan bukan nolBatasi bidang ini agar tidak kosongtidak nol
kendala unikPastikan semua data di bidang ini unik dan tidak duplikatunik
batasan kunci utamaKunci utama adalah pengidentifikasi unik dari deretan data dan harus tidak kosong serta unik.kunci utama
Batasan bawaanSaat menyimpan data, jika nilai bidang tidak ditentukan, nilai default akan digunakanbawaan
Periksa batasan (setelah 8.0.16)Pastikan lapangan memenuhi kondisi tertentumemeriksa
batasan kunci asingDigunakan untuk membuat koneksi antara data dari dua tabelkunci asing

2. Penggunaan

Kenaikan otomatis: kenaikan_otomatis

Bahasa Indonesia: MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

Bahasa Indonesia: 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

Menambahkan batasan

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

Peran kunci asing
Untuk menjamin integritas data, field kunci asing disebut tabel anak, dan tabel terkait disebut tabel induk.
Hapus dan perbarui perilaku

  • tidak ada tindakan (default): Saat menghapus/memperbarui catatan terkait di tabel induk, jika catatan memiliki kunci asing,Itu tidak dapat diperbarui/dihapus.
  • cascade: Saat menghapus/memperbarui record terkait di tabel induk, jika record memiliki kunci asing,Kemudian hapus/perbarui record di subtabel.
  • set null: Saat menghapus/memperbarui catatan terkait di tabel induk, jika catatan memiliki kunci asing,Kemudian atur nilai kunci asing pada subtabel menjadi null.
  • set default: Ketika tabel induk diubah, kolom kunci asing yang dibuat di tabel anak disetel ke nilai default (tidak didukung oleh InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2