PracticU

יצירת טבלה - ממשק גרפי

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

יצירת טבלה - ממשק גרפי
בשיעור רואים כיצד יוצרים טבלה בעזרת הממשק הגרפי של SQL Server Management Studio, במסד הנתונים Northwind. הטבלה מוגדרת על ידי מבנה נתונים (Definition) ועל ידי אחסון פיזי של הנתונים בדיסק.
השלבים העיקריים
1. פתיחת טבלה חדשה: בתוך Tables לוחצים קליק ימני ובוחרים New Table.
2. הגדרת עמודות: לכל עמודה מגדירים שם, סוג נתונים (למשל int או varchar) והאם היא מאפשרת NULL. ברירת המחדל של Allow Nulls מסומנת אוטומטית.
3. הגדרות ברמת העמודה: Default Value קובע ערך שייכנס כשלא נותנים ערך בהכנסה. למשל, ערך ברירת מחדל 0 לעמודה מסוג מספר.
4. עמודה מחושבת: Computed Column שומרת נוסחה במקום נתון. הנוסחה של DATEDIFF מחשבת את הפרש השנים מ-1900, ובעזרתה מוצג ערך מעודכן בכל שאילתה.
5. שמירה: בשמירה נותנים שם לטבלה, והיא נוצרת במסד הנתונים.
6. סקריפט של הטבלה: קליק ימני על הטבלה ובחירת Script Table As מייצרת את פקודות SELECT, INSERT, UPDATE, DELETE, CREATE ו-DROP.
פקודות והגדרות
- CREATE TABLE - יצירת הטבלה מהסקריפט.
- ALTER TABLE ... ADD CONSTRAINT ... DEFAULT - הוספת ערך ברירת מחדל לעמודה קיימת.
- sp_addextendedproperty - הוספת תיאור לטבלה ולעמודה.
שימו לב
עמודה מחושבת יכולה להיות Persisted רק אם הנוסחה דטרמיניסטית, כלומר מחזירה תמיד את אותו ערך לאותם קלטים. נוסחת DATEDIFF לפי התאריך הנוכחי אינה כזאת, ולכן היא נשמרת עם Is Persisted = 0.
בסיום השיעור יש בידיכם יכולת ליצור טבלה בממשק הגרפי, ולקבל ממנה את הסקריפט המקביל.
השיעור הבא בקורס: יצירת טבלה - פקודות

פרקי ההרצאה: יצירת טבלה - ממשק גרפי

  1. 00:00

    יצירת טבלה בממשק הגרפי

  2. 00:37

    טבלאות לעומת Views

  3. 01:13

    הגדרת שמות וסוגי עמודות

  4. 01:50

    הגדרות ברמת עמודה: ברירת מחדל ו-Null

  5. 02:52

    עמודה מחושבת (Computed Column)

  6. 04:28

    Persisted ו-Deterministic בעמודה מחושבת

  7. 06:35

    שמירת הטבלה ותיאור העמודות

תמלול ההרצאה: יצירת טבלה - ממשק גרפי

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

  1. 00:20

    בשיעורים היום אני רוצה להדגים מבחינה ויזואלית-גרפית כיצד אנחנו יוצרים טבלאות במערכת תוך שימוש בכלי העבודה של ה-Management Studio. ראשית אנחנו פותחים כאן query חדש, ובתוך Databases אני מתחבר ל-Database הרלוונטי, דאטה בשלב אנחנו עובדים על Northwind, ובתוכו אני מגלה מספר סקשנים. שני סקשנים כרגע מעניינים אותי, זה ה-Tables,

  2. 00:42

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

  3. 01:05

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

  4. 01:19

    לציין מה הדאטה טייפ שלה ואם אני רוצה כאן להכין ספרים שלמים אז אני בוחר כאן את int ועבור כל עמודה אני צריך לציין האם היא מאפשרת הכנסה של now yes or no אלה הגדרות מנדטוריות בציוד למרות שה- allow is now הוא משהו דיפולטי אני לא חייב לציין אותו ברגע שאנחנו כותבים כאן סקריפט כאן

  5. 01:48

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

  6. 01:58

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

  7. 02:12

    בנוסף לזה אני יכול גם לציין מהו ה-Default Value בגין העמודה הזאת, מה שמדובר בעמודה של אינטג'ר אני יכול להחליט שבהינתן המצב שבו המשתמש בפקודת אינסרט לא ציין ערך עבור העמודה כלום אחד הערך הדפולטי שייכנס הוא 0 או 100 או כל ערך אינטג'ר אחר שעומד בהגדרות של הדאטה טייפס כפי שציינתי מקודם כמובן שבמקרה שבו allows null אז הערך הדפולטי בהיעדר מתן ערך כלשהו בפקודת אינסרט

  8. 02:46

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

  9. 03:12

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

  10. 03:40

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

  11. 04:19

    מסוים ולכן ברגע שאני יורד ומאשר את הפורמולה שימו לב שעבור column 2 אין לי data type ספציפי כזה או אחר, כיוון שאין לה data types.

  12. 04:30

    כל מה שיש ב-column 2 זה נוסחה בלבד. גם על הנוסחה הזאת יש לי אפשרות, גם על Completed column יש לי אפשרות לציין האם היא תהיה persisted או non-persisted is persisted a different to know, כלומר תשמור נוסחה בלבד, אולם יש לי מצב, יש לי אפשרות לא לשמור רק נוסחה, אלא על מנת לזרז שאילתות של Select,

  13. 04:51

    שאילתות של שליפת נתונים מתוך הטבלה, לא בכל שאילתא ועבור כל שורה ושורה אני מחשב את הנוסחה הזאת של דייטיב, ויש לי אפשרות: once חישבת את זה? Yes, is persisted, yes. דהיינו, תשמור את הנתון כחלק מהסטורית של הטבלה.

  14. 05:09

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

  15. 05:32

    אני יכול לבחור שהיא תהיה Persisted, אני יכול להחליט שהיא תהיה Non-Persisted. במקרה הזה, על מנת שעמודה Computed Callum תהיה Persisted, הנוסחה חייבת להיות Deterministic, כלומר הערך המוחזר ממנה חייב להיות צפוי וניתן לחיזוי בכל רגע נתון, אני חייבת להיות מה שנקרא Persisted אם אני

  16. 05:56

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

  17. 06:17

    ליד Definition This is כל טקסט שאנחנו רוצים דאמפ קולום כל טקסט שאנחנו רוצים זהו ההגדרה זאת תהיה ה-definition שלו זה ה-description שלו וזה יישמר לי כ-properties עבור אותה עמודה.

  18. 06:35

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

  19. 07:00

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

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

ההרצאה הקודמת: סוגים שונים של varchar

ההרצאה הבאה: יצירת טבלה - פקודות

הרצאות קשורות מקורסים אחרים

  • ממשק גרפי של Git
  • ממשק גרפי של SCOM
  • ממשק גרפי GNOME
  • ממשק גרפי של GPO

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

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