• בלוג
  • סדרת SQL בסיסי - פוסט 4 - בסיס נתונים רלציוני

סדרת SQL בסיסי - פוסט 4 - בסיס נתונים רלציוני

13/08/2024

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

1. קצת תיאוריה

בסיס נתונים רלציוני הוא שם גנרי לקבוצת תוכנות שתפקידן לנהל נתונים בצורה של טבלאות וקשר בין טבלאות. בסיסי הנתונים הרלציוניים המפורסמים ביותר הם: Oracle, PostgreSQL, MySQL, MS SQL Server אבל יש עוד המון. אנחנו נעבוד בקורס עם בסיס נתונים רלציוני קטן בשם SQLite, שהכח שלו הוא בדיוק זה שהוא מאוד קטן - הוא אינו דורש התקנות או שרתים חזקים ולכן נוכל לעבוד איתו אונליין.

השפה בה בסיס נתונים רלציוני מדבר נקראת SQL. שפה זו פותחה במקור ב IBM בשנות ה 70 והפכה לתקן בשם Database Language SQL, כשהגירסה החדשה ביותר של התקן נכון לכתיבת קורס זה פורסמה ב 2023.

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

2. בסיס הנתונים הראשון שלנו

הכנסו לאתר:

https://sqlime.org

ושם לחצו על הלינק "Demo database". לינק זה יוצר בסיס נתונים לדוגמה שמורכב משתי טבלאות. לאחר מכן לחצו על הכפתור tables כדי לראות את רשימת שתי טבלאות הדוגמה:

  1. employees
  2. expenses

לחצו על המילה employees כדי לראות את מבנה הטבלה. התוצאה היא רשימת העמודות:

  1. id
  2. name
  3. city
  4. department
  5. salary

אבל איפה הנתונים עצמם?

3. השאילתה הראשונה שלנו

בתיבת השאילתה כתבו את הטקסט:

SELECT id, name, city FROM employees;

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

id  name    city
11  Diane   London
12  Bob London
21  Emma    London
22  Grace   Berlin
23  Henry   London
24  Irene   Berlin
25  Frank   Berlin
31  Cindy   Berlin
32  Dave    London
33  Alice   Berlin

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

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

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

  3. הפקודה FROM מפרידה בין רשימת העמודות לשם הטבלה - במקרה שלנו employees.

4. עכשיו אתם

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

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

  3. החליפו את רשימת העמודות בסימן הבודד * באחת השאילתות ובדקו מה קורה.