Download presentation
Presentation is loading. Please wait.
1
בסיסי נתונים ושפת SQL הרצאה #8
אורן דבוסקין
2
מפגש #8 חזרה - פקודות לעדכון בסיס הנתונים. שלבים בעיצוב בסיס הנתונים.
תרגול ב Access.
3
insert - הוספה הוספת שורה (בודדת) לבסיס הנתונים:
רישום הטבלה אליה יש להוסיף את השורה החדשה, ואת הערכים שיתווספו לשורה. מבנה כללי: INSERT INTO [table-name] {( [column-name, … ] )} VALUES ( [value, …. ] ) value = constant * אין צורך בשימוש ב values אם מכניסים ערכים לכל העמודות בטבלה.
4
insert – הוספה מרובת שורות
הוספת מרובת שורות לבסיס הנתונים. מאפשר העתקת נתונים מטבלה אחת והכנסה לטבלה אחרת. INSERT INTO [table-name] {( [column-name, … ] )} [QUERY]
5
Insert - דוגמאות insert into customers (customer_id, customer_name) values ( 4, ‘Oren’ ); insert into purchases values ( 1,1,now(), 5 ); (customer_id, product_id) values (5,1);
6
multi row insert - דוגמא
insert into purchases_backup select * from purchases where purchase_date between ‘1/1/2011’ and ’31/12/2011’; insert into products (product_id, product_name, category, price ) select product_id, ‘2012_’+product_name, category, price*2 from products
7
update - עדכון עדכון ערכים בשורה בודדת, או בו-זמנית במספר שורות המקיימות תנאי לוגי מסויים. מבנה כללי: זהירות לא לעדכן בטעות את כל הטבלה! UPDATE [table-name] [SET column-name = expression, … ] { WHERE [condition] }
8
update - דוגמאות עדכון מבצע.... update products set discount = 0.95; נניח והוספנו ללקוחות עמודה חדשה: מספר רכישות. אפשר לעדכן את מספר הרכישות לכל לקוח. update customers c set num_purchases = ( select count(*) from purchases p where c.customer_id = p.customer_id )
9
delete - מחיקה מחיקת שורה בודדת, או מחיקה בו-זמנית של מספר שורות המקיימות תנאי לוגי מסויים. מבנה כללי: זהירות לא למחוק בטעות את כל הטבלה! DELETE FROM [table-name] { WHERE [condition] }
10
delete - דוגמאות מחיקת לקוחות לא נאמנים...
delete customers where num_purchases = 0; מחיקת מכירות שאין להם לקוח (תיקון בסיס הנתונים): delete purchases where customer_id not in ( select customer_id from customers) delete purchases p where not exists ( select 1 from customers c where c.customer_id = p.customer_id)
11
עדכונים - דגשים פעולת העדכון צריכה לעמוד בחוקיות:
שדות חובה מפתח ראשי מפתח זר חוקיות אחרת שנקבעה עמודות שאינן נכללות בהוספה יקבלו: ערך ריק null ערך ברירת מחדל
12
שלבים בעיצוב בסיס הנתונים
תרגום מודל לוגי לטבלאי בחירת טבלאות בחירת עמודות וטיפוס נתונים. חוקיות בסיס הנתונים שדות חובה ערכי ברירת מחדל מפתחות: ראשיים, חיצוניים (זרים) תלות בין טבלאות נירמול בסיס הנתונים
13
נרמול בסיס הנתונים תהליך שמטרתו יצירת אוסף טבלאות המייצגות את המודל הלוגי בצורה מדויקת ואמינה, והורדת כפילות נתונים. התהליך: פירוק ישויות לטבלאות. הסרת כפילויות. הגדרת הקשרים/יחסים בין הטבלאות.
14
יחסים בין הטבלאות הגדרת יחסים בין הטבלאות (relationships):
שמירה על תקינות המידע מאפשר לבצע פעולות אוטומטיות בעדכון/מחיקה (מחיקת שורות "בנים", עדכון ערך בשדות, וכו).
15
דוגמא לכפילות טבלת הרוכבים riders UCInum fullname birthdate team
nation height weight 100 Alberto Contador 1/1/1980 Saxo Bank Spain 176 62 200 Lance Armstrong 5/1/1973 Radio Shack USA 178 63 300 Miguel Indurain 1/20/1968 Banesto 185 70 400 Bjran Riis 1/1/1968 Telekon Germany 190 74 450 Robbie McEwen 8/20/1985 Lotto Australia 175 65
16
דוגמא לכפילות riders UCInum fullname birthdate team nation height
weight 100 Alberto Contador 1/1/1980 Saxo Bank Spain 176 62 200 Lance Armstrong 5/1/1973 Radio Shack USA 178 63 300 Miguel Indurain 1/20/1968 Banesto 185 70 400 Bjran Riis 1/1/1968 Telekon Germany 190 74 450 Robbie McEwen 8/20/1985 Lotto Australia 175 65
17
דוגמא לכפילות riders UCInum fullname birthdate team nation height
weight 100 Alberto Contador 1/1/1980 Saxo Bank Spain 176 62 200 Lance Armstrong 5/1/1973 Radio Shack USA 178 63 300 Miguel Indurain 1/20/1968 Banesto 185 70 400 Bjran Riis 1/1/1968 Telekon Germany 190 74 450 Robbie McEwen 8/20/1985 Lotto Australia 175 65
18
פתרון: יצירת טבלאות משנה
פתרון כל כפילות על ידי יצירת טבלאות משנה
19
דוגמא 2: טבלת התוצאות results UCInum racename racedate place points
100 Tour de France 7/1/2010 1 Giro D' Italia 5/1/2010 95 Paris Nice 4/1/2010 2 50 200 7/1/1999 7/1/2000 7/1/2001 7/1/2002 7/1/2003 7/1/2004 7/1/2005 Amstel Gold Race 4/1/2003 4 20 4/1/2004 70 Olympics 10/1/2000 3 300 5/1/1994 400 Tour De France 7/1/1996 Tour De FRANCE 7/1/1995 75
20
תרגיל כיתה פקודות עדכון, נרמול בסיס נתונים
21
שיעור הבא פקודות DDL. נושאים מתקדמים.
22
תרגיל בית #5 תרגול נרמול בסיס הנתונים. הגשה: 22/1
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.