logo

SQL | בדוק אילוץ

הCHECKאילוץ ב-SQL אוכף חוקים על ערכי עמודות על ידי הגבלת הנתונים שניתן להכניס או לעדכן. זה מבטיח שערכים עומדים בתנאים שצוינו. אם ערך מפר את התנאי הפעולה נדחית.CHECKניתן להוסיף במהלך יצירת טבלה או שינוי.

תחביר של אילוץ CHECK

ה אילוץ בדוק ניתן להגדיר בעת יצירת טבלה או להוסיף מאוחר יותר באמצעות המשפט ALTER.

1. שימוש ב-CHECK עם CREATE TABLE :

CREATE TABLE table_name (  
column1 datatype
column2 datatype CHECK (condition)
...
);

2. שימוש ב- CHECK עם ALTER TABLE

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

נקודות מפתח לגבי אילוץ הבדיקה:



  • שלמות הדומיין: זה מבטיח שהערכים בעמודה עומדים בתנאים שצוינו ובכך עוזר לשמור על נתונים חוקיים במסד הנתונים.
  • בשימוש עם CREATE או ALTER: ניתן להגדיר את אילוץ CHECK בעת יצירת טבלה או להוסיף לטבלה קיימת.
  • ניתן לשלב עם אילוצים אחרים: אתה יכול להשתמש ב-CHECK יחד עם אילוצים אחרים כמו מפתח ראשי FOREIGN KEY ו- NOT NULL כדי להגדיר כללים מקיפים יותר עבור נתוני הטבלה.
  • אילוצים ברמת השורה: שלא כמו אילוצים ברמת העמודה המשפיעים על עמודות בודדות, אילוץ CHECK יכול להחיל על מספר עמודות בבת אחת במידת הצורך.

דוגמאות לשימוש באילוץ CHECK

בואו נסתכל על כמה דוגמאות מעשיות כדי להבין טוב יותר כיצד פועל אילוץ CHECK SQL .

דוגמה 1: החלת CHECK על עמודה בודדת

בדוגמה זו אנו יוצרים טבלת לקוחות עם עמודת גיל שחייבת להכיל ערכים בין 18 ל-120. אילוץ CHECK מבטיח שלא יוכנס גיל לא חוקי לטבלה.

שְׁאֵלָה:

CREATE TABLE Customers (  
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);


-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);

-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint

לעמודת הגיל יש אילוץ CHECK שמבטיח שהערך חייב להיות בין 18 ל-120. אם תנסה להכניס גיל מחוץ לטווח הזה, מסד הנתונים יזרוק שגיאה.

דוגמה 2: בדוק אילוץ עם מספר עמודות

אנו יכולים גם להשתמש באילוץ CHECK על פני מספר עמודות. למשל, נניח שיש לנו טבלת עובדים ואנו רוצים להבטיח שהשכר חיובי והגיל גדול או שווה ל-18.

שְׁאֵלָה:

java לצאת מהלולאה
CREATE TABLE Employee (  
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);


-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);

-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint

אילוץ CHECK מבטיח ששני התנאים מתקיימים. העובד חייב להיות בן 18 לפחות והשכר חייב להיות גדול מ-0. אילוץ מסוג זה שימושי כאשר כלל עמודות מרובות מעורבות.

דוגמה 3: הוספת אילוץ CHECK עם ALTER TABLE

אנו יכולים להוסיף אילוץ CHECK לטבלה קיימת באמצעות המשפט ALTER TABLE.

שְׁאֵלָה:

ALTER TABLE Employee  
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);

זה מוסיף אילוץ CHECK בשם chk_salary לטבלת Employee ומבטיח שלעמודת השכר יש ערך מינימלי של 30000. אם תנסה להכניס או לעדכן רשומה עם שכר נמוך מ-30000 הפעולה תיכשל.

חידון מוצע חידון ערוך 5 שאלות

מה מבטיח אילוץ CHECK ב-SQL?

  • א

    העמודה מקבלת ערכים ללא כללים

  • ב

    העמודה מקבלת ערכים רק כאשר היא ייחודית

  • ג

    העמודה מקבלת ערכים רק כשהם אינם ריק

  • ד

    העמודה מקבלת ערכים התואמים כלל נתון

הֶסבֵּר:

CHECK אוכף תנאי על ערכי עמודות הדוחים נתונים כלשהם שמפרים את הכלל המוגדר.

מתי SQL מונע INSERT באמצעות CHECK?

מחרוזת משנה java מכילה
  • א

    כאשר הערך משוכפל בעמודה

  • ב

    כאשר הערך מפר תנאי מוגדר

  • ג

    כאשר לטבלה אין אילוץ ראשוני

  • ד

    כאשר הערך הוא NULL והעמודה מאפשרת null

הֶסבֵּר:

אם נתונים מוכנסים או מעודכנים נשברים, תנאי CHECK SQL מבטל את הפעולה.

היכן ניתן להגדיר אילוץ CHECK?

  • א

    רק בתוך תחביר שאילתת SELECT

  • ב

    רק לאחר שהמפתח הראשי הוכרז

  • ג

    במהלך יצירה או שינוי טבלה

    פיצול מחרוזת ב-c++
  • ד

    רק עבור עמודות מספריות עם טווחים

הֶסבֵּר:

ניתן להוסיף CHECK בזמן יצירת הטבלה או מאוחר יותר באמצעות הצהרת ALTER TABLE.

מה קורה באילוץ CHECK מרובה עמודות?

  • א

    התנאי יכול להתייחס לעמודה אחת בלבד

  • ב

    מצב יכול להתייחס למספר עמודות

  • ג

    מצב עובד רק על עמודות מספריות

    רשימה של מחרוזת ג'אווה
  • ד

    התנאי מתעלם מערכים במהלך ההכנסה

הֶסבֵּר:

CHECK יכול להחיל כללים באמצעות שתי עמודות או יותר האוכפות אימות משולב.

איזה תוספת נכשלת באילוץ CHECK (גיל ≥ 18)?

  • א

    ערך גיל נמוך מחמש עשרה שנים

  • ב

    ערך גיל שווה בדיוק לשמונה עשרה

  • ג

    ערך גיל גדול מעשרים וחמש

  • ד

    ערך גיל מאוחסן כערך NULL מותר

הֶסבֵּר:

כל ערך מתחת ל-18 מפר את כלל CHECK וגורם לכישלון בהכנסה.

SQL | בדוק אילוץהחידון הסתיים בהצלחה הציון שלך:  2/5דיוק: 0%התחבר כדי להציג הסבר 1/5 1/5 < Previous הבא >