אילוצי SQL הם מרכיבים חיוניים ב עיצוב מסד נתונים יחסי שמבטיחים את שְׁלֵמוּת דִיוּק ו אֲמִינוּת של הנתונים המאוחסנים במסד נתונים. על ידי אכיפת כללים ספציפיים על עמודות טבלה, אילוצי SQL עוזרים לשמור על עקביות נתונים, מניעת הזנת נתונים לא חוקיים ואופטימיזציה של ביצועי השאילתות.
במאמר זה נסביר בפירוט את אילוצי SQL הנפוצים ביותר תוך מתן דוגמאות ברורות ונסביר כיצד ליישם אותם ביעילות.
מהם אילוצי SQL?
אילוצי SQL חלים עליהם כללים עמודות אוֹ שולחנות ב מסד נתונים יחסי כדי להגביל את סוג הנתונים שיכולים להיות מוּכנָס מְעוּדכָּן אוֹ נמחק . כללים אלה מבטיחים שהנתונים תקפים עקביים ודבקים בהיגיון העסקי או דרישות מסד הנתונים . ניתן לאכוף אילוצים במהלך יצירת טבלה או מאוחר יותר באמצעות ALTER TABLE הַצהָרָה. הם ממלאים תפקיד חיוני בשמירה על האיכות והשלמות של מסד הנתונים שלך.
סוגי אילוצי SQL
SQL מספק מספר סוגים של אילוצים לניהול היבטים שונים של שלמות הנתונים. אילוצים אלה חיוניים כדי להבטיח שהנתונים עומדים בדרישות של דִיוּק עֲקֵבִיוּת ו תוֹקֶף . בואו נעבור על כל אחד מהם עם הסברים ודוגמאות מפורטים.
1. אילוץ לא NULL
ה לא NULL אילוץ מבטיח שעמודה לא יכולה להכיל ערכי NULL. זה חשוב במיוחד עבור עמודות שבהן ערך חיוני לזיהוי רשומות או ביצוע חישובים. אם עמודה מוגדרת כ לא NULL כל שורה חייבת לכלול ערך עבור אותה עמודה.
דוּגמָה:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
הֶסבֵּר: בדוגמה לעיל הן הIDוNAMEעמודות מוגדרות עם לא NULL אילוץ משמעות שכל תלמיד חייב להיותIDוNAMEעֵרֶך.
2. אילוץ ייחודי
ה ייחודי אילוץ מבטיח שכל הערכים בעמודה נבדלים בכל השורות בטבלה. בניגוד ל מפתח ראשי מה שדורש ייחודיות ואינו מאפשר NULLs האילוץ UNIQUE מאפשר ערכי NULL אך עדיין אוכף ייחוד עבור ערכים שאינם NULL.
דוּגמָה:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
הֶסבֵּר : כאן הIDהעמודה חייבת להיות בעלת ערכים ייחודיים המבטיחים ששני תלמידים לא יוכלו לחלוק אותו דברID. אנחנו יכולים לקבל יותר מאחד ייחודי אילוץ בטבלה.
3. אילוץ מפתח ראשי
א מפתח ראשי אילוץ הוא שילוב של לא NULL ו ייחודי אילוצים. זה מזהה באופן ייחודי כל שורה בטבלה. לשולחן יכול להיות רק אחד מפתח ראשי והוא לא יכול לקבל ערכי NULL. זה משמש בדרך כלל עבור העמודה שתשמש כמזהה של רשומות.
דוּגמָה:
מיתר יצוק כ-int
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
הֶסבֵּר: במקרה זה הIDהעמודה מוגדרת כמפתח הראשי ומבטיחה שהזיהוי של כל תלמיד הוא ייחודי ואינו יכול להיות NULL.
4. אילוץ מפתח זר
א מפתח זר אילוץ מקשר עמודה בטבלה אחת ל- מפתח ראשי בטבלה אחרת. מערכת יחסים זו עוזרת לשמור שלמות התייחסותית על ידי הבטחת הערך ב- מפתח זר העמודה תואמת לרשומה חוקית בטבלה שהפנייה אליה.
טבלת הזמנות:
| O_ID | ORDER_NO | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
טבלת לקוחות:
| C_ID | שֵׁם | כְּתוֹבֶת |
|---|---|---|
| 1 | ראמש | דלהי |
| 2 | בטוח | NOIDA |
| 3 | דהרמש | GURGAON |
כפי שאנו יכולים לראות בבירור כי השדה C_ID ב טבלת הזמנות הוא ה מפתח ראשי בטבלת לקוחות, כלומר מזהה באופן ייחודי כל שורה ב- לקוחות לוּחַ. לכן זהו טבלת מפתח זר בהזמנות.
דוּגמָה:
CREATE TABLE Orders
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)
הֶסבֵּר: בדוגמה זו הC_IDעמודה בOrderstable הוא מפתח זר המפנה אתC_IDעמודה בCustomersלוּחַ. זה מבטיח שניתן להכניס רק מזהי לקוח חוקיים לתוךOrdersלוּחַ.
5. בדוק אילוץ
ה לִבדוֹק אילוץ מאפשר לנו לציין תנאי שהנתונים חייבים לעמוד בו לפני שהם יוכנסו לטבלה. זה יכול לשמש כדי לאכוף כללים כגון הבטחה שערך העמודה עומד בקריטריונים מסוימים (למשל, הגיל חייב להיות גדול מ-18)
דוּגמָה:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
הֶסבֵּר: בטבלה לעיל ה לִבדוֹק אילוץ מבטיח שניתן להכניס לטבלה רק תלמידים בני 18 ומעלה.
6. ברירת מחדל
ה בְּרִירַת מֶחדָל אילוץ מספק ערך ברירת מחדל עבור עמודה כאשר לא צוין ערך במהלך ההוספה. זה שימושי כדי להבטיח שלעמודות מסוימות יש תמיד ערך משמעותי גם אם המשתמש לא מספק כזה
דוּגמָה:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
הֶסבֵּר: כאן אם לא מסופק ערךAGEבמהלך הוספה ערך ברירת המחדל של 18 יוקצה אוטומטית.
כיצד לציין אילוצים ב-SQL
ניתן לציין אילוצים במהלך תהליך יצירת הטבלה באמצעות ה- CREATE TABLE הַצהָרָה. בנוסף, ניתן לשנות או להוסיף אילוצים לטבלאות קיימות באמצעות הALTER TABLEהַצהָרָה.
תחביר ליצירת אילוצים:
CREATE TABLE שם_טבלה
(
column1 data_type [name_constraint]
column2 data_type [name_constraint]
column3 data_type [שם_אילוץ]
...
);
אנו יכולים גם להוסיף או להסיר אילוצים לאחר יצירת טבלה:
דוגמה להוספת אילוץ:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
מַסְקָנָה
אילוצי SQL חיוניים לתחזוקה שלמות הנתונים והבטחת עקביות במאגרי מידע יחסיים. הבנה ויישום של אילוצים אלה ביעילות יסייעו בתכנון מסדי נתונים חזקים ללא שגיאות. על ידי מינוף NOT NULL מפתח ראשי ייחודי בדוק מפתח זר בדוק ברירת מחדל ואינדקס אתה יכול להבטיח שבסיס הנתונים שלך מותאם עבורו דִיוּק ו ביצועים .
צור חידון