יצירת מסדי נתונים וטבלאות ב - SQL

יצירת מסד הנתונים

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

דרישות עסקיות

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

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

בחירת פלטפורמת מסד נתונים

החלטנו להשתמש במערכת ניהול מסדי נתונים (או DBMS) שנבנתה על שפת השאילתות המובנית (SQL). לכן, כל מסד הנתונים שלנו פקודות יצירת הטבלה צריך להיות כתוב עם תקן ANSI SQL בראש.

כמו יתרון נוסף, באמצעות SQL תואם ANSI תבטיח פקודות אלה יעבדו על כל DBMS התומך תקן SQL , כולל Oracle ו- Microsoft SQL Server. אם עדיין לא בחרתם בפלטפורמה למסד הנתונים שלכם, המאמר אפשרויות מסד נתונים ילווה אתכם בתהליך הבחירה.

יצירת מסד הנתונים

הצעד הראשון שלנו הוא ליצור את מסד הנתונים עצמו. מערכות רבות לניהול מסדי נתונים מציעות שורה של אפשרויות להתאמה אישית של פרמטרי מסד נתונים בשלב זה, אך מסד הנתונים שלנו מאפשר רק יצירה פשוטה של ​​מסד נתונים. כמו עם כל הפקודות שלנו, ייתכן שתרצה להתייעץ בתיעוד עבור DBMS שלך כדי לקבוע אם פרמטרים מתקדמים נתמך על ידי המערכת הספציפית שלך לענות על הצרכים שלך. בוא נשתמש בפקודה CREATE DATABASE כדי להגדיר את מסד הנתונים שלנו:

צור אנשי DATABASE

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

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

ללמוד עוד

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

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

יצירת הטבלה הראשונה שלנו

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

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

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

אנשי USE;

לחלופין, "אנשי DATABASE;" הפקודה תבצע את אותה פונקציה. עכשיו אנחנו יכולים להסתכל על הפקודה SQL המשמש ליצור שולחן העובדים שלנו:

יצירת עובדי טבלה (עובד שכיר לא NULL, שם משפחה VARCHAR (25) לא NULL, firstname VARCHAR (25) לא NULL, reportsto INTEGER NULL);

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

יצירת טבלה table_name (אפשרויות datatype type_name, ..., אפשרויות datatype של character_name);

תכונות וסוגי נתונים

בדוגמה הקודמת, שם הטבלה הוא עובדים ואנו כוללים ארבע תכונות: employeeid, lastname, firstname ו- reportsto. ה- datatype מציין את סוג המידע שאנו רוצים לאחסן בכל שדה. מזהה העובד הוא מספר שלם פשוט, לכן נשתמש בסוג הנתונים של INTEGER הן בשדה העובד והן בשדה reportsto. שמות העובדים יהיו מחרוזות אופי באורך משתנה ואנו לא מצפים שלכל עובד יהיה שם פרטי או שם משפחה ארוך מ -25 תווים. לכן, נשתמש בסוג VARCHAR (25) עבור שדות אלה.

NULL ערכים

אנו יכולים גם לציין NULL או NOT NULL בשדה האפשרויות של ההצהרה CREATE. זה פשוט אומר את מסד הנתונים אם ערכים NULL (או ריק) מותר עבור תכונה זו בעת הוספת שורות למסד הנתונים. בדוגמה שלנו, מחלקת משאבי אנוש דורשת זיהוי עובד ושם מלא עבור כל עובד. עם זאת, לא כל עובד יש מנהל - מנכ"ל מדווח לאף אחד! - כך אנו מאפשרים ערכי NULL בשדה זה. שים לב ש- NULL הוא ערך ברירת המחדל והשמטת אפשרות זו תאפשר באופן משתמע ערכי NULL עבור מאפיין.

בניית הטבלאות שנותרו

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

צור טריטוריות טריטוריות (טריטוריאליות אינטגר לא NULL, טריטוריה תיאור VARCHAR (40) לא NULL, אזור VARCHAR (25) לא NULL);

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

צור טבלה employettories (העובד לא שלם לא NULL, טריטוריה INTEGER לא NULL);

מנגנון SQL מספק לשנות את המבנה של מסד נתונים לאחר הבריאה

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

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

ALTER TABLE עובדים ADD שכר INTEGER NULL;

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

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