PracticU

Unique

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › Unique
מילון מושגים:
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.

Unique
השיעור מציג אילוץ UNIQUE, שמבטיח שערכי עמודה, או קבוצת עמודות, לא יחזרו על עצמם בטבלה. הוא מדגים מה קורה כשלא נותנים שם לאילוץ, ולמה כדאי לתת שמות.
השלבים העיקריים
1. היקף האילוץ: UNIQUE יכול לחול על עמודה בודדת, ואפשר להגדיר כמה כאלה בטבלה אחת.
2. הדגמה: בטבלה עם שתי עמודות מסוג int, לכל אחת אילוץ UNIQUE. ההכנסה הראשונה מצליחה, אבל הכנסה נוספת עם ערך כפול נכשלת.
3. שם ברירת מחדל: כשלא נותנים שם לאילוץ, SQL Server נותן לו שם אוטומטי. בהודעת השגיאה השם הזה ארוך ולא ברור, ואי אפשר לדעת מאיזה אילוץ הגיעה הבעיה.
4. מתן שם: נותנים לאילוץ שם שמכיל את שם הטבלה, את שם העמודה, והסיומת uk לציון UNIQUE. בדוגמה השם test1_id_uk, וההודעה מציינת אותו.
5. הוספה לטבלה קיימת: אפשר להוסיף אילוץ אחרי יצירת הטבלה עם ALTER TABLE ... ADD CONSTRAINT.
6. דרך Object Explorer: בתוך הטבלה נכנסים ל-Indexes/Keys, לוחצים על New, ובוחרים את העמודה ואת הערך UNIQUE.
פקודות והגדרות
CONSTRAINT <שם> UNIQUE (<עמודה>) בתוך CREATE TABLE, או ALTER TABLE <טבלה> ADD CONSTRAINT <שם> UNIQUE (<עמודה>). הרצה שנייה של אותו ALTER נכשלת.
שימו לב
מתן שמות אינו חובה, אבל בלי שם קשה לאתר את האילוץ הבעייתי. מומלץ לתת שם לכל אילוץ.
בסיום תוכלו להגדיר UNIQUE עם שם, ולזהות מיד את האילוץ שנכשל.
השיעור הבא בקורס: check constraint

פרקי ההרצאה: Unique

  1. 00:00

    מהו קונסטרנט UNIQUE ברמת עמודה

  2. 00:56

    יצירת טבלה עם קונסטרנטים מסוג UNIQUE

  3. 01:30

    הפרת UNIQUE: הכנסת ערך כפול

  4. 02:07

    בעיית שמות ברירת המחדל של הקונסטרנטים

  5. 02:42

    מתן שם לקונסטרנט לזיהוי תקלה

תמלול ההרצאה: Unique

הטקסט המלא של הדקות הראשונות בהרצאה «Unique» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:19

    שלום לכולם, שיעורנו היום הוא המשך בנושא של קונסטרנטים, ובשיעור היום אנחנו נדגים ונראה כיצד אנחנו משתמשים בקונסטרנט של יוניק, קונסטרנט המוודא לנו ערכים חד חד ערכיים ברמה של עמודה.

  2. 00:32

    נזכיר ונאמר שיוניק קונסטרנט זהו קונסטרנט שיכול להיות לנו פר עמודה, זה יכול להיות לנו יוניק קונסטרנט as match as מספר העמודות שיש לנו פר טבלה. כלומר דגים כל עמודה ועמודה, אנחנו יכולים להגדיר קונסטרנט מסוג כזה, קונסטרנט שייבדל לי ערכים חד חברתיים בתוך הטבלה שלי בואו ניצור טבלה וניצור בתוכה קונסטרנטים רד סטייבל טסט אחד נגדיר שני עמודות לצורך

  3. 01:00

    העניין ID סוג אינטג'ר ויהיה עליו קונסטרנט יוניק יהיה לנו בנוסף וזה גם ID 2 גם הוא מסוג אינטג'ר ואנחנו נגדיר בתוכו קונסטרנט יוניק נוסף ניצור את הטבלה שלנו ואנחנו מקבלים אינדיקציה Command Completed Successfully הצלחנו ליצור את הטבלה טסט אחד לתוכה דאטומוס כעת אנחנו ננסה לבצע insert,

  4. 01:23

    כלומר הכנסה של שורה test1 values 1.1. בואו נריץ את הפקודה הזאת, פקודה מאוד פשוטה שמוסיפה לנו שורה בתוך הטבלה, והשאלה אם הפקודה הזאת מצליחה, אנחנו מצליחים להוסיף one prose effected.

  5. 01:37

    אם נשוב וננסה להריץ שאילתה נוספת של insert, לבצע להכניס ערכים שהם יהיו מאוד מאוד זהים 2.1. על העמוד ה-D2 יש לנו Unicorn Strain, אנחנו מנסים להריץ את זה, ב-2005 אנחנו מקבלים כאן violation of unique constraint of unique key constraint, קיבלנו הודעת שגיאה, אבל שימו לב,

  6. 01:59

    אני נמצא כאן רחוק רחוק משכבת הדאטאבייס, ולפתע מקבל הודעה על אובייקט שגוי, אני לא מכיר אותו, מה זה uk_test1_anderscore רצף של תווים אקסוויטימליים, אנחנו לא מכירים אותם.

  7. 02:16

    אהה, הדאטאבייס זה שלא נתנו שם לקונסטרנט של המילה unique constraint, נתן לו שם דיפולטי.

  8. 02:23

    אמנם מתן השמות הוא אופציונלי מבחינת המשתמש ומבחינת חוקרי דאטאבס, אבל זה לא מייתר את העובדה שהדאטאבס, ברגע שאנחנו לא מייצרים מיליון שם, הוא מעניק שם לקונסטרנט.

  9. 02:37

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

  10. 02:49

    השם המכרוזת הזאת כפי שהוא מופיע כאן, אין לנו שום דרך לדעת מה הייתה הבעיה, מהו הקונסטרנט הבעייתי שאותו אנחנו צריכים לסדר. איך אנחנו עושים זאת?

  11. 03:03

    כשאנחנו מוצאים קונסטרנט אנחנו נותנים לו שם. בואו רגע נזרוק את טבלת טסט 1 כבר כשאנחנו נזרוק אותה, נייצר אותה, והפעם אנחנו גם ניתן שמות לקונסטרנטים.

  12. 03:16

    קריאט טייבל שוב טסט 1 ID מסוג אינטג'ר,

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: אינדקס - למה ביצועים משתפרים

ההרצאה הבאה: check constraint

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI