סדרת SQL בסיסי - פוסט 11 - עדכון טבלאות
בדוגמאות ובתרגילים בקורס הזה החיים שלנו קלים כי אנחנו יודעים מראש איזה מידע יישמר בטבלאות. בחיים האמיתיים לפעמים אנחנו מגלים ששכחנו עמודה או שטעינו באחד השמות הרבה אחרי שיצרנו את הטבלה ואפילו אחרי שכבר הכנסנו מידע אליה.
1. הוספת עמודה
אם יצרתם טבלה ואתם צריכים להוסיף לה עמודה, ולא רוצים למחוק את הטבלה וליצור אותה מחדש (כי כבר יש בה מידע חשוב) תוכלו להפעיל את הפקודה alter table
עם בלוק add
. ניצור מחדש את דוגמת כוכבי הלכת שלנו מהשיעור הקודם:
CREATE TABLE planets (
id INTEGER PRIMARY KEY,
name VARCHAR(50),
diameter_km FLOAT,
distance_from_sun_mkm FLOAT,
number_of_rings INTEGER
);
INSERT INTO planets (id, name, diameter_km, distance_from_sun_mkm, number_of_rings) VALUES
(1, 'Mercury', 4879.4, 57.9, 0),
(2, 'Venus', 12104, 108.2, 0),
(3, 'Earth', 12742, 149.6, 0),
(4, 'Jupiter', 139820, 778.5, 4),
(5, 'Saturn', 116460, 1434, 7);
ועכשיו נניח שגילינו שאנחנו צריכים לדעת גם כמה ירחים יש לכל כוכב. הפקודה הבאה תוסיף עמודה חדשה עם ערך ברירת מחדל בלי למחוק את הנתונים הקיימים:
alter table planets add moons integer default 0;
מבנה הפקודה:
- מתחילים עם alter table
- לאחר מכן שם הטבלה
- אחרי זה המילה add
- שם העמודה להוספה
- סוג המידע בעמודה והרחבות נוספות על סוג המידע (כמו ערך ברירת מחדל או
UNIQUE
אוNOT NULL
).
אפשר גם לוותר על ערך ברירת המחדל ואז הערכים בעמודה יישארו ריקים עד שנעדכן אותם עם update. לדוגמה:
update planets set moons = 1 where name = 'Earth'
2. מחיקת עמודה
בשביל למחוק עמודה מטבלה אני משתמש בבלוק drop column
אחרי התחילית alter table
, לדוגמה בשביל למחוק את עמודת הירחים החדשה שיצרתי אני מפעיל:
alter table planets drop column moons;
3. שינוי שם עמודה
בשביל לשנות שם של עמודה אני משתמש בבלוק rename column
אחרי התחילית alter table
. לדוגמה בשביל לשנות את שם העמודה name
ל planet_name
אני יכול לכתוב:
alter table planets rename column name to planet_name;
4. מחיקת טבלה
ואם נמאס לכם לגמרי מהטבלה אתם לא צריכים למחוק את כל בסיס הנתונים. הפקודה drop table תמחק טבלה ואת כל הנתונים שבה:
drop table planets;