פרטי המסמך:
מדריך למתחיל בשפת SQL. בין הנושאים הכלולים במסמך: פקודות בסיסיות: Insert, Select, Update. פקודות לניהול טבלה: Create, Drop. פקודות לאיחוד טבלאות: Inner Join, Left Join ועוד פקודות רבות אחרות.
1. מבוא – בסיסי נתונים ושפת SQLמסמך זה יציג בפרקי ההמשך שלו את שפת SQL, בדגש על הקשר שלה לתהליך בניית אתרים דינאמיים באינטרנט. המסמך אינו דורש ידע מוקדם בשום שפת תיכנות. SQL הינו קיצור של Structured Query Language, או בעברית: "שפת שאילתה מובנית" וזאת משום שבראשית השפה תפקידה היה לממש בעיקר אחזור מידע בצורה נוחה יחסית ממקורות מידע אך עם הזמן הורחב תפקידה של השפה לעוד תחומים רבים כגון עדכון נתונים, הוספת נתונים, יצירת סכמות נתונים, וידוא תקינות נתונים, מימוש טרנזקציות על נתונים, ועוד הרבה תחומים נוספים. השפה התבססה בראשיתה על אלגברה רלציונית מתחום המתמטיקה, וכמו באלגברה רלציונית השפה משמשת לרוב מול מסדי נתונים רלציוניים, כלומר מסדי נתונים אשר נתוניהם שמורים בטבלאות בעלות קשרים מסוגים שונים בינהן בצורה יעילה ואשר מאפשר חיסכון בכפילויות ואופטימיזציה בחיפוש הנתונים הבסיסי. היתרון האדיר הכרוך בשפת SQL ובשימוש במסדי נתונים רלציוניים הינו שכבת אבסטרקציה בין השכבה הפיסית בה שמורים הנתונים, שכבת סידור הנתונים שמעליה, שכבת מימוש המפתחות לשליפת נתונים אופטימלית בזמן ריצה ובכמות העיבוד וקריאת הנתונים, והשכבה הלוגית אשר מתארת בשפת SQL הצהרות לביצוע. משום שכל אחת מהשכבות ממומשת בניתוק גמור מהשכנה לה ניתן להשתמש שוב ושוב בקלות רבה מאוד באותו הקוד בשכבות שונות ולהשיג שימוש חוזר אופטימלי בקוד. לדוגמא אף שאתר אחד יכול לשמור צבעי נעליים במפתח לחיפוש באתר, ואתר אחד יכול לשמור את כל המאמרים באתר כמפתח לחיפוש (על ידי שימוש בחיפוש טקסט מלא) - עדיין מימוש הרוב המוחלט באתרים יכול בהחלט להיות זהה בשל שכבות האבסטרציה - שליפת מחחרים לפי צבע הנעליים ומיון לפי דירוג הגולשים יכול באותה מידה היה להיות שליפת מאמרים באתר ומיונם לפי מידת התאמתם למילות חיפוש הן מבחינת שפת SQL והן מבחינת המפתח המשתמש בה. דוגמא ראשונה נוספת לשכבת האבסטרציה המצוינת הזו היא דפדפן פיירפוקס, בגרסאות האחרונות של הדפדפן החל המנגנון הפנימי של הדפדפן לאחסן היסטורית גלישה, עוגיות וסיסמאות שמורות במסד נתונים קטנטן מסוג Sqlite. וכך בלא מאמץ רק נוספו למאפיינים אלו יכולת שליפה מהירה וחיפוש מהיר בשל האופציה ליצור מפתחות חיפוש ומפתחות חיפוש בטקסט מלא ובשכבה הפיסית נוסף אלמנט הצפנה לשמירת הנתונים בדיסק; גם אם הצפנה זו חלשה היום או תישבר בעתיד יהיה ניתן בקלות להחליף את מודול ההצפנה ומבחינת הדפדפן השינוי בקוד יהיה מזערי. דוגמא שנייה לשכבת האבסטרציה הינה פשוט מאוד מנגנון ניהול ההרשאות שבשפת SQL, ניתן בקלות על ידי שימוש במספר משתמשים ובמשפטי GRANT ו-REVOKE לממש מנגנון הרשאות שהיה לוקח ככל הנראה זמן רב מאוד לממש בדרך אחרת ושהיה עלול להכיל חורים במימוש. אין כל חלק של המפתח המשתמש ב-SQL במימוש מנגנון ההרשאות, רק בשימוש בו. חשוב לציין שישנם מימושים שונים לשפת SQL ולצערנו אין תאימות מוחלטת בין מימושים שונים גם בחלקים החופפים במימוש, וכך כמעט בטוח שיהיה צורך להתאים קוד SQL בהעתקתו בין מימושים שונים, למשל קוד SQL של ACCESS הינו שונה במעט מקוד SQL של Sql Server אף ששני המוצרים שייכים לחברת מיקרוסופט, ושניהם יהיו שונים מקודי SQL עבור MySQL ועבור Oracle של חברת Sun לא מצליחהאיך משתמשיםפ במקס ומינ1.3.1.3. שליפת נתונים ממספר טבלאותהייהפקודה הזו לא עובדת... מה לא בסדר? לפעמים שורף לי בתחת, מה עושים?אני רואה שזה פורסם ב-2005האם זה רלוונטי להיום?תודההורדתי ועברתי על על הכל.עזר לי מאוד תודה רבהsubqueriesIn the 2nd example for WHERE subqeiry, can I use the word AND in the condition,If so, how? thank you UPDATEIs the word TABLE in the UPDATE statement necessaryif so, why is it necessary in the #2nd example and not in the 1st Can I use UPDATE table_name SET col1=val1, col2=val2, ... WHERE condition Thank you CREATE TABLEלא צריך להגדיר איפהשהו מפתח ראשי ומפתח זר? איך אחרת יוצרים קשרים בין הטבלאות? שם עמודה זהה זה מספיק ליצירת קשר?תודה רבה! Whereבטבלה מס 1 יש לי שדה עם פקד של תיבה משולבת.אני רוצה להציב בקרטריון של התיבה המשולבת תנאי :- שיבחרו בטבלה אחרת מס 2 רק הרשומות ששדה מסויים שלהם שווה לערך של שדה בטבלה 1 הנמצא באותה רשומה של הפקד. האם אפשר להציב בתנאי הקריטריון (בפקודת WHERE ) לא רק השוואה לרשימה של נתונים קבועים מראש, אלא גם השוואה למשתנה שנגזר Nרשומה ושדה מסויימים. איך כותבים את זה ב- SQL ? יצירת שאילתת SQL מתוך טופסלכ' ניר אדר שלום !אני רצה ליצור שאילתת SQL מתוך טופס באכסס בארוע בעת לחיצה של פקד ואני לא מצליח להבין את כללי התחביר. למשל השאילתה הזו שכתבו לי אותה ובמקום להעברי נתונים לטבלה fordoh אני רוצה פשוט לבנות שאילתה רגילה ושתהא בסיס לדוחות שלי אז במקום Select *INTO fordoh ליצור שאילתה חדשה שמקבלת את הפרמטרים מהטופס Dim WhereCond As String WhereCond = " Where 1=1 " Dim myqry As QueryDef Set myqry = CurrentDb.QueryDefs("creattableforreports") myqry.sql = "Select *INTO fordoh from Forcreatreport " & WhereCond DoCmd.SetWarnings False DoCmd.OpenQuery "creattableforreports", , acReadOnly תודה לעוזרים מאת : מאיר mc12@netvision.net.il כללי התחביר של כתיבת השאילה בתוך פקד בטופסבבקשה ,בבקשה מכם תעזרו לי אני כל הזמן מסתבך ובעצם אף פעם אני לא מצליח לכתוב שגרה שמכילה שאילתת SQL , אני הולך לשאילתה לעיצוב שאילתה קיימת בתצוגת SQL ,מעתיק את התוכן ללוחהולך לטופס ומדביק את התוכן לתוך אירוע בעת לחיצה ואז אני מקבל את כל השורות שהדבקתי ל אדום ,אני לא מצליח להבין את כללי התחביר של כתיבת שאילתת SQL . התוכלו לעזור לי ? מאיר = mc12@netvision.net.il אלף תודות לכם innerjoinאין כאן באמת הסברתודה על הכל ,פשוט אין מילים ...הכל מובן וכתוב בצורה יפה .. :)תודה על המידע אני מבין יותר בזכות האתר ..כל הכבוד ליוצר האתר :) תודהאין מילים הכל ברור ומסביר ברמהזה רק סיכום =.=אני מחפש מדריך שילמד את השפה .. לא שיסביר אליה.תודה רבה - שמחים לעזור לכולם ללמוד SQL:)הסברים מצויניםהתוכן מעולה וההסברים טוביםניר אדר- ממש ממש תודה !אני כרגע לומד SQL, ונעזרתי המון בהסברים המצוינים הלאורציתי להגיד תודה ושאתה עושה עבודת קודש |
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |
שם