פעולות חיתוך ואיחוד בין קבוצות וביצוע Union בעזרת Join

יום שני, פברואר 28, 2011

דרך מעניינת להסתכל על טבלאות היא כעל קבוצות של רשומות. נכון שהדימוי האינטואיטיבי הוא דווקא של רשימה מסודרת (טבלה..) אבל לסדר אין חשיבות והטבלה נשארת אותה טבלה ללא קשר לאופן המיון הלוגי או הפיזי של הרשומות (זו כנראה אחת הסיבות להתעקשותה של Microsoft לא לאפשר ביצוע Order By ב-View), ובין טבלאות ניתן לבצע פעולות חיתוך ואיחוד כפי שלמדנו במבוא לתורת הקבוצות.. לצורך ההמחשה ניצור שתי טבלאות בעלות מבנה זהה, ונכניס לתוכן נתונים - חלקם זהים וחלקם שונים: Use tempdb; Go ...

מניעת הזנה כפולה

יום רביעי, נובמבר 17, 2010

יש לנו טבלת ניהול, למשל- טבלת סוגי עובדים, ובה עובד ומנהל: Create Table T_SugeyOvdim(MisparSug Int Primary Key, ShemSug Varchar(50)); Go Insert Into T_SugeyOvdim Select 10,'עובד' Union All Select 20,'מנהל'; Go יום אחד נוצר צורך להוסיף סוגים חדשים, למשל- פרילנסר ומנהל בכיר; ומכיוון שמדובר בטבלת ניהול- יוצרים סקריפט להוספת השורות החדשות, מוסיפים בשרת הפיתוח ובודקים שהכל רץ בסדר; מוסיפים בשרת הבדיקות ומבצעים בדיקות ברמת המערכת; ולבסוף מעלים לייצור. סקריפט ההוספה צריך להיות כתוב כך שלא ננסה להוסיפן פעמיים (במקרה וטעינו והשורות כבר התווספו), שכן...
אין תגובות

שליפה מטבלאות המתייחסות זו לזו

יום שלישי, יולי 6, 2010

ההיכרות הראשונה שלי עם עולם בסיסי הנתונים הרלציוניים הייתה לפני כחמש עשרה שנה בקורס אקסס – באחת מגרסאותיו הראשונות. אם לפני הקורס חשבתי שאקסס זה אקסל משופר, הרי לאחר השיעור הראשון בו הראו לנו איך יוצרים טבלה, מכניסים לתוכה נתונים, ממינים ומפלטרים אותה- התחלתי לחשוש שמדובר באקסל נחות ומנוון.. רק לאחר שהראו לנו איך עושים Join בין טבלאות אמרתי בליבי "אההה.." ארוך שפירושו הוא "עכשיו אני מבין..". לזכר ימי התום האלו אני אנסה לרכז בפוסט אחד את כל הדרכים לשלוף מטבלאות תוך שהן מתייחסות זו לזו. נתחיל ביצירת שתי טבלאות לצורך ההדגמות: Use tempdb; Go If Object_Id('T_Ovdim') Is Not Null Drop Table T_Ovdim Go Create Table T_Ovdim(ID Int...