ה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 וגורם לכישלון בהכנסה.
החידון הסתיים בהצלחה הציון שלך: 2/5דיוק: 0%התחבר כדי להציג הסבר 1/5 1/5 < Previous הבא >