08-10-05, 00:40 | # 1 |
A Al Alm Almo Almog!
תודה על תרומתך! |
[מדריך] SQL - מדריך למתחילים (*מומלץ!)
השאילתה שולפת לנו נתונים מטבלה מסוימת (tablename) שאת שם הטבלה אתם מגדירים לפי מה שאתם רוצים.
וcolumnume אפשר הוא שם העמודה ממנה אתם רוצים לשלוף. במיקרה ורוצים לשלוף ממספר עמודות כותבתים ככה: PHP קוד:
ניתן לכתוב גם: PHP קוד:
לכן לא רצוי לעשות זאת. דבר נוסף שרצוי לכתוב זה ככה: HTML קוד:
SELECT tablename.columnume FROM tablename שלב שני, WHERE. עד עכשיו כתבנו שאילתה בסיסית ביותר אשר רק שולפת נתונים ולא צינו לה איזה נתונים, אלה היא שולפת את כל הנתונים. כדאי להגדיר איזה נתונים לשלוף אנו משתמשים ב WHERE, WHERE מאפשר לנו לומר לשאילתה לשלוף נתונים איפה ש... משהו או שווה למשו(a=b), או גדול ממשו(a>b), או קטן ממשהו(a<b), או שווה וקטן ממשהו(a<=b), או גדול ושווה למשהו(a>=b), או שונה מ..(a<>b)ישלוף לנו את כל העמודות בהן a שונה מ b. . כיצד כותבים זאת? PHP קוד:
לא לשכוח כאשר משווים לכל דבר שהוא לא מספרים יש להוסיף גרש(') לפני המשתנה או פרמט ההשווה וגרש בסוף הפרמט/משתנה ההשווה. עוד לזכור שגם כאשר משווים בתאריך יש לכתוב גרש כמו בטקסט, ועוד שבמסד נתונים מסוג ACCESS יש לכתוב # במקום גרש במקרה של השוואת תאריכים!. בMYSQL(מסד מסוג) יש לכתוב גרש. דבר נוסף הוא שאם עמודה מסוימת שאנו משווים לה איננה מוגדרת כ(int ב mysql או כ מספר/number ב אקסס) אז יש לתחוב את הביטוי המושווה בתוך גרש(') משני צדדיו. זאת אומרת: PHP קוד:
PHP קוד:
כאשר העמודה המושוות מוגדרת כ תאריך כל שהוא לדוגמא TIME או DATE יש לתחוב(עדיין כשור לWHERE עניין תחיוות הביוטי) בתין גרש(') במסד מסוג MYSQL ובמסד מסוג אקסס יש לתחוב את התאריך בסולמיט(#). זאת אומרת: באקסס ככה: PHP קוד:
PHP קוד:
דבר נוסף שיחלתם ליראות הוא שבMYSQL התאריך כתוב בצורה שונה. מה שאומר שצרכים פונקציה מסויימת אשר תסדר את התאריך כי MYSQL לא מקבל תאריכים השונים מסדר זה. (עכשיו אני מדבר רק לאלו אשר מתכנתים בASP עם VBS). מתכנתי PHP אנא אם יש לכם כוח תרגמו את הפונקציה לPHP וכיתבו אותה ואני כבר אכתוב אותה במדריך. ואכתוב כמובן שאתם כתבתם. זאת הפונקציה: PHP קוד:
זהו חלק ראשון בהודעה מתחת יש המשך, אין לי מושג למה הפורום הגביל אותי
__________________
דוא"ל: almog.zimel ב ג'מייל נקודה קום מסנג'ר: almog שטרודל freetopsite נקודה co נקודה il Last edited by somebody; 08-10-05 at 11:09.. |
08-10-05, 00:44 | # 2 |
A Al Alm Almo Almog!
תודה על תרומתך! |
אחרי שעברנו על אילתת ה WHERE נעבור על אפשרות נוספת בניקראת ORDER BY.
מה בעצם הוא ORDER BY? ORDER BY מאפשר לנו שלוף את הנתונים בסד מסויים שבסדר הזה הוא יודפס כאשר נדפיס את הנתונים בעמוד ע"י שפת צ"ש כל שהיא. ORDER BY בא בסוף השאילתה(עד לאיפה שלמדנו, כאשר נתקדם נירא שיש עוד תוספת שבאה אחריו.) אחרי WHERE. ORDER BY מוגדר ע"י שני אפשרויות, ASC (ברירת מחדל לא חובה להגדירו, מלמעלה למטה, זאת אומרת שולף מהשורה הראשונה עד לאחרונה.). ו DESC אשר שולף מלמטה למעלה(הפוך מ ASC) כאשר השורה האחרונה בטבלה תשלף ראשונה ועוד הראשונה בטבלה תשלף אחרונה, כאשר רוצים להשתמש בפעולה זאת יש להגדירה בשאילתה. לפני הגדרת ASC או DESC (כאשר רוצים ASC לא חייבים להגדיר כמו שאמרתי ואפשר ישר לדלג לכתיבה זאת(מה שעכשיו אני אכתוב.)), כותבים את שם העמודה שרוצים לסדר ע"י . במיקרה והעמודה היא עמודת טקסט אז השורות יסודרו מ א-ת או מ ת-א תלוי אך הגדרנו לפני זה, ובמקרה ומספר ישלף המספר הגדול ביותר או הקטן ביותר שוב תלוי אך הגדרנו לפני. קוד לדוגמא: PHP קוד:
PHP קוד:
הערה! אני אציין שוב, לא חובה לכתוב את כל "התוספות" בשאילתה אחת! ניתן להשתמש לדוגמא רק ב WHERE בלי ORDER BY ואפשר רק ב ORDER BY בלי WHERE. רק חשוב לזכור שהמבנה הבסיסי של השאילתה תמיד נישאר ולא ניתן להשמיתו!. LIMIT . ביטוי אינו פועל במסד נתונים מסוג ACCESS אני יודע שהוא מתקבל בMYSQL אין לי מושג אם גם ב MSSQL, אם משהו יודע בבקשה תכתבו בהמשך האשכול. משהו LINIT? LIMIT מאפשר לנו שלוף מספר נתונים ולא את כל הנתונים. מה זאת אומרת?. אני אסביר את זה בתור דוגמא. למשל יש לנו 4 עמודים ובכל עמוד אנו רוצים להציג 10 רשומות(=שורות). אז כדאי להציג את זה ביתר קלות נשתמש בLIMIT כדאי לשלוף אותם.(אינני אפשרת כיצד לבצע חלוקה לעמודים אלה רק אך להשתמש בביטוי זה. אולי אני או משהו אחר יכתוב מדריך לחלוקה לעמודים ב MYSQL ע"י LIMIT). LIMIT נכתב בסוף השאילתה, וכותבים אותו בצורה כזאת (בהמשך אני אכתוב את השאילה בשלמותה עכשיו אני אכתוב רק על מבנה ה LIMIT כחלק משאילתה שלמה.). LIMIT number,number2 ה number מציין מאיזו שורה להתחיל לשלוף. זאת אומרת אם נכתוב 10 אז השאילתה תשלוף לנו נתונים החל משורה 10 ולא החל משורה 1 בטבלה. number2 מציין את מספר השורות שישלפו. זאת אומרת שאם נכתוב בnumber2 5 ובnumber 10 אז ישלפו לנו נתונים מהטבלה מ שורה 10- שורה 15. ואם נכתוב נגיד ב number 39 ובnumber2 נכתוב 9 אז ישלפו לנו נתונים משורה 39- שורה 48. מקווה שעד לפה הבנתם. כיצד כותבים זאת בקוד? PHP קוד:
SELECT tablename.columename FROM tablename שהיא חייבת להיות בגלל שהיא הבסיס כל שאל הביטויים לא חובה לכתוב אם לא צרכים אותם באותה שאילתה. ישנה אפשרות נוספת שעכשיו נזכרתי בה והיא LIKE, LIKE מאפשר לנו לשלוף נתונים אשר יש בהם... LIKE היא תוספת ל שאילתת ה WHERE מה שאומר שאין רק (=,>,<,<>,=>,=<) אלה גם LIKE אשר מאפשר לנו לשלוףמעמודה מסויימת את השורות בהם יש בתוך קטע מסויים את הביטוי שהזנו שLIKE הוא. כיצד כותבים את LIKE? PHP קוד:
PHP קוד:
כמובן שניתו לשרות את g בכל סימן אחר, לדוגמא תאריך. ישנם מספר צורות בהם ניתן להשתמש ב LIKE . כמו שכתבתי בתחלה (פסקה מעל) זה שולף מהשורה בעמודה מסויימת לא משנה איפה נימצאת האות g. ניתן גם לשלןף ע"י LIKE איפה נגיד ש g נמצאת בתחילת המחרוזת, בסוף המחרוזת . כיצד שולפים את השורות בהם תו מסויים נמצא בסוף המחרוזת? באותה דרך רק שסימן האחוז (%) נימצא רק לפני התו הרצוי ולא בשני צדדיו. דוגמא: PHP קוד:
מה שעשינו כאן זה לשלוף את כל השורות בהם האות g בסוף המחרוזת. כיצד שולפים את הנתונים בהם בתו בתחילת המחרוזת?. שמים את סימן האחוז(%) אחרי התו הרצוי(חשוב לזכור! לא חובה רק תו אחת ניתו לחפש מחרוזת מתוך מחרוזת, זאת אומרת לשלוף את הנתונים נגיד איפה ש המשפט "השעה לא חשובה" נימצא בהם. וניתן גם לשלוף נתונים איפה שנימצאים סתם לדוגמא טקסט שלם כל שהוא שצויין.) כיצד כותבים זאת?(שהתו נימצא בתחילת המחרוזת לסנילים שבינינו). PHP קוד:
כמו שטח שמתם לב הסימן אחוז(%) מציין את המחרוזת, זאת אומרת שאם תזכרו שה% מציין מחרוזת אז תזכרו ביתר קלות את האפשרויות של ה LIKE(נירא לי זה מה שרציתי לכתוב, מה לעשות אני לא רגיל לכתוב כל כך הרבה בכאלו שעות. ). |
08-10-05, 00:45 | # 3 |
A Al Alm Almo Almog!
תודה על תרומתך! |
המשךך
והינה שאילה אחרונה של כל מה שלמדנו ביחד:
PHP קוד:
עוד דבר שחשוב מאוד לזכור הוא שMYSQL בגירסאות השונות שלו (חוץ מהחדשה נידמה לי) מחייב התאמה בן אותיות קטנות וגדולות! מה שאומר שאם קראתם לטבלה מסויימת ABC לא תוכלו לציין בשאילתה: FROM AbC כי לאחר מיכן תקבלו שגיאה. (זה מתייחס לטבלאות ולא לעמודות! מעמודות הוא מתעלם!.) זהו! סימנו את המדריך הראשון, הבסיס של SQL . בהמשך יכתבו גם מדריכים להכנסת, עידכון, מחיקת וכו... נתונים/טבלאות ע"י SQL. תיהיה בטוחים שלא היום!(רק אם מישהו נחמד ישב ויכתוב ). בהצלחה ללומדים מקווה שתבינו משהו מהסבטוח(אין לי מושג אך כותבים) הזאת אין להעתיק את המדריך לשום פורום אחר ללא רשומת ממני! מדרך זה נכתב לפורום הוסטס ע"י ואני לא מסכים שהוא יופץ ללא רשומת ממני בשום פורום אחר! |
08-10-05, 00:51 | # 4 |
A Al Alm Almo Almog!
תודה על תרומתך! |
שחכתי להזכיר.
עוד דבר ששחכתי להזכיר זה שניתן לבצע פעולות מתמטיות במשפט SQL.
ואין לי כוח לכתוב על זה עכשיו. ושחכתי לכתוב שיש מספר פונקציות שאפשר לבצע ש4 השחיכות ביותר הן max- שולף את השורה המקסימלית איפה ש.. min- שולף את השורה המינימליט איפה ש.. count- מחשב את מספר השורות איפה ש... ו SUM- מחזיר את סכום השורות איפה ש... מבנה שאילתה: PHP קוד:
AS מציב את התוצאה בתוך משתנה שאתם רוצים ואתה יכולים ליקרוא לו כרצונכם. ואז כדאי לשלוף את הנתון אל הדף אתם כותבים את השם של הנתון החדש. ניתן להחליף את ה MAX בכל אחד מ ה4 האחרים(3 אחרים 4 כולל זה). ישנם עוד כל מיני פונקציות אפשריות. מי שמשתמש ב MYSQL יוכל לחפש פה: www.mysql.com קריאה מהנה, לא לשכוח זכויות!
__________________
דוא"ל: almog.zimel ב ג'מייל נקודה קום מסנג'ר: almog שטרודל freetopsite נקודה co נקודה il Last edited by somebody; 08-10-05 at 11:11.. |
08-10-05, 00:52 | # 5 |
A Al Alm Almo Almog!
תודה על תרומתך! |
וואי אתם לא יודעים אך כואבת לי היד והתחלתי להיות אילג משורה לשורה יותר.. חחחח..
לקח לי כמעת שעה וחצי ברצף כתיבה אם לא יותר.. תהנו |
08-10-05, 01:04 | # 6 |
מתאורר / יצא בחוץ
|
מדהיםםםםםםםםם!
כל הכבוד אלמוג ! תודה רבה ! |
08-10-05, 07:14 | # 7 |
מ.תיכנות
|
כל הכבוד
|
08-10-05, 07:30 | # 8 |
חבר וותיק
|
יפה מאוד!
|
08-10-05, 09:05 | # 9 |
חבר על
|
תודה רבה
|
08-10-05, 11:08 | # 10 |
A Al Alm Almo Almog!
תודה על תרומתך! |
בקשה
עוד משהו זה נכתב על 3 הודעות כי הפורום הגביל אותי כל שניה.. |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
Tags |
מדריך למתחילים, מדריך מומלץ, מדריך sql |
כלים לאשכול | |
תצורת הצגה | |
|
|