الفرق بين المراجعتين لصفحة: «SQL/replace»
< SQL
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 103: | سطر 103: | ||
* [https://dev.mysql.com/doc/refman/5.7/en/replace.html توثيق REPLACE في محرك MySQL] | * [https://dev.mysql.com/doc/refman/5.7/en/replace.html توثيق REPLACE في محرك MySQL] | ||
* [https://sqlite.org/lang_conflict.html توثيق REPLACE في محرك SQLite] | * [https://sqlite.org/lang_conflict.html توثيق REPLACE في محرك SQLite] | ||
[[تصنيف:SQL]] | [[تصنيف:SQL|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Tables]] | [[تصنيف:SQL Tables|{{SUBPAGENAME}}]] |
مراجعة 15:44، 28 يناير 2018
هو استعلام يستخدم للقيام بنفس مهمة الاستعلام INSERT
(إضافة سجل جديد للجدول) ولكن لإدخال سجلٍ بنفس القيمة الموجودة مسبقًا في عمود المفتاح الأوليّ وذلك منعًا لحدوث التكرار، إذ يُحذف السجل المحتوي لهذه القيمة ليُضاف سجلٌ جديدٌ بدلًا منه، وتكون الصيغة العامة للاستعلام على النحو الآتي:
REPLACE INTO table VALUES (col_name [, col_name] ...);
إذ إن table
هو اسم الجدول الذي سيُعدَّل فيه السجل، وتوضع القيم الجديدة ضمن القوسين.
مثال
إن كان الجدول الآتي students
موجودًا في قاعدة البيانات:
GPA | Age | Name | StudentID |
---|---|---|---|
3.68 | 25 | Mona | 1024 |
3.57 | 24 | Radi | 1081 |
2.50 | 25 | Leen | 1012 |
4.00 | 26 | Sarah | 1085 |
1.96 | 22 | Amin | 1066 |
2.87 | 23 | Yusuf | 1056 |
فلاستبدال السجل ذو الرقم الفريد 1066 (وهو رقم لا يمكن تكراره لأن هذا الحقل يعدّ مفتاحًا أوليًا للجدول) ببياناتٍ متعلقة بطالب آخر يُنفذ الاستعلام الآتي:
REPLACE INTO students VALUES (1066, 'Ahmad', 21, 3.15);
ليصبح الجدول بعد الاستبدال بالشكل الآتي:
GPA | Age | Name | StudentID |
---|---|---|---|
3.68 | 25 | Mona | 1024 |
3.57 | 24 | Radi | 1081 |
2.50 | 25 | Leen | 1012 |
4.00 | 26 | Sarah | 1085 |
3.15 | 21 | Ahmad | 1066 |
2.87 | 23 | Yusuf | 1056 |
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
لا | نعم | لا | لا | نعم |
قد يُستفاد من استعلام UPDATE
في المحركات التي لا تدعم استعلام الاستبدال REPLACE
.