
הטקסט המלא של הדקות הראשונות בהרצאה «שפת SQL - הכנה לראיון עבודה לבודקי תוכנה - חלק 4» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, אנחנו ממשיכים בסרטונים שיכינו אתכם בצורה הטובה ביותר לרעיון עבודה לתפקיד איש בדיקות, QA. אנחנו ממשיכים בנושא של SQL, Structure Query Language, ולהתמודד עם שאלות שיכולות לעלות ברעיון עבודה שקשורות ל-SQL.
לדוגמה, מה זה Primary Key, או מה הם Constraints? אוקיי, אז כשאנחנו רוצים לענות על השאלה הזאת, מהו Primary Key, אז אנחנו צריכים לזכור שזה סוג של Constraint.
מה זה Constraint? קונסטריינט בעיקרון זה איזשהו חוק שמקוים על הטבלה. תכף נסביר וניתן דוגמאות לאיזה חוקים יש בטבלאות, כן?
הפריימרי קי הוא בעצם סוג של מפתח של הרקורד, אותו רשומה שקיימת בטבלה. לדוגמה, אם אנחנו מתייחסים לטבלת עובדים, אז לכל עובד יהיה פריימרי קי, שזה אומר שהוא מזהה את אותו עובד, אותו מספר ייחודי של העובד, כן?
אז אם אני נותן דוגמא לטבלה של מוצרים אז יהיה לי איזשהו פריימרי קי למוצר ספציפי. פריימרי קי צריך לזכור הוא לא יכול להיות ריק והוא מופיע פעם אחת בלבד, אין כפילויות בתוך הטבלה של פריימרי קי, הוא חייב להיות מפתח, הוא חייב להיות not null ומספר רץ, מספר שכל הזמן מתקדם או משתנה ולא יכול לחזור על עצמו פעמיים באותה טבלה.
ועכשיו לנושא של קונסטריינט, מה זה קונסטריינט? בעצם קונסטריינט זה הדרך של הדאטאבייס של ה-SQL לוודא שהמידע שמוזן לתוך הטבלאות הוא חוקי, הוא תקני.
לדוגמה קונסטריינט יכול להיות not null, זאת אומרת שהדאטאבייס ה-SQL, ה-DBMS, המערכת מחייבת אותנו להזין מידע בשדה מסוים, לדוגמה פריימרי כי הוא חייב להיות מלא, הוא לא יכול להיות null, אבל גם שם העובד לא יכול להיות null, אז גם זה קונסטריינט, אוקיי? לכל שדה בטבלה,
לדוגמה שם עובד, מספר עובד, טלפון של העובד, המחלקה של העובד, יש שורה של constraints שבעצם מחייבים את מי שממלא את הנתונים בתוך הטבלה לקיים אותם. כלומר, למלא תוכן בשדות זה not null, לעשות unique, זאת אומרת שדה שהוא חד ערכי, שהוא לא יופיע בכפילות לדוגמה, פריימרי קי הוא גם unique וגם not null.
יש לנו גם קונסטריינט מסוג Foreign Key, זאת אומרת שהוא משמש כפריימרי קי בטבלה אחרת, מלבד הטבלה הזאת, לדוגמה בטבלת עובדים יש לנו Foreign Key שזה טבלת המחלקות, זאת אומרת מספר הטבלה שאליה משתייך העובד היא פריימרי קי בטבלת המחלקות.
אז זה בעצם איזושהי חלוקה של פריימרי קי וקונסטריינט אחרים. יש לנו גם קונסטריינט של צ'ק, יש לנו ולידציה, אנחנו יכולים לוודא שלדוגמה הגיל של העובד לא יהיה מתחת לאפס, לא יהיה מעל 67 או 87 או 97, זה יכול להיות איזשהו צ'ק.
יש לנו קונסטרנט מסוג דיפולט, זאת אומרת איזשהו תנאי שאם לא ממלאים אז הוא זה שהתנאי שיתפוס. כלומר כל אלה הם בעצם רשימה של קווי הגבלה או קווי הנחיה של איך למלא את המידע בטבלה ואיך לדאוג כך שהטבלה והמידע בתוך הדאטאבייס יהיה תקני.
עוד קונסטרנט שאנחנו צריכים להכיר ברעיון העבודה הוא ה-unique key. Unique key זה בעצם איזשהו מספר או איזשהו מזהה, איזשהו ID מסוים, שמזהה את אותה שורה בטבלה, אוקיי?
אז יש בכל טבלה הרבה נתונים או הרבה שדות, אבל כשאנחנו אומרים Unique key זה אומר שבכל בכל רשומה תהיה את השדה הזה שהוא יהיה מזהה שלה לעומת הרשומות האחרות. כמו שאמרנו, פריימרי קי הוא גם יוניק.
אם שואלים אותנו במהלך הדאטאבייס מה זה אינדקס על טבלה, בעצם נוכל להגיד שאינדקס זה הדרך לשפר את המהירות של הביצוע של שאילתות בטבלה מסוימת.
אם טבלה היא עמוסה ברשומות, לדוגמה טבלת עובדים, יש אלפי עובדים לדוגמה בארגון מסוים, אנחנו נרצה לשפר את המהירות של השליפת נתונים, אז תבוצע, יבוצע תהליך של אינדקס על טבלת עובדים, ובעצם יווצר איזשהו טבלת לוקאפ, זאת אומרת איזושהי טבלה קטנה יותר שמאנדקסת חלק מהמידע מטבלת העובדים לטבלה
קטנה יותר עם פחות שדות, אבל דרכה בעצם יוכלו להגיע במהירות לטבלה העיקרית, אוקיי? טבלת האינדקס היא לא נראית כלפי המשתמש הסופי אבל היא בעצם משפרת ומייעלת את שליפת הנתונים מתוך הטבלה עצמה.
אם שואלים אותנו במהלך הראיון מה זו שאילתה מקוננת או מה זה קווירי מקונן יכולים להגיד שזה שאילתה שבעצם מתבססת על תוצאות של שאילתה אחרת. בואו נראה פה את הדוגמה הזאתי.
נגיד שמבקשים מאיתנו להראות את הבן אדם שמרוויח את המשכורת השלישית הכי גבוהה בתוך הארגון אז אנחנו יכולים לבצע את הקטע של Select Top Salary From בעצם