في SQL، غالبًا ما تكون التعديلات الهيكلية على قاعدة البيانات مطلوبة مثل إعادة تسمية الجداول أو الأعمدة أو إضافة أعمدة جديدة أو تغيير أنواع البيانات. يسمح أمر ALTER TABLE بإجراء هذه التغييرات بكفاءة دون التأثير على البيانات الموجودة. إنه أمر أساسي لإدارة مخططات قاعدة البيانات وتحديثها مع تطور متطلبات التطبيق.
مثال: لنقم أولاً بإنشاء نموذج لجدول الطالب لتوضيح أمر ALTER:
استفسار:
ALTER TABLE students
RENAME TO learners;
الإخراج:
بناء جملة أمر ALTER
فيما يلي تنسيقات بناء الجملة الشائعة لاستخدام أمر ALTER TABLE:
1. إعادة تسمية الجدول
تغيير الجدول table_name
إعادة تسمية إلى new_table_name؛
2. إعادة تسمية العمود
تغيير الجدول table_name
إعادة تسمية العمود old_column_name إلى new_column_name؛
3. إضافة عمود جديد
تغيير الجدول table_name
إضافة نوع بيانات اسم العمود؛كيف اخترعت المدرسة
تغيير الجدول table_name
تعديل العمود 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 لفهم أمر التغيير بشكل أفضل.
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 في جدول الطالب. لتغيير اسم العمود في الجدول الموجود علينا استخدام الكلمة الأساسية للعمود قبل كتابة اسم العمود الموجود لتغييره.
بناء الجملة
ALTER TABLE Student إعادة تسمية العمود Column_NAME إلى 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 نوع البيانات. دعونا نلقي نظرة أدناه لفهم أفضل.
بناء الجملة
تغيير الجدول table_name
إضافة نوع بيانات اسم العمود؛كيفية تحميل فيديو يوتيوب vlc
استفسار:
ALTER TABLE Student ADD marks INT;الإخراج
في المثالphoneيتم تحديث العمود منVARCHAR(20)لBIGINT لتخزين البيانات الرقمية بشكل أكثر كفاءة وضمان سلامة البيانات لأرقام الهواتف دون أحرف غير ضرورية.
بناء الجملة
تغيير الجدول table_name
تعديل العمود column_name new_datatype؛جافا فتح ملف
استفسار:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
الإخراج
| بطاقة تعريف | اسم | عمر | بريد إلكتروني | هاتف |
|---|---|---|---|---|
| 1 | ماذا | 20 | أميت@gmail.com | 9999999999 |
| 2 | راهول | 22 | [email protected] | 8888888888 |
| 3 | بريا | 21 | بريا@hotmail.com | 7777777777 |
| 4 | سونيا | 23 | سونيا@gmail.com | 6666666666 |
| 5 | المكالمة | 19 | كيران@yahoo.com | 5555555555 |
توضيح :
- يحتوي عمود الهاتف الآن على نوع بيانات كبير مناسب لتخزين القيم الرقمية الكبيرة.
- تظل البيانات الموجودة دون تغيير ولكن يتم تخزينها كأعداد صحيحة بدلا من السلاسل.
حالات استخدام أوامر ALTER الإضافية
1. إزالة عمود : في بعض الحالات قد نحتاج إلى إزالة عمود. للقيام بذلك، يمكنك استخدام صيغة DROP COLUMN:
تغيير الجدول Student_Details
إسقاط علامات العمود؛
يقوم هذا الأمر بحذف عمود العلامات بالكامل من الجدول
2. تغيير القيمة الافتراضية للعمود : يمكننا أيضًا تعديل القيمة الافتراضية للعمود باستخدام جملة SET DEFAULT:
تغيير الجدول Student_Details
تغيير عمر العمود الافتراضي 18؛
3. إعادة تسمية جدول أو عمود في قواعد بيانات مختلفة : لاحظ أن بناء جملة SQL يمكن أن يختلف عبر أنظمة قواعد البيانات المختلفة. إليك كيفية إعادة تسمية جدول أو عمود في MySQL MariaDB و أوراكل :
- ماي إس كيو إل / ماريا دي بي : بناء جملة إعادة تسمية عمود مشابه ولكن يجب عليك أيضًا استخدام الأمر CHANGE COLUMN لإعادة تسمية عمود:
تغيير الجدول الطالب
تغيير العمود old_column_name new_column_name نوع البيانات؛
- أوراكل : يدعم Oracle بناء جملة RENAME COLUMN ولكنه يتطلب بناء جملة مختلفًا لإعادة تسمية الجدول:
إنشاء اختبارALTER TABLE Student RENAME COLUMN old_column_name TO new_column_name؛