logo


פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס

בסיסי נתונים SeQueL :II

בסיסי נתונים יחסיים, בעגה מקצועית, הם "מנוהלים" (managed). זה אומר שצורה כלשהי של תוכנה משמשת ליצירה, עיבוד, שמירה, ושאילתות על בסיס הנתונים. הם קוראים לחבילות תוכנה זו מערכות שליטה בבסיס נתונים יחסי (relational database management systems), או RDBMS , אל תבהלו - זה סתם אויר. זה כמו של Microsoft Word קראו פעם a textual processing modification system, או שקראו לשמפו: a scientifically formulated hair therapy system. אתם בסך הכל צריכים לדעת באיזו חבילת תוכנה של בסיסי נתונים אתם משתמשים לניהול בסיס הנתונים שלכם-- Microsoft Access הוא אחד היישומים הפופולריים ביותר עבור Windows 95/98 , כמובן, ונתמקד בו תחילה. למה Access, שהוא מוצר שעובד אך ורק בסביבת חלונות? הרי רבים משרתי הרשת רצים אך ורק בסביבת יוניקס (Unix), שבו אין שום דרך קלה לגשת (access) לבסיס הנתונים של אקסס, זו נראית כבחירה הנוגדת את ההגיון. מצד שני, מבחינה של נגישות, המציאות היא שלרבים מהקוראים קיים בסיס הנתונים במבנה של אקסס והם רוצים לתרגל שאילתות מבוססות Perl בסביבת חלונות. אקסס הוא גם דרך נוחה להכרת בסיסי נתונים יחסים. במאמר הבא, כשנתמקד בבסיסי נתונים מבוססי יוניקס, MySQL התאבון לידע שלכם יירגע.

לא משנה באיזו תוכנת בסיסי נתונים תבחרו, סביר וכדאי שתתמוך ב SQL -structured query language (שפת שאילתות מובנת). אתם יכול לבטא SQL כ"sequel" אם אתם רוצים, אבל אין שום כלל רשמי. SQL היא שמגדירה את התחביר והדקדוק, בעצם זוהי מעין שפת תכנות קטנה, שאיתה תוכל לבנות שאילתות על בסיס הנתונים.

המאמר שלנו אינו המקום המתאים לקורס שלם בתכנות SQL, אבל תצטרכו לדעת איך לבנות פקודות SQL. בסופו של דבר, תעביר פקודות אלו מסקריפט ה Perl שלכם לבסיס הנתונים. קורס מבוסס אינטרנט טוב ב SQL הואJames Hoffman's introduction to Structured Query Language שיקח אתכם מעבר למבוא הפשוט ל SQL שיוצג כאן.

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

SELECT fields_to_return FROM table_name
	WHERE field_to_test condition

איחזור של שורה מתוך בסיס הנתונים billing:

ClientName ClientEmail Invoice Total Paid
Loganberry Inc. logan@pluc.net 099050101 50.00 Yes

תוך שימוש בידע שלנו על מבנה פקודה ב SQL נוכל לתרגם את הבקשות שעסקנו בהם בעבר לשאילתות SQL תקפות:

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

;SELECT ClientName,ClientEmail FROM billing

"בבקשה מנה את שמות כל הלקוחות שחויבו בלפחות 500$"

SELECT ClientName FROM billing
	 WHERE Total>=500

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

SELECT ClientName,ClientEmail FROM billing
	 	WHERE Paid=No

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

"בבקשה מנה את שמות כל הלקוחות שלא שילמו שעבורם עבדתי לפחות 10 שעות"

SELECT billing.ClientName FROM billing,invoices
 WHERE invoices.Hours>=10 AND billing.Invoice=invoices.Invoice

"בבקשה מנה את שמות כל הלקוחות וכתובות הדואר האלקטרוני שלהם שמהם גביתי לפחות 70$ לשעה"

SELECT billing.ClientName,billing.ClientEmail FROM billing,invoices
 WHERE invoices.Rate>=70 AND billing.Invoice=invoices.Invoice

זהי רמת התחכום המקסימלית שעליו יגיעו שאילתות הSQL שלנו במאמר זה, מספיק כדי להדגים שאילתות מתוך Perl. מקורות נוספים על SQL, המפורטים בסוף מאמר זה, יכולים לספק לך מבט פנימי טוב יותר של העולם המוזר והמשוגע של Structured Query Language.

מבוא לבסיסי נתונים
תוכן עניינים
Microsoft Access הכנת

אודות
תוכן עניינים
פרק 1: ה Perl שאתם צריכים לדעת
פרק 2: קישור Perl לעמודי הרשת
פרק 3: שמירת מצב
פרק 4: HTML בחטף ותבניות (Templates) רשת
פרק 5: עיבוד וניתוח של עמודי רשת
פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס
מבוא לבסיסי נתונים  
בסיסי נתונים SeQuel :II  
הכנת Microsoft Access  
DBI ו DBD מודולי בסיס הנתונים של Perl  
שאילתה פשוטה  
איך לבצע שאילתה  
היכן אנו עומדים  
פרק 7: המודל MySQL
פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושית
פרק 9: המילניום - ניהול זמן ותאריך
פרק 10: ניהול רשימות והאשים (Hashs)
פרק 11: הפניה להפניה
פרק 12: הכרות עם mod_perl