Κοινή χρήση τεχνολογίας

Περιορισμοί SQL

2024-07-12

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

Περιορισμοί SQL

1. Περιγραφή

Έννοια: Οι περιορισμοί είναι κανόνες που δρουν σε πεδία ενός πίνακα για να περιορίσουν τα δεδομένα που είναι αποθηκευμένα στον πίνακα.

Σκοπός: Να εξασφαλιστεί η ακρίβεια, η εγκυρότητα και η ακεραιότητα των δεδομένων στη βάση δεδομένων.

περιορισμόςπεριγράφωΛέξεις-κλειδιά
μη μηδενικός περιορισμόςΠεριορίστε αυτό το πεδίο ώστε να μην είναι κενόόχι κενό
μοναδικός περιορισμόςΒεβαιωθείτε ότι όλα τα δεδομένα σε αυτό το πεδίο είναι μοναδικά και μη διπλότυπαμοναδικός
περιορισμοί πρωτεύοντος κλειδιούΤο πρωτεύον κλειδί είναι το μοναδικό αναγνωριστικό μιας σειράς δεδομένων και δεν πρέπει να είναι κενό και μοναδικό.πρωτεύων κλειδί
Προεπιλεγμένοι περιορισμοίΚατά την αποθήκευση δεδομένων, εάν δεν έχει καθοριστεί η τιμή πεδίου, χρησιμοποιείται η προεπιλεγμένη τιμήΠροκαθορισμένο
Έλεγχος περιορισμών (μετά την 8.0.16)Βεβαιωθείτε ότι το πεδίο πληροί μια συγκεκριμένη προϋπόθεσηέλεγχος
περιορισμοί ξένου κλειδιούΧρησιμοποιείται για τη δημιουργία σύνδεσης μεταξύ δεδομένων από δύο πίνακεςξένο κλειδί

2. Χρήση

Auto-increment: auto_increment

MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

SQLServer

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

Προσθήκη περιορισμών

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

Ο ρόλος των ξένων κλειδιών
Για να διασφαλιστεί η ακεραιότητα των δεδομένων, το πεδίο ξένου κλειδιού ονομάζεται θυγατρικός πίνακας και ο σχετικός πίνακας ονομάζεται γονικός πίνακας.
Διαγραφή και ενημέρωση συμπεριφοράς

  • καμία ενέργεια (προεπιλογή): Κατά τη διαγραφή/ενημέρωση της αντίστοιχης εγγραφής στον γονικό πίνακα, εάν η εγγραφή έχει ξένο κλειδί,Δεν είναι δυνατή η ενημέρωση/διαγραφή.
  • cascade: Κατά τη διαγραφή/ενημέρωση της αντίστοιχης εγγραφής στον γονικό πίνακα, εάν η εγγραφή έχει ξένο κλειδί,Στη συνέχεια, διαγράψτε/ενημερώστε τις εγγραφές στον υποπίνακα.
  • set null: Κατά τη διαγραφή/ενημέρωση της αντίστοιχης εγγραφής στον γονικό πίνακα, εάν η εγγραφή έχει ξένο κλειδί,Στη συνέχεια, ορίστε την τιμή του ξένου κλειδιού στον υποπίνακα σε null.
  • ορισμός προεπιλογής: Όταν αλλάζει ο γονικός πίνακας, η στήλη ξένου κλειδιού που δημιουργείται στον θυγατρικό πίνακα ορίζεται σε μια προεπιλεγμένη τιμή (δεν υποστηρίζεται από το InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2