128 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: SQL Update Query
 | ||
| localeTitle: استعلام تحديث SQL
 | ||
| ---
 | ||
| ## استعلام تحديث SQL
 | ||
| 
 | ||
| ### ما الذي يمكن أن يفعله استعلام التحديث
 | ||
| 
 | ||
| يعطي استعلام تحديث للمبرمج DBA أو SQL باستخدام القدرة على تحديث العديد من السجلات بواسطة أمر واحد.
 | ||
| 
 | ||
| هام تلميح السلامة! دائما نسخة احتياطية من ما أنت على وشك تغييره قبل تغييره!
 | ||
| 
 | ||
| هذا الدليل سوف:
 | ||
| 
 | ||
| *   إضافة حقل جديد إلى جدول الطالب
 | ||
| *   اختبر المنطق لتحديث هذا الحقل من خلال عنوان البريد الإلكتروني المخصص للمدرسة
 | ||
| *   تحديث الحقل الجديد.
 | ||
| 
 | ||
| هذا هو جدول الطلاب ونحن نبدأ هذه العملية
 | ||
| 
 | ||
| ```sql
 | ||
| SELECT * FROM student;
 | ||
| ``` 
 | ||
| 
 | ||
| ```text
 | ||
| +-----------+------------------------+-----------+------------------+---------------------+---------------------+
 | ||
| | studentID | FullName               | sat_score | programOfStudy   | rcd_Created         | rcd_Updated         |
 | ||
| +-----------+------------------------+-----------+------------------+---------------------+---------------------+
 | ||
| |         1 | Monique Davis          |       400 | Literature       | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         2 | Teri Gutierrez         |       800 | Programming      | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         3 | Spencer Pautier        |      1000 | Programming      | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         4 | Louis Ramsey           |      1200 | Programming      | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         5 | Alvin Greene           |      1200 | Programming      | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         6 | Sophie Freeman         |      1200 | Programming      | 2017-08-16 15:34:50 | 2017-08-16 15:34:50 |
 | ||
| |         7 | Edgar Frank "Ted" Codd |      2400 | Computer Science | 2017-08-16 15:35:33 | 2017-08-16 15:35:33 |
 | ||
| |         8 | Donald D. Chamberlin   |      2400 | Computer Science | 2017-08-16 15:35:33 | 2017-08-16 15:35:33 |
 | ||
| |         9 | Raymond F. Boyce       |      2400 | Computer Science | 2017-08-16 15:35:33 | 2017-08-16 15:35:33 |
 | ||
| +-----------+------------------------+-----------+------------------+---------------------+---------------------+
 | ||
| 9 rows in set (0.00 sec)
 | ||
| ``` 
 | ||
| 
 | ||
| ### تغيير الجدول وإضافة حقل جديد
 | ||
| 
 | ||
|  ``    ALTER TABLE `fcc_sql_guides_database`.`student` 
 | ||
|     ADD COLUMN `schoolEmailAdr` VARCHAR(125) NULL AFTER `programOfStudy`; 
 | ||
| `` 
 | ||
| 
 | ||
| يتم تنفيذ جدول الطالب بعد التعديل.
 | ||
| 
 | ||
| ```text
 | ||
| mysql> SELECT FullName, sat_score, programOfStudy, schoolEmailAdr FROM student;
 | ||
| +------------------------+-----------+------------------+----------------+
 | ||
| | FullName               | sat_score | programOfStudy   | schoolEmailAdr |
 | ||
| +------------------------+-----------+------------------+----------------+
 | ||
| | Monique Davis          |       400 | Literature       | NULL           |
 | ||
| | Teri Gutierrez         |       800 | Programming      | NULL           |
 | ||
| | Spencer Pautier        |      1000 | Programming      | NULL           |
 | ||
| | Louis Ramsey           |      1200 | Programming      | NULL           |
 | ||
| | Alvin Greene           |      1200 | Programming      | NULL           |
 | ||
| | Sophie Freeman         |      1200 | Programming      | NULL           |
 | ||
| | Edgar Frank "Ted" Codd |      2400 | Computer Science | NULL           |
 | ||
| | Donald D. Chamberlin   |      2400 | Computer Science | NULL           |
 | ||
| | Raymond F. Boyce       |      2400 | Computer Science | NULL           |
 | ||
| +------------------------+-----------+------------------+----------------+
 | ||
| 9 rows in set (0.00 sec)
 | ||
| ``` 
 | ||
| 
 | ||
| ### اختبار المنطق (خطوة مهمة جدا!)
 | ||
| 
 | ||
| ```sql
 | ||
| SELECT FullName, instr(FullName," ") AS firstSpacePosition,
 | ||
| concat(substring(FullName,1,instr(FullName," ")-1),"@someSchool.edu") AS schoolEmail
 | ||
| FROM student;
 | ||
| ``` 
 | ||
| 
 | ||
| ```text
 | ||
| +------------------------+--------------------+------------------------+
 | ||
| | FullName               | firstSpacePosition | schoolEmail            |
 | ||
| +------------------------+--------------------+------------------------+
 | ||
| | Monique Davis          |                  8 | Monique@someSchool.edu |
 | ||
| | Teri Gutierrez         |                  5 | Teri@someSchool.edu    |
 | ||
| | Spencer Pautier        |                  8 | Spencer@someSchool.edu |
 | ||
| | Louis Ramsey           |                  6 | Louis@someSchool.edu   |
 | ||
| | Alvin Greene           |                  6 | Alvin@someSchool.edu   |
 | ||
| | Sophie Freeman         |                  7 | Sophie@someSchool.edu  |
 | ||
| | Edgar Frank "Ted" Codd |                  6 | Edgar@someSchool.edu   |
 | ||
| | Donald D. Chamberlin   |                  7 | Donald@someSchool.edu  |
 | ||
| | Raymond F. Boyce       |                  8 | Raymond@someSchool.edu |
 | ||
| +------------------------+--------------------+------------------------+
 | ||
| 9 rows in set (0.00 sec)
 | ||
| ``` 
 | ||
| 
 | ||
| _ملاحظة حول concat (): في MySQL يتم استخدام هذا الأمر في سلاسل مدمجة ، وليس كذلك في إصدارات SQL الأخرى (راجع الدليل). في هذا الاستخدام يعمل مثل هذا: يتم دمج السلسلة الفرعية للحقل FullName مع عدم تضمين المساحة الأولى مع "@ someSchool.edu". في العالم الحقيقي سيكون هذا أكثر تعقيدًا وستحتاج إلى التأكد من أن عنوان البريد الإلكتروني فريد من نوعه._
 | ||
| 
 | ||
| ### القيام بالتحديث
 | ||
| 
 | ||
| سنتظاهر بأن هذا ما نريده ونحدّث الجدول بهذه المعلومات:
 | ||
| 
 | ||
| ```sql
 | ||
| UPDATE student SET schoolEmailAdr = concat(substring(FullName,1,instr(FullName," ")-1),"@someSchool.edu")
 | ||
| WHERE schoolEmailAdr is NULL;
 | ||
| ``` 
 | ||
| 
 | ||
| نجاح!
 | ||
| 
 | ||
| ```text
 | ||
| mysql> SELECT FullName, sat_score, programOfStudy, schoolEmailAdr FROM student;
 | ||
| +------------------------+-----------+------------------+------------------------+
 | ||
| | FullName               | sat_score | programOfStudy   | schoolEmailAdr         |
 | ||
| +------------------------+-----------+------------------+------------------------+
 | ||
| | Monique Davis          |       400 | Literature       | Monique@someSchool.edu |
 | ||
| | Teri Gutierrez         |       800 | Programming      | Teri@someSchool.edu    |
 | ||
| | Spencer Pautier        |      1000 | Programming      | Spencer@someSchool.edu |
 | ||
| | Louis Ramsey           |      1200 | Programming      | Louis@someSchool.edu   |
 | ||
| | Alvin Greene           |      1200 | Programming      | Alvin@someSchool.edu   |
 | ||
| | Sophie Freeman         |      1200 | Programming      | Sophie@someSchool.edu  |
 | ||
| | Edgar Frank "Ted" Codd |      2400 | Computer Science | Edgar@someSchool.edu   |
 | ||
| | Donald D. Chamberlin   |      2400 | Computer Science | Donald@someSchool.edu  |
 | ||
| | Raymond F. Boyce       |      2400 | Computer Science | Raymond@someSchool.edu |
 | ||
| +------------------------+-----------+------------------+------------------------+
 | ||
| 9 rows in set (0.00 sec)
 | ||
| ``` 
 | ||
| 
 | ||
| كما هو الحال مع كل هذه الأشياء SQL هناك أكثر من ذلك بكثير من ما هو موجود في هذا الدليل التمهيدي.
 | ||
| 
 | ||
| آمل أن يمنحك هذا على الأقل ما يكفي للبدء.
 | ||
| 
 | ||
| يرجى الاطلاع على دليل مدير قاعدة البيانات الخاص بك والمتعة محاولة خيارات مختلفة بنفسك. |