View Single Post
ישן 08-10-05, 00:44   # 2
somebody
A Al Alm Almo Almog!
תודה על תרומתך!
 
somebody's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: hadera CiTy
גיל: 33
הודעות: 4,005
שלח הודעה באמצעות MSN אל somebody

somebody לא מחובר  

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

קוד לדוגמא:
PHP קוד:
SELECT tbalename.columname FROM tablename WHERE 
tablename
.columname=something ORDER BY tablename.columname DESC 
או ע"י ASC ככה:

PHP קוד:
SELECT tbalename.columname FROM tablename WHERE 
tablename
.columname=something ORDER BY tablename.columname 
ואפשר כמובן גם ךהוסיף בסוף ASC אבל זה לא משנה.

הערה!
אני אציין שוב, לא חובה לכתוב את כל "התוספות" בשאילתה אחת! ניתן להשתמש לדוגמא רק ב 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 WHERE tablename.columname=something ORDER BY tablename.columname DESC LIMIT number,number2 
זה הקוד. ושוב אציין כי לא חובה לכתוב את כל הביטויים בשאילתה אחת! אלה אפשר לכתוב רק אחת מהביוטיים חוץ משאילתת הבסיס שכמו שכתבתי בהתחלה היא:
SELECT tablename.columename FROM tablename
שהיא חייבת להיות בגלל שהיא הבסיס כל שאל הביטויים לא חובה לכתוב אם לא צרכים אותם באותה שאילתה.

ישנה אפשרות נוספת שעכשיו נזכרתי בה והיא LIKE, LIKE מאפשר לנו לשלוף נתונים אשר יש בהם...
LIKE היא תוספת ל שאילתת ה WHERE מה שאומר שאין רק (=,>,<,<>,=>,=<) אלה גם LIKE אשר מאפשר לנו לשלוףמעמודה מסויימת את השורות בהם יש בתוך קטע מסויים את הביטוי שהזנו שLIKE הוא.
כיצד כותבים את LIKE?
PHP קוד:
WHERE tablename.ciolumname LIKE '%string%' 
עכשיו נכתוב זאת בשאילתה מלאה:
PHP קוד:
SELECT tablename.columname FROM tablename WHERE columname LIKE '%g%' 
מה שעשינו כאן זה לשלוף את כל הנתונים אשר בעמודה מסויימת איפה שבתוך המחרוזת יש את האות g.
כמובן שניתו לשרות את g בכל סימן אחר, לדוגמא תאריך.

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

ניתן גם לשלןף ע"י LIKE איפה נגיד ש g נמצאת בתחילת המחרוזת, בסוף המחרוזת .
כיצד שולפים את השורות בהם תו מסויים נמצא בסוף המחרוזת?
באותה דרך רק שסימן האחוז (%) נימצא רק לפני התו הרצוי ולא בשני צדדיו.
דוגמא:

PHP קוד:
SELECT tablename.columname FROM tablename WHERE columname LIKE %
'
מה שעשינו כאן זה לשלוף את כל השורות בהם האות g בסוף המחרוזת.

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


PHP קוד:
SELECT tablename.columname FROM tablename WHERE columname LIKE 'g%' 
מה שעשינו כאן זה לשלוף את כל השורות בהם האות g נמאת בתחילת המחרוזת.

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

  Reply With Quote