הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 30-09-06, 22:26   # 1
OSR
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 612

OSR לא מחובר  

[מדריך] 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

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

################################################## #

כל הזכויות שמורות לי אני כתבתי את המדריך לבדי || אין להעתיק ||

עבדתי קשה!

תודה,
אושרי.

עריכה:
* הוספתי את מה ש DorWD ביקש.
** משום מה הקודים פה מופיעים בקטן, צריך לראות אותם עם זכוכית מגדלת!

Last edited by OSR; 30-09-06 at 22:48..
  Reply With Quote
ישן 30-09-06, 22:32   # 2
DorWD
תודה על תרומתך.
 
DorWD's Avatar
 
מיני פרופיל
תאריך הצטרפות: Jan 2006
מיקום: עפולה
גיל: 31
הודעות: 2,259

DorWD לא מחובר  

כ-ל ה-כ-ב-ו-ד לך יישר כוח!.
אתה מוזמן להוסיף במיון שיש DESC שזה בסדר יורד ובלי כלום זה בסדר עולה
הכוונה זה
order by 'something' DESC

ועוד פעם, באמת כל הכבוד לך
__________________
מתכנת WEB
  Reply With Quote
ישן 30-09-06, 22:35   # 3
OSR
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 612

OSR לא מחובר  

ציטוט:
נכתב במקור על ידי DorWD
כ-ל ה-כ-ב-ו-ד לך יישר כוח!.
אתה מוזמן להוסיף במיון שיש DESC שזה בסדר יורד ובלי כלום זה בסדר עולה
הכוונה זה
order by 'something' DESC

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

Last edited by OSR; 30-09-06 at 22:40..
  Reply With Quote
ישן 30-09-06, 22:38   # 4
נריה
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Nov 2005
מיקום: מרכז
גיל: 33
הודעות: 2,122

נריה לא מחובר  

איך אומרים?
באת לי בזמן אני ממש חייב להתחיל SQL לשלב עם PHP
ממש תודה רבה
אני יחכה קצת שתערוך ותוסיף (תאמר לי אם תוכל בה.פ. שזה מסודר ומוכן) ואז אני ילמד
שוב תודה רבה
ושנה טובה
  Reply With Quote
ישן 30-09-06, 23:09   # 5
OSR
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 612

OSR לא מחובר  

ציטוט:
נכתב במקור על ידי נריה
איך אומרים?
באת לי בזמן אני ממש חייב להתחיל SQL לשלב עם PHP
ממש תודה רבה
אני יחכה קצת שתערוך ותוסיף (תאמר לי אם תוכל בה.פ. שזה מסודר ומוכן) ואז אני ילמד
שוב תודה רבה
ושנה טובה
ערכתי - אתה מוזמן להתחיל ללמוד.
  Reply With Quote
ישן 30-09-06, 23:19   # 6
somebody
A Al Alm Almo Almog!
תודה על תרומתך!
 
somebody's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: hadera CiTy
גיל: 34
הודעות: 4,005
שלח הודעה באמצעות MSN אל somebody

somebody לא מחובר  

יפה יפה קבל ח"ח על ההשקע

למרות שכבר יש מדריך SQL אחד בפורום, אבל עוד אחד אף פעם לא יזיק.

כל הכבוד!(לא קראתי מה כתבת, לא היה לי כוח.. אבל הוא ניראה מושקע)
__________________
דוא"ל: almog.zimel ב ג'מייל נקודה קום
מסנג'ר: almog שטרודל freetopsite נקודה co נקודה il

  Reply With Quote
ישן 01-10-06, 00:07   # 7
Smile
Permanently Banned
 
Smile's Avatar
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
מיקום: 015, פתח תקווה
הודעות: 1,417
שלח הודעה באמצעות ICO אל Smile שלח הודעה באמצעות MSN אל Smile Send a message via Skype™ to Smile

Smile לא מחובר  

וואו! אחד המדריכים היותר מושקעים שראיתי!
קבל חיזוק חיובי!
  Reply With Quote
ישן 01-10-06, 00:40   # 8
opsite
משתמש תחת חוזה ניסיון
 
מיני פרופיל
תאריך הצטרפות: Jun 2006
גיל: 34
הודעות: 1,854
שלח הודעה באמצעות ICO אל opsite

opsite לא מחובר  

כל הכבוד אחי ישר כוח!!! באמת מדריך מעולה
  Reply With Quote
ישן 01-10-06, 01:59   # 9
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

נראה מושקע אחי כל הכבוד
אני מקווה מאד שבהרחבה שלך תתעסק יותר LEFT|RIGHT|INNER JOIN
ואם אתה מבין אז גם IF בתוך שאליתה,GROUP BY ועוד פונקציות שונות
כגון AVG SUM ובחירה לפי טווחים עם BETWEEN

בהצלחה.
  Reply With Quote
ישן 01-10-06, 07:10   # 10
OSR
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 612

OSR לא מחובר  

תודה רבה לכולם.
אבל כמו שאמר מי שמעלי יש הרבה דברים בSQL אבל אני כתבתי את כל הידע הדרוש בשביל עבודה בסיסית מול זה.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
מדריך למתחילים, מדריך sql


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 11:40.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ