ב-SQL נדרשים לעתים קרובות שינויים מבניים במסד נתונים כגון שינוי שמות של טבלאות או עמודות הוספת עמודות חדשות או שינוי סוגי נתונים. הפקודה ALTER TABLE מאפשרת לבצע שינויים אלה ביעילות מבלי להשפיע על הנתונים הקיימים. זוהי פקודה חיונית לניהול ועדכון סכימות מסד נתונים ככל שדרישות היישום מתפתחות.
דוּגמָה: ראשית, בואו ניצור טבלת תלמידים לדוגמה כדי להדגים את הפקודה ALTER:
שְׁאֵלָה:
ALTER TABLE students
RENAME TO learners;
תְפוּקָה:
תחביר עבור פקודת ALTER
להלן תבניות התחביר הנפוצות לשימוש בפקודה ALTER TABLE:
1. שינוי שם לטבלה
ALTER TABLE שם_טבלה
RENAME TO new_table_name;
2. שינוי שם של עמודה
ALTER TABLE שם_טבלה
RENAME COLUMN old_column_name TO new_column_name;
3. הוספת עמודה חדשה
ALTER TABLE שם_טבלה
ADD column_name datatype;git להוסיף הכל
ALTER TABLE שם_טבלה
MODIFY COLUMN column_name new_datatype;
דוגמאות לפקודה ALTER ב-SQL
להלן דוגמאות מעשיות שיעזרו לנו להבין כיצד להשתמש בפקודה ALTER ביעילות בתרחישים שונים. דוגמאות אלה כוללות שינוי שמות של טבלאות או עמודות הוספת עמודות חדשות או שינוי עמודה סוגי נתונים.
1. צור טבלה לדוגמה
ראשית בואו ניצור תלמיד לדוגמה טבלה כדי להדגים את ה-ALTER פְּקוּדָה:
CREATE TABLE Student (
id INT PRIMARY KEY
name VARCHAR(50)
age INT
email VARCHAR(50)
phone VARCHAR(20)
);
בואו נכניס כמה נתונים ואז נבצע פעולת ALTER כדי להבין טוב יותר את פקודת alter.
INSERT INTO Student (id name age email phone)
VALUES
(1 'Amit' 20 '[email protected]' '9999999999')
(2 'Rahul' 22 '[email protected]' '8888888888')
(3 'Priya' 21 '[email protected]' '7777777777')
(4 'Sonia' 23 '[email protected]' '6666666666')
(5 'Kiran' 19 '[email protected]' '5555555555');
תְפוּקָה
דוגמה 1: שנה שם עמודה
שנה את השם של שם העמודה ל-FIRST_NAME בטבלה Student. כדי לשנות את שם העמודה של הטבלה הקיימת עלינו להשתמש במילת המפתח Column לפני כתיבת שם העמודה הקיים לשינוי.
תַחבִּיר
ALTER TABLE תלמיד RENAME COLUMN Column_NAME TO FIRST_NAME;
שְׁאֵלָה:
ALTER TABLE Student RENAME Column name TO FIRST_NAME;תְפוּקָה
תְפוּקָהדוגמה 2: שנה שם של טבלה
בדוגמה זו אנו רוצים לשנות את שם הטבלה מStudentאֶלStudent_DetailsבאמצעותALTER TABLEהפקודה הופכת את השם לתיאורי יותר ורלוונטי לתוכן שלו.
שְׁאֵלָה:
ALTER TABLE Student RENAME TO Student_Details;תְפוּקָה
דוגמה 3: הוסף עמודה חדשה
כדי להוסיף עמודה חדשה לטבלה הקיימת עלינו לבחור תחילה את הטבלה עם הפקודה ALTER TABLE table_name ולאחר מכן נכתוב את שם העמודה החדשה וסוג הנתונים שלה עם ADD column_name סוג נתונים. בואו נסתכל למטה כדי להבין טוב יותר.
תחביר
ALTER TABLE שם_טבלה
ADD column_name datatype;מיון בועות באלגוריתם
שְׁאֵלָה:
ALTER TABLE Student ADD marks INT;תְפוּקָה
בדוגמה הphoneהעמודה מתעדכנת מVARCHAR(20)אֶלBIGINT לאחסן נתונים מספריים בצורה יעילה יותר ולהבטיח שלמות נתונים עבור מספרי טלפון ללא תווים מיותרים.
תַחבִּיר
ALTER TABLE שם_טבלה
MODIFY COLUMN column_name new_datatype;
שְׁאֵלָה:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
תְפוּקָה
| תְעוּדַת זֶהוּת | שֵׁם | גִיל | אֶלֶקטרוֹנִי | טֵלֵפוֹן |
|---|---|---|---|---|
| 1 | מַה | 20 | [email protected] | 9999999999 |
| 2 | רהול | 22 | [email protected] | 8888888888 |
| 3 | פריה | 21 | [email protected] | 7777777777 |
| 4 | סוניה | 23 | [email protected] | 6666666666 |
| 5 | השיחה | 19 | [email protected] | 5555555555 |
הֶסבֵּר :
- בעמודת הטלפון יש כעת סוג נתונים BIGINT המתאים לאחסון ערכים מספריים גדולים.
- הנתונים הקיימים נשארים ללא שינוי אך מאוחסנים כמספרים שלמים במקום מחרוזות.
מקרי שימוש נוספים בפקודה ALTER
1. הסרת עמודה : במקרים מסוימים ייתכן שנצטרך להסיר עמודה. לשם כך אתה יכול להשתמש בתחביר DROP COLUMN:
ALTER TABLE Student_Details
פרוסת ג'אווהסימני DROP COLUMN;
פקודה זו מוחקת את עמודת הסימנים לחלוטין מהטבלה
2. שינוי ערך ברירת המחדל של עמודה : אנו יכולים גם לשנות את ערך ברירת המחדל של עמודה באמצעות סעיף SET DEFAULT:
ALTER TABLE Student_Details
ALTER Column age SET Default 18;
3. שינוי שם של טבלה או עמודה במסדי נתונים שונים : שימו לב שתחביר SQL יכול להשתנות בין מערכות מסד נתונים שונות. כך נשנה שם טבלה או עמודה ב-MySQL MariaDB ו אוֹרַקְל :
- MySQL / MariaDB : התחביר לשינוי שם עמודה דומה אך עליך להשתמש גם בפקודה CHANGE COLUMN כדי לשנות שם עמודה:
ALTER TABLE תלמיד
CHANGE COLUMN old_column_name new_column_name datatype;
- אוֹרַקְל : אורקל תומכת בתחביר RENAME COLUMN אך דורש תחביר שונה לשינוי שם טבלה:
צור חידוןALTER TABLE תלמיד RENAME COLUMN old_column_name TO new_column_name;