السلام عليكم ورحمة الله وبركاته
لاي استفسارات تخص هذه الدوره بامكـانك وضعهـا هنـا :
استفسـارات HowTo : MySQL
لاي استفسارات تخص هذه الدوره بامكـانك وضعهـا هنـا :
استفسـارات HowTo : MySQL
نبدأ مع عنوان الموضوع وهو إستخدامات متقدمة لنظام إدارة قواعد البيانات MySQL ، فى السابق كنا نتحدث عن بعض الأمور الأساسية والتى تُشكل قاعدة أساسية للتعامل مع خادم MySQL بشكل قد يكون يومى لدى البعض ، وتطرقنا إلى عدة نقاط مهمة وقمنا بتطبيق عدة أمثلة على تلك النقاط وأعتقد أننا قد وفينا بشكل أو بآخر تلك النقاط أو على الأقل قمنا بذكر أمثلة مهمة تُوضح وظائف تلك النقاط وتستطيع مراجعة الموضوع على الرابط التالى :
ومن الآن فصاعداً سنبدأ فى ذكر بعض النقاط المهمة الأخرى والتى تميل إلى الإستخدامات المتقدمة نوعاً ما ، وبالتالى ستشعر بقوة ومتانة MySQL فى أداء وظائف قد ﻻ يتخيلها أو يُدركها البعض ومن ضمن هذه النقاط :
* دوال المجموع أو Aggregate Functions
* إستخدام جملة HAVING
* إستخدامات أخرى لجملة أمر Select
* الدوال الحسابية فى MySQL أو Mathematical Functions
* تحديث السجلات (Records) بإستخدام جملة أمر Update
النقاط الخمس السابقة تحتوى تفاصيل ونقاط فرعية سنقوم بشرحها لاحقاً ، ولكن فى البداية سنغير من خطة العمل التى كنا نعمل عليها بمعنى توجد لدينا الآن شركة ما (نفترض أن إسمها linuxsoft) هذه الشركة متخصصة فى عمل تطبيقات مختلفة تخص نظام التشغيل جنو/لينوكس ، وتريد الشركة عمل قاعدة بيانات تضم تفاصيل الموظفين لديها من أسماء الموظفين ، ورواتبهم ، وعدد سنين العمل فى الشركة لكل موظف ، كذلك الألقاب الوظيفية لكل موظف بالإضافة إلى أعمار هؤﻻء المُوظفين ، علاوة على ذلك عناوين البريد الإلكترونى الخاصة بالموظفين .
طبعا بدأنا الآن فى عمل حقيقى أى أننا سنتمكن من عمل تطبيق حقيقى يُستخدم فعلياً داخل الشركات التى تحوى عدد من الموظفين ، ونبدأ مباشرة فى تحليل التطبيق السابق لنعرف ماهو المطلوب عمله لكى نبنى قاعدة البيانات تلك :
أوﻻً : فى البداية سنقوم بإنشاء قاعدة بيانات تخص الموظفين ولذلك سنقوم بتسمية قاعدة البيانات تلك بإسم employees للدلالة على أن هذه القاعدة تخص موظفين .
ثانيا : سنقوم بإنشاء جدول داخل قاعدة البيانات employees ونقوم بتسميته employee_data أو employee_detail اختر ما يناسبك .
ملحوظة : إختيار إسم للجدول من الإسمين السابقين ليس فرض اختر أى إسم يحلو لك .
ثالثا : نبدأ فى تحليل الأعمدة والحقول المطلوب عملها وإنجازها ، سنحتاج إلى التالى :
* عمود أو حقل لبيان الترتيب الرقمى للموظفين داخل الشركة ونسميه مثلا emp_id أو اختصاراً ل employee identifier .
* عمود أو حقل لتعريف الإسم الأول بالموظفين ونقوم بتسميته على سبيل المثال f_name أى first name .
* عمود أو حقل لتعريف الإسم الأخير بالموظفين ونقوم بتسميته ب l_name أى last name .
* عمود أو حقل لتعريف اللقب الوظيفى للموظف وليكن مثلاً title .
* عمود أو حقل لتعريف العمر الخاص بكل موظف داخل الشركة ويكون إسم العمود age .
* عمود أو حقل لتعريف عدد سنين العمل لكل موظف داخل الشركة وليكن إسم العمود yos أو اختصاراً ل years of service .
* عمود أو حقل لتعريف رواتب الموظفين داخل الشركة وليكن إسم العمود salary .
* عمود أو حقل لتعريف حوافز الموظفين ونقوم بتسمية العمود بإسم perks .
* عمود او حقل لتعريف عناوين البريد الإلكترونى للموظفين تحت إسم email .
من التحليل السابق لقاعدة البيانات التى سوف نقوم بإنشائها أننا سوف نحتاج إلى جدول تحت إسم employee_data بالإضافة إلى تسعة أعمدة هى على الترتيب التالى :
كود:
1- emp_id ( data type = integer ) 2- f_name ( data type = varchar(25) ) 3- l_name ( data type = varchar(25) ) 4- title ( data type = varchar(50) ) 5- age ( data type = integer ) 6- yos ( data type = integer ) 7- salary ( data type = integer ) 8- perks ( data type = integer ) 9- email ( data type = varchar(60) )
كود:
mysql> create database employees; Query OK, 1 row affected (0.02 sec)

فعلا تم إنشاء القاعدة ، الخطوة التالية نقوم بإنشاء الجدول من خلال الأمر create table والذى سيكون بإسم employee_data ، ثم نقوم بإضافة الأعمدة السابقة مع أنواع البيانات التى سوف تخص كل عمود على حده بالشكل التالى :
كود:
mysql> CREATE TABLE employee_data -> ( -> emp_id int unsigned not null auto_increment primary key, -> f_name varchar(20), -> l_name varchar(20), -> title varchar(30), -> age int, -> yos int, -> salary int, -> perks int, -> email varchar(60) -> ); Query OK, 0 rows affected (0.13 sec)
بعد أن قمنا بتنفيذ جملة أمر create table سنتأكد الآن من إضافة الأعمدة بشكل صحيح ، كذلك نوع البيانات التى تخص كل عمود هل هى فعلاً ما نريده أم ﻻ بإستخدام الأمر describe :

الآن تأكدنا من أن كل شىء يسير على ما يرام ، سنقوم الآن بإدخال بيانات الموظفين إلى الجدول empolyee_data بإستخدام جملة أمر insert into ولكن عملية الإدخال ستتم من خلال إستيراد ملف نصى جاهز يحتوى على جمل أمر insert into بكافة البيانات المطلوبة وتسطيع تحميل الملف من على الرابط التالى :
بعد الإنتهاد من تحميل الملف قم بالولوج إلى المجلد الذى يحتوى ذلك الملف أﻻ وهو ملف employee.dat ثم تقوم بتنفيذ الأمر التالى فى الطرفية :
كود:
debian:~# mysql employees < employee.dat -u root -p Enter password:
تعليق