מסדי נתונים / מסד הנתונים הראשון שלך / עוד על SQL

עוד על SQL


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

אתם כבר יודעים איך להעביר מידע אל ה querystring ע"י שימוש בטפסים, אבל מה טוב בזה אם אתם עוד לא יודעים איך לשלוף את המידע מה querystring ולשלוח אותו אל דף ה ASP שלכם?

האמת, זה פשוט מאוד, פשוט הוסיפו את השורה הבאה אל דף ה ASP :

Variable=Request.Querystring("name_of_the_form_element")


הבעיה היחידה אם querystring, לפי דעתי לפחות, היא שהמשתמש יכול לראות מה קורה מאחורי הקלעים. מסיבה זו בדיוק, יהיו פעמים בהן תעדיף להשתמש בשיטת ה POST. במקרה הזה, הוסף את השורה הבאה:

Variable=Request.Form("name_of_the_form_element")


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

הנה שתי טבלאות שאיתן התעסקנו בשיעור השני, טבלת הלקוחות וטבלת המכוניות:

ClientIDfname iname email carID 85 John Doe jdoe@whatever.com 45 CarID carname carrate 45 Buick LeSabre 60


ישנן כאן שתי טבלאות שונות, ומן הסתם נרצה לקשר ביניהן ע"י שימוש בשדה carID. דבר ראשון, בואו ניצור סט של ADO שיראה ככה:

ClientID fname Iname email carID carName carrate 85 John Doe jdoe@whatever.com 45 Buick LeSabre 60


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

SQL="SELECT fname, Iname, email, carID, carName, carrate" SQL=SQL & "FROM Clients, Cars" SQL=SQL & "WHERE email = 'jdoe@whatever.com' " SQL=SQL & "AND Clients.CarID = Cars.CarID"


רוב ההצהרות האלו אמורות להיות מוכרות. שים לב לכך שבשורה השניה קראנו לשתי הטבלאות מהן אנו לוקחים מידע, לקוחות ומכוניות. בשורה האחרונה Clients.CarID = Cars.CarID" אנחנו מגיעים לשוויון המיוחל, השדה carID בשתי הטבלאות חייב להיות זהה.


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

חוץ מהצהרת ה SELECT, תצטרך ללמוד עוד שתי הצהרות SQL אחרות. הראשונה ביניהן היא INSERT. ע"י שימוש בהצהרה הזו, כמו שבטח הצלחת לנחש, אנחנו משתמשים כדי להכניס שורה חדשה לתוך הטבלה. התחביר של ההצהרה הזו נראה ככה:

INSERT INTO TableName (column_name1, column_name2, column_name3) VALUES (value1, value2, value3)


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

ההצהרות האלו תמיד ישענו על מידע שהתקבל מה querystring. בואו נניח שהשתמשנו בטופס כדי לקבל את הערכים הבאים: fname, Iname, position, email וכמובן carID. הקוד שלנו יראה ככה:

Fname= Request.Querystring ("fname") Iname= Request.Querystring ("iname") position= Request.Querystring ("position") email= Request.Querystring ("email") carID= Request.Querystring ("carID") SQL=INSERT INTO Clients (fname, Iname, email, carID) Values ("SQL=SQL & " ' " & fname & " '," SQL=SQL & " ' " & Iname & " '," SQL=SQL & " ' " & position & " '," SQL=SQL & " ' " & email & " '," SQL=SQL & carID & ")"


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


התחביר הבסיסי להצהרה הזו הוא:

UPDATE TableName SET column1=value1, column2=value2 WHERE column3=value3


השימוש במשתנים כדי לעדכן את טבלת הלקוחות שלנו יראה ככה:

SQL="UPDATE Clients SET staffed=" & staffed & ", " SQL=SQL & "fname=' " &fname & " ', " SQL=SQL & "Iname=' " &Iname & " ', " SQL=SQL & "position=' " &position & " ', " SQL=SQL & "carID=' " &carID & "' " SQL+SQL & WHERE email=' " & email & " ' "


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



עמוד הבא: תפירת הטלאים >>




רקע
שעור 1
רקע
הכל אודות המידע
בדיקת כלים
אפליקציה לדוגמא
שעור 2
הקדמה
מסד נתונים יחסי
הגדרת טבלאות וקישורם
עבודה עם אקסס
שעור 3
הקדמה
מערך דו-ממדי
VBScript עם ASP
עבודה עם טפסים
עוד על SQL >
תפירת הטלאים
שעור 4
הקדמה
משתמשים בפקודת
Include

מפענחים עוד חלקים
מהקוד

מתיחת פנים