מדריך | SQL – מדריך בסיסי

מדריך SQL

1. הקדמה
SQL הינה שפה לטיפול בבסיסי נתונים.
מה זאת אומרת טיפול?
הכוונה היא לתפעול בסיס הנתונים דרך השפה.
SQL מאפשרת שליפה, מחיקה, הרצה, עידכון, הוספה וכל מיני פקודות שאפשר לבצע על בסיס הנתונים(על כך אסביר בהמשך).
פקודות אלו נקראות שאילתות.
את השאילתות ניתן להריץ ישירות מול בסיס הנתונים, בעזרת אקסס, או ע"י שפה מארחת (אסביר על כך בהמשך) כמו: PHP, ASP וכדומה.
בכדי ללמוד את שפת הSQL לא דרוש ידע מוקדם.

2. בניית בסיס הנתונים
בסיס הנתונים שלך צריך להיות מתוכנן ומאורגן היטב, ולכן, אני ממליץ לפני בנייה של כל בסיס לתכנן אותו קודם כל על דף או אפילו בעזרת אקסל.
בסיס נתונים מכיר טבלאות שבתוכם נמצאים הנתונים המסודרים ע"פ עמודות.
בשביל מדריך זה בניתי בסיס בעל טבלה אחת, אך ורק לצורך ההבנה.
הכנתי את הטבלה על נושא די קל להבנה – אבות המזון (סתם נושא).
הינה רשימת העמודות שיש לי בטבלת "אבות המזון" שבבסיס הנתונים שלי:
1. ירקות ופירות
2. חלבונים
3. שומנים
4. סוכרים
5. פחמימות
עד כאן. אני חושב שהבנתם את הקטע.
כל הרשימה שרשמתי למעלה אלה הם העמודות ובתוכם יופיעו הנתונים.
למשל בעמודה "ירקות ופירות" יכול להופיע לי הנתון "גזר" או "עגבנייה" או "בננה" וכו'.
עכשיו אחרי שתיכננו את המסד על "דף" אפשר להתחיל ליצור אותו.
בפרק הבא נתחיל ללמוד את השאילתות שאמרתי קודם.


3. SELECT – שליפת נתונים

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

קוד:
 
SELECT (שם העמודה) FROM (שם הטבלה)

עכשיו כמו שאמרתי בוא נשלוף את הירקות ופירות מהטבלה.

קוד:
SELECT fruits FROM avothamazon

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

קוד:
SELECT fruits, sugars FROM avothamazon

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

קוד:
SELECT * FROM avothamazon

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

4. ORDER BY – מיון התוצאות

כמו שאמרתי, ORDER BY מאפשר לנו למיין את התוצאות של השאילתה בסדר הרצוי.
הינה דוגמא:

קוד:
SELECT * FROM table ORDER BY name

הפקודה תמיין את הנתונים בטבלה ע"פ העמודה "שם" (כאן העדפתי לא להציג את הדוגמא של אבות המזון בגלל שזה מסובך בשביל הפרק הזה).
* יש לציין שאם לא מוסיפים לאחר הORDER BY value את המונח DWSC אז הסדר יופיע בסדר עולה ואם כן נוסיף את הDESC בסוף, הסדר יופיע בסדר יורד.
בפרק הבא נלמד איך להציב לפקודה תנאים על מנת שיוצג התוצאות שאנחנו באמת רוצים.

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

קוד:
SELECT name FROM childern WHERE school = "dapim"

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

6. INSERT – הוספת נתונים
עד עכשיו למדנו איך לשלוף נתונים מהטבלה ולמדנו הרבה אפשרויות שאפשר לעשות עם הפקודה SELECT.
אבל אם אנחנו רוצים במקום לשלוף את הנתונים – להוסיף נתונים?
פקודה INSERT תשמש אותנו בכך.
למשל נרצה להוסיף ילד נוסף לקבוצה שלנו, נעשה זאת כך:

קוד:
INSERT INTO children (name, school, year_born) VALUES (oshri, dapim, 1992)

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

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

קוד:
DELETE FROM children

אפשר גם למחוק את כל הילדים שנמצאים בבית הספר דפים:

קוד:
DELETE FROM children WHERE school = "dapim"

מיצינו את הרעיון? הלאה.

8. UPDATE – עדכון נתונים
לפעמיים דברים משתנים, למשל, ילד מהקבוצה שלנו העיפו אותו מהבית ספר והוא עבר לבית ספר אחר סתם לדוגמא.
צריך לעדכן את הנתונים!
וזאת נבצע ע"י הפקודה UPDATE.
נגיד אושרי, ילד מהקבוצה שלנו, הוא ילד חכם מאוד, עבר את המבחן כדי להיכנס לבית ספר למחוננים הנקרא "קלמרים"
אז הוא עזב את בית הספר "דפים".
את זאת נעדכן כך:

קוד:
UPDATE children SET school = "kalmarim" WHERE name = "oshri"

בהצלחה לאושרי בבית הספר החדש
פקודה אחרונה שלמדנו במדריך זה.

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

10. אתרים ומקורות מידע
במדריך זה למדתם את הדבר הבסיסי והדרוש על מנת לעבוד מול מסד נתונים.
אבל תמיד אפשר להרחיב את הידע ולדעת עוד אודות הSQL.
נתתי לכם מתנת פרידה, אוסף של קישורים ללמידה מעמיקה.
להלן:
http://www.webmaster.org.il/guide.asp?subject=sql
http://www.sigall.co.il/sql.asp
http://www.asp.org.il/section/SQL
http://www.underwar.co.il/document-details.asp?id=251

עד כאן לימוד מעמיק.