SlideShare a Scribd company logo
1 of 197
Download to read offline
‫‪moon‬‬


                                        ‫األوراكل‬


  ‫نتعرض في ھذا الفصل الى مقدمة في ادارة قواعد البيانات ‪ Database‬وخاصة قواعد بيانات‬
     ‫األوراكل والذي يعتبر أحد النظم القوية في قواعد البيانات ‪Data Base Management‬‬
                  ‫)‪ System (DBMS‬لما له من مميزات مقارنة بقواعد البيانات االخرى .‬

                                                                   ‫مفاھيم قواعد البيانات‬

                                                             ‫قاعدة البيانات ‪Database‬‬
‫ھي مجموعه من الملفات المنظمة بحيث يسھل الوصول إليھا عندمت نريد استردادھا‬

                                                  ‫قاموس البيانات ‪Data Dictionary‬‬
‫ھو مجموعة من المعلومات عن جداول وفھارس البيانات تحقظ داخل ھذا القاموس ، يستخدمھا‬
                                                             ‫نظام إدارة قواعد البيانات‬

                                                                         ‫االستعالم ‪Query‬‬
‫ھو نظام استفساري لالستعالم عن بيانات معينة وغاليا ال يغير االستعالم في قاعدة البيانات حيث‬
                                        ‫إن غالبية نظم االستعالم عبارة عن قراءة فقط للبيانات‬

                                                                   ‫الدوال ‪Function‬‬
‫عبارة عن مجموعة من تعليما ت أو أوامر تستخدم ضمن مسمى وظيفي الداء عملية محددة‬
                                                ‫وغالبا تعيد الدالة قيمة معينه بعد تنفيذھا‬

                                                                     ‫االجراء ‪Procedure‬‬
‫مجموعة من التعليمات مثل تعليمات الدالة بھدف تنفيذ مھمة محددة لكن االجراء ال يعيد قيمة‬
                                                                                  ‫مثل الدالة‬

                                                                  ‫مخطط ‪Schema‬‬
    ‫عبارة عن مجموعة من الكائنات ‪ Objects‬مرتبطة بقواعد البيانات ويتألف مخطط‬
    ‫‪ Schema‬من كائنات مثل الجداول ‪ Tables‬واالجراءات ‪ Procedure‬والعروض ‪Views‬‬
                                                                 ‫والفھارس ‪Index‬‬

                               ‫مدير قواعد البيانات )‪Database Administrator (DBA‬‬
‫ھو الشخص المسؤؤل عن عمليات إدارة قواعد البيانات ونظم أداء ھذه القواعد وكيف يتم‬
‫تكوينھا وھو مسوؤل أيضا عن مراقبة أداء ھذه القواعد ، وكذلك إجراء عمليات النسخ االحتياطي‬
 ‫وتثبيت البرامج ، والمحافظة على أمن المعلومات ، وإضافة مستخدمين جدد أو إلغاء صالحيات‬
                                                                            ‫مستخدمين‬

      ‫ويمكن ان يقوم مدير قواعد البيانات بالتخطيط لتطوير وتنمية النظام المطبق ، وتحديد‬
                                                        ‫الحاجه لھذه التطورات المستقبلية .‬
‫‪moon‬‬


 ‫ويسعى فريق العمل الذي يتكون من مديري قواعد البيانات ‪ DBA‬للحفاظ على سير العمل داخل‬
                            ‫الشركة بشكل متجانس . وتتم تجزئة المھام بين ھؤالء المديرين .‬


                                                    ‫مھام مدير قواعد البيانات )‪(DBA‬‬
        ‫تتباين مھام مدير قاعدة البيانات تبعا لحجم الشركة أو المؤسسة وتبعا لفريق‬
                                       ‫العمل المساعد وتشمل ھذه المھام النقاط التالية :‬
                                                          ‫١- تثبيت البرمجيات الجديدة‬
                                                ‫٢- إدارة الحماية لنظام قواعد البيانات‬
                        ‫٣- النسخ االحتياطي والدوري للبيانات ونظام قواعد البيانات‬
                                                    ‫٤- استكشاف األخطاء ومعالجتھا‬
                       ‫٥- تسوية وإصالح إخفاقات المستخدمين للوصول إلى بياناتھم‬
                                                           ‫٦- متابعة ضبط أداء العمل‬
                                                    ‫٧- تقسيم األجھزة والنظم الجديدة‬
                                                ‫٨- العمل على تطوير النظام بالشركة‬

             ‫نظام إدارة قاعد البيانات )‪Data Base Management System (DBMS‬‬

  ‫ھو عبارة عن مجموعة األدوات البرمجيه ) البرامج ( التي تدير وتنظم قاعدة البيانات وتوجد‬
  ‫عالقة ارتباط بين ھذه البيانات تسمى عالقة )‪ (Relation‬لذا احيانا يطلق عليھا ‪ RDBMS‬أي‬
                                             ‫نظام إدارة قواعد البيانات العالئقية ) االرتباطية (‬

                                                     ‫مميزات نظام إدارة قاعدة البيانات أوراكل‬

‫يتميز نظام قاعدة البيانات أوراكل عن غيره من نظم إدارة قواعد البيانات األخرى باآلتي:‬
        ‫١- القدرة الفائقة على استيعاب كميات كبيرة من البيانات قد يصل عدد السجالت إلى‬
   ‫الماليين مع الحفاظ على المستوى العالي في األداء والسرعة عند استرجاع والتخزين‬
                                                                               ‫والحذف‬
     ‫٢- السرية التامة واألمن ال حتوائه على نظام الصالحيات والحقوق الذي يضمن تطبيق‬
                                   ‫الشروط القياسية واألمنية للحفاظ على قاعدة البيانات‬
                                         ‫٣- فعالية التحكم المركزي بالبيانات الذي يضمن :‬
         ‫• تقليل التكررات غير الالزمة في البيانات المدخلة )‪(No Repetition‬‬
                          ‫• تجنب التناقض بين البيانات )‪(No Contradiction‬‬
                               ‫• إمكانية التشارك في البيانات )‪(Data Sharing‬‬
                      ‫• الحفاظ على تكامل البيانات فيما بينھا )‪(Data Integrity‬‬
     ‫٤- السيطرة التامة على عملية النسخ االحتياطي لقاعدة البيانات وحمايتھا من الفقدان أو‬
                                              ‫التلف مع امكانية استرجاعھا في أي لحظة‬
‫‪moon‬‬



                         ‫عمليات نظام إدارة قاعدة البيانات‬
                           ‫يشتمل نظام إدارة قاعدة البيانات اوراكل على العمليات التالية‬

            ‫١- أوامر لغة تعريف البيانات )‪Data Definition Language (DDL‬‬

  ‫تستخدم ھذه اللغة في تعريف وإنشاء الكائن ‪ ، Object‬ويمكن أن يكون الكائن ملفات‬
    ‫وجداول بيانات ، فيمكننا إنشاء وتعديل وحذف الكائن ويمكننا إنشاء امتياز لمستخدم‬
  ‫معين ، أو انشاء كائن خيارات لفحص وإضافة تعليقات إلى قاموس البيانات ومن ھذه‬
                                     ‫األوامر : ‪CREAT , DROP and ALTER‬‬

       ‫٢- أوامر لغة معاملة البيانات )‪Data Manipulation Language (DML‬‬

‫تتيح ھذه األوامر التعامل مع البيانات وتعديلھا ضمن الكائن الموجود ‪ Object‬ومن ھذه‬
               ‫األوامر : ‪SELECT, DELETE,UPDATE and INSERT‬‬

            ‫٣- أوامر لغة التحكم في البيانات )‪Data Control Language (DCL‬‬

‫تتيح ھذه األوامر التحكم في قاعدة البيانات وأدائھا كالصالحيات والمستخدمين والحقوق‬
‫وغالبا ماتكون ھذه األوامر مخصصة لالستخدام من قبل مدير قاعدة البيانات )‪(DBA‬‬
                               ‫ومن ھذه االوامر : ‪GRANT and REVOKE‬‬
‫‪moon‬‬


                    ‫التركيب الداخلي لنظام أوراكل‬
                                                                           ‫أھداف الفصل‬
 ‫يتناول ھذا الفصل التركيب الداخلي لنظام قاعدة البيانات أوراكل وفي نھاية ھذا الفصل‬
                                                      ‫ستكون قادرا بمشيئة ﷲ على :‬
                                                       ‫١- فھم العالقات بين الجداول‬
                                                          ‫٢- تعريف نمذجة العالقة‬
                                            ‫٣- فھم مكونات قاعدة البيانات العالئقية‬
                                                ‫٤- فھم العالقة بين الخادم والمستفبد‬
                                                        ‫٥- قھم الخادم ‪SERVER‬‬
                                                           ‫٦- فھم المستفيد ‪Client‬‬
‫‪moon‬‬


                    ‫مقدمة في قواعد البيانات العالئقية‬
     ‫يقدم ھذا الفصل التركيب والبناء الداخلي لنظام إدارة قواعد البيانات أوراكل ، فيحتوي على‬
   ‫وصف سريع لمكونات أوراكل وتعتمد غالبية تطبيقات نظم قواعد البيانات في بنائھا على أحد‬
                                                                  ‫نماذج قاعد البيانات التالية:‬

                                    ‫نموذج ھيكلي )ھرمي ( ‪Hierarchical Model‬‬                 ‫١-‬
                                               ‫نموذج شبكي ‪Network Model‬‬                    ‫٢-‬
                                            ‫نموذج عالئقي ‪Relational Model‬‬                  ‫٣-‬
                                                  ‫نموذج شيئي ‪Object Model‬‬                  ‫٤-‬

  ‫في الماضي كان النموذج األول ) الھرمي ( األكثر انتشارا مع أجھزة الكمبيوتر الكبيرة ‪Main‬‬
        ‫‪ Frame‬ثم بدا النظام الثاني ) الشبكي ( في االنتشار وخاصة مع التوسع في بناء وتركيب‬
‫شبكات الحاسب وكانت ھناك صعوبات في استخدام النظامين االول والثاني ) الھرمي والشبكي (‬
  ‫نتيجة الستخدام مؤشرات البرمجة ) ‪ ( Pointers‬لربط سجالت البيانات بعضھا مع بعض ، لذا‬
    ‫نجد أن إضافة أو تعديل أو حذف السجالت يحتاج إلى المزيد من قھم طبيعة وعمل المؤشرات‬
             ‫وفي ھذه الفترة الماضية طرق برمجة المؤشرات تكتب بلغة الكوبول )‪.(COBOL‬‬
 ‫أما النموذج العالئقي )‪ (Relational‬فھو األكثر سھولة في االستخدام وفي برمجة تطبيقات نظم‬
‫قواعد البيانات ومن الناحية النظرية األكاديمية فيلزمك دراسة المفاھيم األساسية والضروربة لھذا‬
                                                      ‫النموذج العالئقي لھذا سنركز ھنا على‬

                        ‫١- ھيكل البيانات العالئقية ‪Relational Data Structure‬‬
 ‫٢- الضوابط الحاكمة للبيانات العالئقية ‪Constraint that govern organization of‬‬
                                                          ‫‪data structure‬‬
‫٣- العمليات التي تجرى على ھذه البيانات ‪Operations that are performance data‬‬
                                                                ‫‪structure‬‬

   ‫ويعتمد نظام ھياكل البيانات العالئقبة )‪ (Relational Database‬على ھيكل منطقي‬
  ‫ويطلق عليه عالقة )‪(Relational‬وعلى شكل ثنائي األبعاد ‪(Tow dimensional‬‬
  ‫) ‪ data structure‬يتكون من صفوف وأعمدة ويسمى جدول )‪ (Table‬ھذا باإلضافة‬
   ‫إلى عناصر البيانات )‪ (Data elements‬تسمى في ھذه الحالة ‪ attributes‬عالوة‬
   ‫على ھذا يتم تنظيم ھذه البيانات الفعلية في وحدة أو وحدات تسمى ‪ Tuples‬تقسم إلى‬
     ‫صفوف ‪ Rows‬أو )سجالت ‪ ( Records‬وأعمدة ‪) Columns‬حقول ‪( Fields‬‬
               ‫والشكل التالي يبين العناصر األساسية لجدول الموظقين ‪Employees‬‬
‫‪moon‬‬




                                                              ‫العالقة بين الجداول‬

   ‫لربط عالقة بأخرى تتحتاج إلى طريقة لالرتباط . وھذه الطريقة تستخدم حقال ‪ Field‬يكون‬
  ‫موجودا في الجدولين وحقل االرتباط يسمى في الجدول األول بالمفتاح الرئيسي ‪(Primary‬‬
           ‫)‪ Key‬للجدول األول ويسمى يالمفتاح ال )‪ (Foreign Key‬في الجدول الثاني‬
‫‪moon‬‬



                                ‫نمذجة العالفة ‪Relational Model Algebra‬‬
 ‫تعرف بانھا العمليات التي يتم اجراؤھا على جدول أو مجموعة من الجداول تبعا لعالقة محددة‬
 ‫ويوجد معامالن ‪ Operators‬ھما ‪ Unary‬والثاني‪ Binary‬والجدول التالي يعدد سبعة انواع‬
                                                                        ‫لھذه العمليات‬

‫العملية‪Operation‬‬     ‫نوع العملية ‪Type‬‬                     ‫وصف العملية‬
   ‫‪Union‬‬                ‫‪Binary‬‬             ‫تجميع الصفوف السجالت من جدولين مع عدم‬
                                                                  ‫السماح بنكرار سجالت‬
 ‫‪Intersection‬‬             ‫‪Binary‬‬               ‫تحديد السجالت )الصفوف( المشتركة بين‬
                                                                                ‫جدولين‬
  ‫‪Difference‬‬              ‫‪Binary‬‬             ‫اظھار السجالت الموجودة في الجدول االول‬
                                                              ‫وال توجد في الجدول الثاني‬
  ‫‪Projection‬‬              ‫‪Unary‬‬               ‫إظھار السجالت مع بعض األعمدة )مصدر‬
                                                                               ‫البيانات(‬
  ‫‪Selection‬‬               ‫‪Unary‬‬           ‫إظھار السجالت من جدول مصدر البيانات تبعا‬
                                                                 ‫لمعيار البحث ‪Criteria‬‬
   ‫‪Product‬‬                ‫‪Unary‬‬              ‫وصل كل سجل من جدول البيانات االول مع‬
                                                              ‫كل سجل في الجدول الثاني‬
       ‫‪Join‬‬               ‫‪Unary‬‬             ‫وصل وتمديد السجالت من الجدول األول مع‬
                                                   ‫مايقابله من سجالت في الجدول الثاني‬
‫‪moon‬‬


       ‫مكونات قاعدة البيانات العالئقية ‪RDBMS Components‬‬

                                                      ‫تتكون قاعدة البيانات العالئقية من :‬

                                  ‫١- نظام تشغيل ثاعدة البيانات ويطلق عليه ‪Kernel‬‬
                                           ‫٢- قاموس البيانات ‪Data Dictionary‬‬

    ‫ويتكون نظام تشغيل وتنظيم قاعدة البيانات )‪ (Kernel‬من مجموعة من الوحدات البرمجية‬
    ‫‪ Software‬والذي صمم ليحكم وينظم وينعامل مع البيانات مابين حفظ واسترجاع وطباعة‬
                               ‫وكذلك تحديد المسؤليات وعمل نظم األمان وحماية البيانات‬
 ‫وعادة يحتفظ نظام قاعدة البيانات بقائمة من المستخدمين الذين لھم صالحية للتعامل مع تطبيق‬
         ‫قاعدة البيانات والشكل التالي يوضح بعضا من مكونات الـ ‪ Kernel‬في نظام أوراكل‬




                     ‫مكونات الـ ‪ Kernel‬في نظم قاعدة البيانات‬

  ‫ويحوي قاموس البيانات ‪ Data Dictionary‬وصفا لشكل البيانات ويطلق على ھذا الوصف‬
‫‪ Meta Description‬أو ‪ Meta Data‬وھذا الوصف يرتبط بكافة الكائنا ت ‪ Objects‬ضمن‬
                                                                   ‫قاعدة البيانات‬
‫وقاموس بيانات أوراكل يحتوي على مجموعة جداول تضم البيانات المخزنة عن طريق‬
‫الـ ‪ Kernel‬وأيضا على كائنات الفھارس ‪Indexes‬كائنات العرض ‪ Views‬كائنات االستعالم‬
    ‫واالستقسار ‪ SQL and Query‬كائنات اإلجراء ‪ Procedure‬والدوال ‪... Function‬إلخ‬
‫‪moon‬‬


          ‫الشكل التالي يوضح كيفية قراءة أو تعديل قاعدة بيانات باستخدام أوراكل‬




       ‫شكل العالقة بين ‪ Kernel‬و ‪ SQL‬و قاموس البيانات‬
‫‪moon‬‬


                 ‫العالقة بين الخادم والمستفيد)العميل( ‪Client/Server‬‬

                                                                 ‫يتكون نظام أوراكل من مكونين‬
                                                                        ‫١- الخادم ‪Server‬‬
                                                       ‫٢- المستفيد )العميل – المزود( ‪Client‬‬

                                                                                    ‫الخادم ‪Server‬‬

      ‫يحوي الخادم قاعدة البيانات المركزية ووظائفھا ، وكذلك كافة العمليات الخلفية لحفظ ھذه القاعدة‬
                                                  ‫ويحوي ايضا أدوات تشغيل وإيقاف قاعدة البيانات‬
                                                    ‫والشكل التالي يوضح البناء الداخلي لنظام الخادم‬
 ‫بروتكول اتصال‬
  ‫الشبكة 8‪Net‬‬
                                                                                      ‫مدير الخادم‬
                                                                                       ‫‪Server‬‬
                                                                                      ‫‪Manager‬‬




                                       ‫الخادم ‪Server‬‬
‫نظام االستيراد‬
  ‫والتصدير‬                                                                       ‫نظم االستعالم‬
 ‫&08‪EXP‬‬                                                                         ‫‪SQL * PLUS‬‬
   ‫08‪IMP‬‬


                        ‫المترجمات‬
                          ‫‪Pre‬‬                                        ‫نظام التحميل‬
                       ‫‪compliers‬‬                                     ‫‪LOADER‬‬




                                                                                    ‫المستفيد ‪Client‬‬

      ‫أما المستفيد ‪ Client‬فيحتوي على برامج الخدمات والبرامج المساعده والتي بمكننا تشغيلھا عن‬
     ‫بعد باستخدام الشبكة كما يتضمن نظام المستفيد الوسيط الرسومي ‪ Graphical Interface‬الذي‬
     ‫يسھل علينا استخدامه وتوجد أداة االتصال بين الخادم والمستقيد وھي8 ‪ Net‬لتقوم بعمليات الربط‬
                                                                         ‫واالتصال عبر الشبكة‬
‫‪moon‬‬


                                                 ‫و تشمل حزمة البرامج لنظام المستفيد على‬
                                            ‫١- مدير المشروع ‪Enterprise Manager‬‬
                                                        ‫ويحوي داخله المكونات التالية‬
                                ‫• متحكم مدير المشروع ‪Enterprise Manager‬‬
                               ‫• مدير مخطط قاعدة البيانات ‪Schema Manager‬‬
                                         ‫• مدير السرية ‪Security Manager‬‬
                                        ‫• مدير الطبعة ‪Instance Manager‬‬
                                         ‫• مدير التخزين ‪Storage Manager‬‬
                                            ‫• مدير البيانات ‪Data Manager‬‬
                ‫• مدير النسخ االحتياطي للبيانات ‪Backup and Recovery Manager‬‬
                                    ‫• ورقة عمل االستعالم ‪SQL Worksheet‬‬
                            ‫• شريط أدوات المسؤول ‪Administrator Toolbar‬‬

‫بروتكول اتصال‬                                                 ‫٢- المساعدون ‪Assistants‬‬
    ‫الشبكة‬                                                 ‫٣- نظام االستعالم ‪SQL*PLUS‬‬
   ‫)8‪(Net‬‬
                                      ‫والشكل التالي يوضج مكونات حزمة البرامج للمستفيد ‪Client‬‬

                                           ‫نظام االستعالم ‪SQL*PLUS‬‬
                                              ‫المساعدون ‪Assistants‬‬
                                        ‫مدير المشروع ‪Enterprise Manager‬‬
                     ‫متحكم مدير المشروع‬     ‫ورقة عمل االستعالم ‪ SQL‬مدير مخطط قاعدة البيانات‬
                    ‫‪Enterprise Manager‬‬        ‫‪Schema Manager‬‬             ‫‪Worksheet‬‬

                     ‫مدير السرية ‪Security‬‬    ‫مدير النسخ االحتياطي للبيانات‬   ‫مدير الطبعة ‪Instance‬‬
                         ‫‪Manager‬‬             ‫‪Backup and Recovery‬‬                  ‫‪Manager‬‬
                                                       ‫‪Manager‬‬

                      ‫مدير البيانات ‪Data‬‬       ‫مدير التخزين ‪Storage‬‬           ‫شريط أدوات المسؤول‬
                         ‫‪Manager‬‬                    ‫‪Manager‬‬                    ‫‪Administrator‬‬
                                                                                  ‫‪Toolbar‬‬



                                                                                ‫ملخص الوحدة‬

       ‫تناولنا في ھذا الفصل تعريف التركيب الداخلي لنظام أوراكل وأھم مكوناته والعالقة بين الجداول‬
            ‫، وكذلك عملية نمذجة العالقة على الجداول وتم تعريف الخادم والمستفيد والعالقة بينھما .‬
‫‪moon‬‬


                          ‫جمل ‪ SQL‬البسيطة‬

                                                                   ‫أھداف الفصل‬

  ‫نتااول عملية استرجاع البيانات في حاالت مختلفة مستخدمين في ذلك جملة ‪ SELECT‬وفي‬
                                    ‫نھاية ھذا الفصل ستكون إن شاء ﷲ قادر على :‬
                        ‫• استرجاع البيانات بواسطة جملة ‪ SELECT‬البسيطة‬
                                 ‫• فھم متطلبات وإرشادات كتابة جمل ‪SQL‬‬
                  ‫• استخدام العمليات الحسابية وأولويات تنفيذھا مع جمل ‪SQL‬‬
                                      ‫• استخدام الجمل اإللحاقية على البيانات‬
                   ‫• استخدام عبارة ‪ DISTINCT‬لمنع تكرار عرض البيانات‬
                                                 ‫• عرض مواصفات الجدول‬
‫‪moon‬‬


                          ‫أساسيات جملة ‪SELECT‬‬

                                                                    ‫جملة ‪SELECT‬‬
 ‫تستخدم جملة ‪ SELECT‬السترجاع البيانات المخزنة في جدول أو عدة جداول حيث أن عملية‬
       ‫االسترجاع ال تعدل في ھذه البيانات ويمكننا من خالل جملة ‪ SELECT‬أن نقوم بالتالي:‬

                    ‫١- اختيار وعرض مجموعة معينة من السجالت المخزنة في الجدول‬
                                             ‫٢- استرجاع بيانات بعض حقول الجدول‬
                                        ‫٣- استرجاع بيانات مخزنة في جداول مختلفة‬

                                                                              ‫مالحظة‬
                           ‫يمكن أن نستخدم كل أو بعض ھذه المزايا في جملة استفسار واحدة‬

                                                                                 ‫مالحظة‬
                                                               ‫أوامر محرر‪SQL*PLUs‬‬
‫ھنالك بعض االوامر البسيطة التي ستساعدك في كتابة وتحرير وتنفيذ األوامر على محرر ‪SQL‬‬
                                                                                   ‫ومنھا‬
  ‫١- االمر ‪ EDIT‬ويمكن كتابته ‪ : ED‬يستخدم ھذا األمر لتحرير آخر امر تم كتابته على‬
    ‫محرر ‪ SQL‬وعند تنفيذ ھذا األمر ستفتح لك شاشة المحرر )المفكرة( التي يمكنك‬
  ‫خاللھا اعادة تحرير األمر وعند االنتھاء من ذلك احفظ االمر ثم اغلق شاشة المفكرة‬
        ‫ولكن الحظ ال تكتب الفاصلة المنقوطة );( بعد نھاية األمر في ھذه الحالة فقط‬
           ‫٢- األمر ‪ R‬وطريقة كتابته )/( ويستخدم العادة تنفيذ اخر امر ‪SQL‬محفوظ‬

                                                          ‫الشكل العام لجملة ‪SELECT‬‬

‫}… ,]‪SELECT { * , COLUMN [alies‬‬
‫; ‪FROM table_name‬‬

                                                                              ‫حيث أن‬
                                                               ‫‪ COLUMN‬اسم الحقل‬
                                                              ‫‪ table_name‬اسم الجدول‬
                                                             ‫تسمية العمود‬       ‫‪alies‬‬

                           ‫يمكن أن نضع الرمز * للداللة على استرجاع جميع حقول الجدول‬

                                                                    ‫كتابة جمل ‪SQL‬‬
    ‫نوضح فيما يلي بعض القواعد اإلرشادية التي يجب أن توضع بعين االعتبار عند كتابة جمل‬
                                                                                ‫‪SQL‬‬

                              ‫١- يمكن كتابة جمل ‪ SQL‬بالحروف الكبيرة أو الصغيرة‬
                                             ‫٢- يمكن كتابة جمل ‪ SQL‬في عذة أسطر‬
‫‪moon‬‬


                       ‫٣- ال يمكن فصل الكلمات المحجوزة عبر السطور مثل ‪FROM‬‬
                           ‫٤- اترك مساقات بين مكونات الجملة لتسھيل عملية القراءة‬
    ‫٥- في برنامج ‪ SQL *PLUS‬تكتب األوامر مع مؤشر ‪ SQL‬ويتم تخزين ھذا االمر‬
                                                             ‫مباشرة في الذاكرة‬


                                                                               ‫مثال‬
‫;‪SELECT * FROM s_dept‬‬


         ‫‪ID‬‬        ‫‪NAME‬‬                                   ‫‪REGION_ID‬‬
   ‫--------‬        ‫-------------‬                         ‫----------‬

        ‫‪10 Finance‬‬                                                      ‫1‬
        ‫‪31 Sales‬‬                                                        ‫1‬
        ‫‪32 Sales‬‬                                                        ‫2‬
        ‫‪33 Sales‬‬                                                        ‫3‬
        ‫‪34 Sales‬‬                                                        ‫4‬
        ‫‪35 Sales‬‬                                                        ‫5‬
        ‫‪41 Operations‬‬                                                   ‫1‬
        ‫‪42 Operations‬‬                                                   ‫2‬
        ‫‪43 Operations‬‬                                                   ‫3‬
        ‫‪44 Operations‬‬                                                   ‫4‬
        ‫‪45 Operations‬‬                                                   ‫5‬
        ‫‪50 Administration‬‬                                               ‫1‬
‫.‪12 rows selected‬‬

                                                                 ‫لتنفيذ جمل ‪SQL‬‬
                           ‫نضع فاصلة منقوطة في نھاية الجملة في مؤشر ‪SQL‬‬      ‫١-‬
‫نضع عالمة / في نھاية الجملة في مؤشر ‪ SQL‬العادة اخر امرموجود في ال)‪(Buffer‬‬    ‫٢-‬
                 ‫نضع عالمة / في نھاية الجملة في األمر في الذاكرة )‪(BUFFER‬‬    ‫٣-‬
   ‫كتابة عبارة ‪ RUN‬او ‪ R‬في مؤشر ‪ SQL‬العادة اخر امرموجود في ال)‪(Buffer‬‬        ‫٤-‬
‫‪moon‬‬




                               ‫العمليات الحسابية‬

      ‫يمكن أن نستخدم العمليات الحسابية عند عرض البيانات دون أن تؤثر ھذه المعالجة على‬
 ‫البياانات المخزنة في الجدول ، ويمكن أن يحتوي التعبير الحسابي على اسم الحقل قيمة ثابتة و‬
                                                                        ‫العملية الحسابية‬

                                                                        ‫العمليات الحسابية‬

                                                       ‫العمليات التي يمكن أن تستخدم ھي:‬
                                                                     ‫+‬        ‫١- الجمع‬
                                                                      ‫-‬      ‫٢- الطرح‬
                                                                     ‫÷‬       ‫٣- القسمة‬
                                                                     ‫*‬     ‫٤- الضرب‬

 ‫ويمكن استخدام ھذه العمليات في جميع أجزاء جملة‪ SELECT‬عدا الجزء الخاص بـ‪FROM‬‬

                                                                         ‫أولويات العمليات‬
                                                     ‫١- االفواس الداخلية ثم الخارجية‬
                                                                 ‫٢- الضرب والقسمة‬
                                                                   ‫٣- الجمع والطرح‬

                                                                             ‫مالحظة‬
                ‫العمليات التي لھا نفس االولية كالجمع والطرح تنفذ من اليسار الى اليمين‬


                                                                  ‫العملية اإللحاقية‬

 ‫يمكن أن نجري عملية إلحاق عدد من األعمدة للجدول أو مجموعة حرفية نصية إلى حقول‬
                                   ‫أخرى عند العرض باستخدام العملية اإللحاقية ||‬

                                                                                ‫مثال‬
‫‪SELECT‬‬       ‫‪first_name||last_name‬‬
‫‪FROM‬‬         ‫;‪s_emp‬‬

‫‪Employees‬‬
‫-------------------------------------------------‬
‫‪CarmenVelasquez‬‬
‫‪LaDorisNgao‬‬
‫‪MidoriNagayama‬‬
‫‪MarkQuick-To-See‬‬
‫‪moon‬‬


‫‪AudryRopeburn‬‬
‫‪MollyUrguhart‬‬
‫...‬


‫نالحظ ان االسم االول اتصل باالسم االخير بدون وجود مسافات فظھر كانه اسم واحد ولكي‬
                                                              ‫توجد مسافات نكتب‬

‫;‪SELECT first_name ||' '|| last_name FROM s_emp‬‬


                                                 ‫استخدام عبارة ‪DISTINCT‬‬

‫تستخدم عبارة ‪ DISTINCT‬لمنع تكرار ظھور بيانات السجل المسترجع فمثال إذا أردنا أن‬
‫نعرف على الوائف التي ينتسب إليھا الموظفون والمخزنة في جدول الموظفين نجد أن ھنالك‬
           ‫وظائف تتكرر حسب عدد الموظفين الذين ينتمون إليھا لمنع تكرار نستخدم عبارة‬
                                                                      ‫‪DISTINCT‬‬

                              ‫ويأخذ األمر ‪ SELECT‬الشكل التالي:‬
‫}… ,]‪SELECT [DISTINCT] { * , COLUMN [alies‬‬
‫; ‪FROM table_name‬‬


                                                                             ‫حيث أن‬
                                                              ‫‪ COLUMN‬اسم الحقل‬
                                                             ‫‪ table_name‬اسم الجدول‬
                                                            ‫تسمية العمود‬       ‫‪alies‬‬
                                                           ‫‪ DISTINCT‬لمنع التكرار‬



                                                                       ‫ملخص الفصل‬

 ‫تناولنا في ھذا الفصل كتابة جمل ‪ SQL‬البسيطة )جملة ‪ (SELECT‬التي تستخدم في‬
 ‫استرجاع البيانات وكذلك بعض القواعد اإلرشادية التي يجب اتباعھا عند كتابة وتنفيذ جمل‬
   ‫الـ‪ SQL‬كما تناولنا استخدام العمليات الحسابية مع جملة ‪ SELECT‬والعملية اإللحاقية‬
                     ‫وكذلك عبارة ‪ DISTINCT‬التي تستخدم لمنع تكرار ظھور السجالت‬
‫‪moon‬‬


               ‫استرجاع البيانات بشروط ترتيبھا‬


                                                               ‫اھداف الفصل‬
       ‫١- المعرفة التامة ألسماء الجداول وأسماء الحقول وخصائصھا وانواع البيانات‬
                     ‫٢- التعامل مع جملة ‪ SQL‬البسيطة )‪(SELECT Statement‬‬
                                               ‫٣- استخدام أوامر محرر ‪SQL‬‬
‫‪moon‬‬



                 ‫استخدام جملة الشرط ‪WHERE CLAUSE‬‬
                                                                                    ‫مقدمة‬

   ‫لقد قمنا في الوحدة السابقة بالتعرف الى جملة االستعالم البسيط )‪(SELECT Statement‬‬
    ‫التي من خاللھا تم استرجاع البيانات من الجداول . وفي ھذا الفصل سنتابع الحديث عن ھذه‬
   ‫الجملة يشكل أوسع ، حيث سنسترجع البيانات من الجداول بناء على شروط معينة ، أو مرتبة‬
‫حسب بيانات حقول معينة ، أي سندرس االمور المتعلقة بجملة الشرط في جملة االسترجاع ، من‬
  ‫حيث المعامالت الشرطية وطريقة التعبير عن الشرط والترتيب التصاعدي والترتيب التنازلي‬
                                                                               ‫للبيانات‬

                                                             ‫الصيغة العامة لجملة الشرط‬

‫}*|...,... ,2‪SELECT {Field1, Field‬‬
‫1‪FROM Table‬‬
‫;‪WHERE Condition‬‬

                                                                                   ‫حيث أن‬

                        ‫أسماء الحقول التي سيام استرجاع بياناتھا‬        ‫2‪Field1.Field‬‬
                     ‫أسم الجدول الذي سيتم استرجاع البيانات منه‬               ‫1‪Table‬‬
  ‫جملة شرطية أو أكثر تكون نتيجتھا إما ‪ True‬او ‪ False‬وتتكون من‬             ‫‪Condition‬‬
                                 ‫أسماء حقول وتعبيرات ومعامالت‬

                                                                                   ‫الشرح‬

 ‫تستخدم جملة ‪ WHERE‬لحصر البيانات التي سيتم استرجاعھا من الجداول وھي تحتوي على‬
     ‫شرط وتقع مباشرة بعد المقطع ‪ FROM‬وعند تنفيذ الجملة سيتم استرجاعھا بيانات الحقول‬
‫المذكورة التي تحقق الشرط المذكور في جملة ‪ WHERE‬ويمكن أن تقارن الجملة الشرطية بين‬
       ‫قيم أو حقول في الجدول أو تعبيرات حسابية أي أن جملة ‪ WHERE‬تحتوي على مايلي:‬

                                                                 ‫أسماء الحقول‬       ‫•‬
                                                              ‫معامالت المقارنة‬      ‫•‬
                                                                       ‫قيم ثابتة‬    ‫•‬
                                                      ‫متغيرات وتغبيرات حسابية‬       ‫•‬
‫‪moon‬‬


                                           ‫األمور التي يجب أخذھا بعين االعتبار‬

  ‫١- عند استخدام حقول النص وحقول التاريخ في جملة الشرط يجب وضع القيم بين عالمتي‬
                                                           ‫تنصيص مفردتين )’ ’(‬
                   ‫٢- في حالة الحقول النصية يجب مراعاة حالة األحرف كبيرة أو صغيرة‬
  ‫٣- في حالة حقول التاريخ يجب مراعاة صيغة التاريخ )‪ (FORMAT‬والصيغة األسا سية‬
                                                ‫للتاريخ ھي كما يلي ‪DD-MON-YY‬‬
‫‪moon‬‬


       ‫معامالت المقارنة ‪COMPARISON OPERATORS‬‬
                                                   ‫تشمل معامالت المقارنة الرموز التالية:‬

                ‫المعنى‬                                        ‫المعامل‬
                ‫يساوي‬                                           ‫=‬
                ‫أكبر من‬                                         ‫>‬
                ‫أقل من‬                                          ‫<‬
            ‫أكبر من أو يساوي‬                                   ‫=>‬
            ‫اقل من أو يساوي‬                                    ‫=<‬
               ‫ال يساوي‬                                        ‫><‬
               ‫ال يساوي‬                                         ‫=!‬

   ‫تستخدم معامالت المقارنة في جملة الشرط لمقارنة تعبير بآخر في جملة ‪ WHERE‬كما في‬
                                                                   ‫الصيغة التالية :‬

‫ﺗﻌﺒﻴﺮ ‪ OPERATOR‬ﺗﻌﺒﻴﺮ ‪WHERE‬‬

                                                                                    ‫مثال‬

‫’69-‪WHERE hiredate=’01-SEP‬‬
‫0051=>‪WHERE sal‬‬
‫’‪WHERE name=’Ahmed‬‬
‫‪WHERE sal<> other‬‬

                                                               ‫معامالت مقارنة أخرى‬

                      ‫المعنى‬             ‫نفى المعامل‬                         ‫المعامل‬
                  ‫بين قيمتين‬       ‫‪NOT BETWEEN‬‬                           ‫‪BETWEEN‬‬
        ‫ضمن قائمة من القيم‬                ‫‪NOT IN‬‬                                ‫‪IN‬‬
          ‫مطابقة نمط النص‬               ‫‪NOT LIKE‬‬                              ‫‪LIKE‬‬
        ‫ھل ھي قسمة فارغة‬            ‫‪IS NOT NULL‬‬                           ‫‪IS NULL‬‬


                                                             ‫١- المعامل ‪BETWEEN‬‬
 ‫يستخدم ھذا المعامل السترجاع بيانات الصفوف التي تعتمد على مدى من القيم أي البيانات التي‬
                                                                         ‫تقع بين قيمتين‬

                                                                                   ‫مثال‬

‫‪SELECT * FROM S_EMP‬‬
‫;0052 ‪WHERE sal BETWEEN 1500 AND‬‬
‫‪moon‬‬


‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين اقع رواتبھم بين ٠٠٥١و ٠٠٥٢‬

                                                                            ‫مالحظة‬
          ‫ستم استرجاع بيانات الموظف الذي يببلغ راتبه تماما ٠٠٥١ أو ٠٠٥٢ أي أن جملة‬
               ‫‪ BETWEEN‬تتضمن الحد األعلى والحد األدنى للقيم التي سيتم استرجاعھا‬

                                                                           ‫٢- المعامل ‪IN‬‬

   ‫يستخدم ھذا المعامل للبحث عن قيمة داخل قائمة من القيم فتحتوي ھذه القائمة قيما ثابتة أو قد‬
                                               ‫تكون ھذه القائمة عبارة عن جملة استعالم فرعي‬

                                                                                      ‫مثال‬

‫‪SELECT name, sal , deptno FROM S_EMP‬‬
‫;)03,01( ‪WHERE detno IN‬‬

‫أي أنه سيتم استرجاع اسم الموظف وراتبه ورقم القسم الذي يعمل به للموظفين الذين يعملون في‬
                                                            ‫قسم رقم ٠١ أو قسم رقم ٠٣‬


                                                                      ‫٣- المعامل ‪.LIKE‬‬

 ‫يستخدم ھذا المعامل للبحث عن نص معين داخل حقل نصي ، حيث سيتم مطابقة حروف النص‬
                                                     ‫المذكورة في جملة الشرط‬

                                                                                      ‫مثال‬
‫‪SELECT * FROM S_EMP‬‬
‫;’%‪WHERE name LIKE ‘S‬‬

                    ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين تبدأ أسماؤھم بحرف ‪S‬‬

                                                                         ‫مالحظة‬
‫تستخدم االشارة % عوضا عن أي قيمة نصية ، قد تكون ال شيء أو أي عدد من الحروف للبحث‬
  ‫مثال عن اسم معين ينتھي بحرف ‪ A‬نكتب ’‪ ‘%A‬وللبحث عن نص يحتوي حرف ‪ A‬نكتب‬
                   ‫’%‪ ‘%A‬وھكذا بإمكاننا أن نبحث عن أي مقطع داخل حقل نصي معين‬

                                                                                      ‫مثال‬

‫‪SELECT * FROM S_EMP‬‬
‫;’%‪WHERE name LIKE ‘_A‬‬
‫‪moon‬‬


‫أي أنه سيتم استرجاع جمبع بيانات الموظفين الذين يكون الحرف الثاني في أسمائھم ھو ‪A‬‬

‫مالحظة‬
                                              ‫تستخدم اإلشارة _ عوضا عن حرف واحد فقط‬

                                                                ‫٤- المعامل ‪IS NULL‬‬

           ‫يستخدم ھذا المعامل لفحص القيمة )ال شيء( أي قيم القول التي ال تحتوي على بيانات‬

                                                                                   ‫مثال‬
‫‪SELECT name, sal FROM S_EMP‬‬
‫;‪WHERE comm. IS NULL‬‬

     ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين ليس لھم عمولة أو لم يتم ادخال‬
                                                                               ‫عمولتھم‬


                             ‫المعامالت المنطقية ‪LOGICAL OPERATORS‬‬
                                                          ‫المعنى‬                 ‫المعامل‬
                          ‫يرجع ‪ TRUE‬اذا كانت كلتا القيمتين ‪TRUE‬‬                  ‫‪AND‬‬
                         ‫يرجع ‪ TRUE‬اذا كانت احدى القيمتين ‪TRUE‬‬                     ‫‪OR‬‬
                             ‫يرجع ‪ TRUE‬إذا كانت القيمة ‪FALSE‬‬                      ‫‪NOT‬‬

       ‫تستخدم المعامالت المنطقية لترجع قيمة واحدة ‪ TRUE‬أو ‪ FALSE‬كنتيجة بين قيمتين‬
                          ‫منطقيتين او لعكس قيمة منطقية من ‪ TRUE‬الى ‪ FALSE‬والعكس‬
    ‫من خالل المعامالت المنطقية يمكننا تكوين أكثر من شرط داخل جملة ‪ WHERE‬باستخدام‬
                                                    ‫المعامل‪ AND‬او المعامل ‪OR‬‬

                                                                      ‫١- المعامل ‪AND‬‬

                                          ‫يتطلب ھذا المعامل أن تكون كال القيمتين ‪TRUE‬‬

                                                                                   ‫مثال‬
‫‪SELECT name, sal FROM S_EMP‬‬
‫;002<‪WHERE sal>=2600 AND comm‬‬

         ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين يزيد راتبھم عن ٠٠٦٢ وتقل‬
             ‫عمولتھم في نفس الوقت عن ٠٠٢ أي انه يجب يتحقق الشرطين السترجاع البيانات‬
‫‪moon‬‬


                                                                      ‫٢- المعامل ‪OR‬‬

                                      ‫يتطلب ھذا المعامل أن تكون أي من القيمتين ‪TRUE‬‬

                                                                                 ‫مثال‬
‫‪SELECT name, sal FROM S_EMP‬‬
‫;03=‪WHERE sal <200٠ OR deptno‬‬

 ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموفين الذين يزيد راتبھم عن ٠٠٠٢ أو يعملون في‬
                      ‫قسم رقم ٠٣ أي أنه يجب يتحقق أي من الشرطين السترجاع البيانات‬

                                                                    ‫المعامل ‪NOT‬‬          ‫٣-‬

                    ‫يقوم ھذا المعامل بعكس قيمة منطقية من ‪ TRUE‬إلى ‪ FALSE‬والعكس‬

‫مثال‬
‫‪SELECT name, sal FROM S_EMP‬‬
‫;)04,02( ‪WHERE deptno NOT IN‬‬

‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين ال يعملون في القسمين رقم ٠٢ و رقم‬
                                            ‫٠٤ وفي ھذه الحالة تم عكس نتيجة المعامل ‪IN‬‬
‫‪moon‬‬


               ‫أولويات المعامالت المنطقية ومعامالت المقارنة‬
‫إذا ورد أكثر من معامل منطقي في نفس جملة الشرط فإن أولوية تنفيذ ھذه المعامالت من األعلى‬
                                                                ‫إلى األدتى غي كالتالي :‬

                                                                          ‫األقواس‬          ‫١-‬
                                                ‫معامالت المقارنة )> ، < ، = ، ><(‬          ‫٢-‬
                                                                           ‫‪NOT‬‬             ‫٣-‬
                                                                           ‫‪AND‬‬             ‫٤-‬
                                                                             ‫‪OR‬‬            ‫٥-‬

                                                   ‫استخدام جملة الترتيب ‪ORDER BY‬‬

                                                                          ‫الصيغة العامة‬
‫}*|…,…,2‪SELECT {Field1, Field‬‬
‫1‪FROM Table‬‬
‫‪WHERE Condition‬‬
‫;]‪ORDER BY Field3 [ASC|DESC‬‬

                                                                                ‫حيث أن‬

                     ‫اسم الجدول الذي سيتم استرجاع البيانات منه‬                ‫1‪Table‬‬
                        ‫اسماء الحقول التي سبتم استرجاع بياناتھا‬        ‫2‪Field1, Field‬‬
  ‫جملة شرطية أو اكثر تكون نتيجتھا إما ‪ True‬أو ‪ False‬وتتكون من‬             ‫‪Condition‬‬
                        ‫اسماء حقول وتعبيرات ومعامالت منطقية‬
                           ‫اسم الحقل الذي سيتم الترتيب بناء عليه‬                ‫3‪Field‬‬
              ‫استرجاع البيانات مرتبة تصاعديا ويجوز عدم ذكرھا‬                     ‫‪ASC‬‬
                                   ‫استرجاع البيانات مرتبة تنازليا‬               ‫‪DESC‬‬


                                                                                ‫الشرح‬

 ‫عند استرجاع البيانات تستخدم جملة ‪ ORDER BY‬لترتيب البيانات حسب حقل معين أو‬
     ‫عدة حقول وتأتي ھذه الجملة في نھاية جملة االسترجاع ‪ SELECT‬وقد يكون ھذا الترتيب‬
 ‫تصاعديا )من القيمة الصغيرة إلى القيمة الكبيرة ( عند استخدام المقطع ‪ ASC‬وقد يكون تنازليا‬
                        ‫)من الفيمة الكبيرة إلى القيمة الصغيرة( عند استخدتم المقطع ‪DESC‬‬

                                                                                    ‫مثال‬
‫‪SELECT * FROM S_EMP‬‬
‫)04,02( ‪WHERE deptno NOT IN‬‬
‫;‪ORDER BY empno ASC‬‬
‫‪moon‬‬



       ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين ال يعملون في القسمين رقم ٠٢ ورقم‬
                                  ‫٠٤وستكون البيانات مرتبة تصاعديا حسب رقم الموظف‬

                                    ‫ويجوز كتابة الجملة السابقة دون المقطع ‪ ASC‬كمايلي:‬

‫‪SELECT * FROM S_EMP‬‬
‫)04,02( ‪WHERE deptno NOT IN‬‬
‫;‪ORDER BY empno‬‬


                                                                                  ‫مثال‬
‫‪SELECT * FROM S_EMP‬‬
‫)04,02( ‪WHERE deptno NOT IN‬‬
‫;‪ORDER BY empno DESC‬‬

       ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين ال يعملون في القسمين رقم ٠٢ ورقم‬
                                    ‫٠٤وستكون البيانات مرتبة تنازليا حسب رقم الموظف‬



                                                                       ‫ملخص الفصل‬

 ‫تناولنا من خالل ھذا الفصل موضوع استرجاع البيانات بشروط من الجداول وموضوع ترتيب‬
    ‫البيانات تصاعديا وتنازليا كما وتطرقنا من خالل دراسة جملة الشرط إلى معامالت المقارنة‬
 ‫والمعامالت المنطقية ومعامالت أخرى مثل ‪BETWEEN‬و ‪IN‬و ‪ IS NULL‬ومايتعلق بھا‬
      ‫من حيث طريقة االستخدام وتركيب جملة الشرط وأولويات معامالت المقارنة والمعامالت‬
                                                                             ‫المنطقية.‬
‫‪moon‬‬


                                               ‫الدوال الحرفية‬
                                                   ‫اھداف الفصل‬

                    ‫في نھاية ھذا الفصل إن شاء ﷲ ستكون قادر على :‬
       ‫تحويل الحروف من صغيرة إلى كبيرة وبالعكس من خالل ‪SQL‬‬          ‫١-‬
             ‫ضبط ومحاذاة الحروف داخل النص الموجود في‪SQL‬‬             ‫٢-‬
                                ‫القيام بحذف البيانات من الجداول‬     ‫٣-‬
                               ‫التعامل مع اللفظ الصوتي للبيانات‬     ‫٤-‬
                                      ‫القيام بتعديل بيانات الجدول‬   ‫٥-‬
‫‪moon‬‬


                       ‫الدال الحرفية والضبط والمحاذاة‬
                  ‫دالة تحويل البيانات إلى حروف صغيرة ‪LOWER Function‬‬

‫تسنخدم ھذه الدالة لتحويل البيانات من حروف كبيرة إلى حروف صغيرة ويتم استخدام ھذه الدالة‬
                                                                 ‫غاليا مع جمل أخرى‬

                                                          ‫الشكل العام انظر المثال التالي‬

                                                                                 ‫مثال .‬
‫)‪SELECT LOWER (name), LOWER (job‬‬
‫;‪FROM S_EMP‬‬

                                 ‫سيتم عرض اسم الموظف ووظبقته ولكن بحروف صغيرة‬

‫‪LOWER name‬‬                          ‫‪LOWER job‬‬
‫--------------------‬                ‫--------------------‬
‫‪ali‬‬                                 ‫‪salesman‬‬
‫‪ahmed‬‬                               ‫‪analyst‬‬
‫‪sami‬‬                                ‫‪manager‬‬
‫‪khaled‬‬                              ‫‪manager‬‬



                     ‫دالة تحويل البيانات إلى حروف كبيرة ‪UPPER Function‬‬

‫تسنخدم ھذه الدالة لتحويل البيانات من حروف صغيرة إلى حروف كبيرة ويتم استخدام ھذه الدالة‬
                                                                 ‫غاليا مع جمل أخرى‬

                                                                                   ‫مثال‬
‫)‪SELECT UPPER (name), UPPER (job‬‬
‫;‪FROM S_EMP‬‬


                ‫دالة تحويل الحرف األول من البيانات إلى حرف كبير ‪INITCAP‬‬

‫تستخدم ھذه الدالة لتحويل أول حرف من بيانات الحقل المحدد إلى حرف كبير ويتم استخدام ھذه‬
                                                          ‫الدالة غالبا مع الجمل أخرى‬

                                                                                   ‫مثال‬
‫)‪SELECT INITCAP (name), INITCAP (job‬‬
‫;‪FROM S_EMP‬‬
‫‪moon‬‬



               ‫سيتم عرض اسم الموظف ووظبقته ولكن اول حرف في كالھما سيكون كبير‬


‫‪INITCAP name‬‬                   ‫‪INITCAP job‬‬
‫--------------------‬           ‫--------------------‬
‫‪Ali‬‬                            ‫‪Salesman‬‬
‫‪Ahmed‬‬                          ‫‪Analyst‬‬
‫‪Sami‬‬                           ‫‪Manager‬‬
‫‪Khaled‬‬                         ‫‪Manager‬‬



                         ‫دالة اقتطاع )قص( جزء من بيانات الحقل ‪SUBSTR‬‬

                          ‫تستخدم لعرض أو قص جزء معين من بيانات العمود او الحقل‬

                                                                      ‫الصيغة العامة‬

‫)‪SUBSTR(Field1,N,M‬‬
                                                                           ‫حيث أن‬
                                          ‫الحقل المراد االقتطاع منه‬        ‫‪String‬‬
                                        ‫اول حرف يبدأ عنده االقتطاع‬              ‫‪N‬‬
                                       ‫عدد الحروف المراد اقتطاعھا‬              ‫‪M‬‬

                                                                              ‫مثال‬

‫)3,1,'‪SUBSTR('Ahmed‬‬

‫قيكون الناتج‬
‫‪Ahm‬‬


‫مثال‬
‫)2,1 ,‪SELECT SUBSTR (name‬‬
‫;‪FROM S_EMP‬‬

                          ‫سيتم اقتطاع الحرف األول والثاني من اسم الموظف وعرضھا‬
‫‪moon‬‬


                     ‫دالة تحديد موقع حرف في بيانات حقل ‪INSTR Function‬‬

                    ‫تستخدم ھذه الدالة لتحديد مكان أو موقع حرف في بيانات العمود أو الحقل‬

                                                                            ‫الصيغة العامة‬
‫)’‪INSTR (Field, ‘C‬‬


‫حيث أن‬

                                              ‫الحقل الذي سيتم التحديد منه‬         ‫‪Field‬‬
                                          ‫الحرف المراد استخراج موقعه‬                 ‫‪C‬‬

‫مثال‬
‫)’‪SELECT INSTR (name, ‘l‬‬
‫;‪FROM S_EMP‬‬

                                       ‫سيتم استخراج موقع الحرف ‪ l‬من حقل اسم الموظف‬

‫‪INSTR name‬‬
‫--------------------‬
‫2‬
‫0‬
‫0‬
‫4‬



                   ‫دالة ضبط ومحاذاة ناحية اليمين للبيانات ‪RPAD Function‬‬

  ‫تستخدم ھذه الدالة لمحاذاة البيانات ناحية اليمين حيث يتم ملء حرف معين )أو حروف ( يمين‬
                                                                                ‫البيانات‬

                                                                              ‫الشكل العام‬

‫)’‪RPAD (COL | VALUE, N, ‘ String‬‬

                                                                                 ‫حيث أن‬

           ‫اسم الحقل المطلوب محاذاة بياناته ، ووضع حرف )حروف( يمينه‬             ‫‪COL‬‬
                ‫يمكن وضع قيمة أو متغير حرفي بين عالمتي تنصيص )" "(‬            ‫‪VALUE‬‬
                                       ‫عدد مرات ظھور الحرف الجديد‬                 ‫‪N‬‬
‫‪moon‬‬


                            ‫الحرف أو المتغير الذي سيتم ملء الفراغات به‬         ‫‪String‬‬

                                                                                  ‫مثال‬
‫)’$’,7 ,‪SELECT name, RPAD (sal‬‬
‫;‪FROM S_EMP‬‬

‫‪NAME‬‬         ‫‪RPAD SAL‬‬
‫-------------------- --------------------‬
‫‪Ali‬‬                   ‫$$$$869‬
‫‪Ahmed‬‬                 ‫$$$6391‬
‫‪SAMI‬‬                  ‫$5.2151‬
‫‪KHALED‬‬                ‫57.9953‬



                   ‫دالة ضبط ومحاذاة ناحية اليسار للبيانات ‪LPAD Function‬‬

 ‫تستخدم ھذه الدالة لمحاذاة البيانات ناحية اليمين حيث يتم ملء حرف معين )أو حروف ( يسار‬
                                                                               ‫البيانات‬

                                                                            ‫الشكل العام‬

‫)’‪LPAD (COL | VALUE, N, ‘ String‬‬

                                                                               ‫حيث أن‬

          ‫اسم الحقل المطلوب محاذاة بياناته ، ووضع حرف )حروف( يمينه‬            ‫‪COL‬‬
               ‫يمكن وضع قيمة أو متغير حرفي بين عالمتي تنصيص )" "(‬           ‫‪VALUE‬‬
                                         ‫عدد مرات ظھور الف الجديد‬                 ‫‪N‬‬
                          ‫الحرف أو المتغير الذي سيتم ملء الفراغات به‬         ‫‪String‬‬

                                                                                  ‫مثال‬
‫)’#’,7 ,‪SELECT name, LPAD (sal‬‬
‫;‪FROM S_EMP‬‬

‫‪NAME‬‬                               ‫‪LPAD SAL‬‬
‫--------------------‬               ‫--------------------‬
‫‪Ali‬‬                                ‫869####‬
‫‪Ahmed‬‬                              ‫6391###‬
‫‪SAMI‬‬                               ‫5.2151#‬
‫‪KHALED‬‬                             ‫57.9953‬
‫‪moon‬‬


                    ‫حذف و تعديل البيانات‬
             ‫دالة حذف بيانات ناحية يمين الحقل ‪RTRIM Function‬‬

              ‫تستنخدم ھذه الدالة لحذف بيانات من ناية يمين العمود او الحقل المحدد‬

                                                                    ‫الصيغة العامة‬
‫)’‪RTRIM (COL | VALUE,‘ String‬‬

                                                                         ‫حيث أن‬

                                           ‫اسم الحقل أو العمود‬          ‫‪COL‬‬
                                            ‫القيمة البديلة للعمود‬     ‫‪VALUE‬‬
                     ‫قيمة الحرف أو المتغير الذي سيتم البحث عنه‬         ‫‪String‬‬

                                                                            ‫مثال‬

‫)’‪SELECT name, RTRIM (job،’man‬‬
‫;‪FROM S_EMP‬‬


                                           ‫سيتم حذف ‪ man‬من يمين العمود ‪job‬‬

‫‪name‬‬                       ‫‪RTRIM job‬‬
‫--------------------‬       ‫--------------------‬
‫‪ALI‬‬                        ‫‪Sales‬‬
‫‪AHMED‬‬                      ‫‪Analyst‬‬
‫‪SAMI‬‬                       ‫‪Manager‬‬
‫‪Khaled‬‬                     ‫‪Manager‬‬


                    ‫دالة حذف بيانات يسار الحقل ‪LTRIM Function‬‬

             ‫تستخدم ھذه الدالة لحذف بيانات من ناحية يسار العمود أو الحقل المحدد‬

                                                                      ‫الشكل العام‬
‫)’‪LTRIM (COL | VALUE,‘ String‬‬
‫‪moon‬‬


                                                                   ‫حيث أن‬

                                         ‫اسم القل أو العمود‬       ‫‪COL‬‬
                                        ‫القيمة البديلة للعمود‬   ‫‪VALUE‬‬
                 ‫قيمة الحرف أو المتغير الذي سيتم البحث عنه‬       ‫‪String‬‬

                                                                      ‫مثال‬

‫)’‪SELECT name, LTRIM (job،’man‬‬
‫;‪FROM S_EMP‬‬


                                       ‫سيتم حذف ‪ man‬من يسار العمود ‪job‬‬

‫‪name‬‬                   ‫‪LTRIM job‬‬
‫--------------------‬   ‫--------------------‬
‫‪ALI‬‬                    ‫‪Salesman‬‬
‫‪AHMED‬‬                  ‫‪Analyst‬‬
‫‪SAMI‬‬                   ‫‪ager‬‬
‫‪Khaled‬‬                 ‫‪ager‬‬


               ‫دالة قياس طول بيانات الحقل ‪LENGTH Function‬‬

                  ‫تستخدم ھذه الدالة إليجاد طول بيانات متغير أو الحقل المحدد‬

                                                                ‫الشكل العام‬
‫)‪LENGTH (COL | VALUE‬‬

                                                                      ‫مثال‬
‫)’‪SELECT LENGTH (name), LENGTH (‘WELCOME‬‬
‫;‪FROM S_EMP‬‬

                 ‫سيتم حساب طول اسم الموظف وطول كلمة ‪.WELCOME‬‬

‫‪LENGTH name‬‬            ‫’‪LENGTH ‘WELCOME‬‬
‫--------------------‬   ‫--------------------‬
‫3‬                      ‫7‬
‫5‬                      ‫7‬
‫4‬                      ‫7‬
‫6‬                      ‫7‬
‫‪moon‬‬



                       ‫دالة تعديل بيانات في جدول ‪TRANSLATE Function‬‬

                   ‫تستخدم ھذه الدالة لنعديل أو لتبديل بيانات موجودة في جدول معين‬

                                                                                ‫الشكل العام:‬
‫)‪TRANSLATE (COL|VALUE, FROM, TO‬‬


                                                                                     ‫حيث أن‬

                                                         ‫اسم القل أو العمود‬         ‫‪COL‬‬
                                             ‫القيمة البديلة للعمود )البيانات(‬     ‫‪VALUE‬‬
                                        ‫الحرف )الحروف( المطلوب تغييره‬              ‫‪FROM‬‬
                                        ‫الحرف )الحروف( المطلوب احالله‬                ‫‪TO‬‬


                                                                                        ‫مثال‬
‫)’‪SELECT name, TRANSLATE (name,’MI’,’WY‬‬
‫;5.2151=‪FROM S_EMP WHERE sal‬‬


                                               ‫سيتم استبدال الحرفين ‪ MI‬بالحرفين ‪WY‬‬

‫‪name‬‬                                 ‫)‪TRANSLATE(name‬‬
‫--------------------‬                 ‫--------------------‬
‫‪SAMI‬‬                                 ‫‪SAWY‬‬


                            ‫دالة عرض اللفظ الصوتي ‪SOUNDEX Function‬‬


‫تستخدم ھذه الدالة إليجاد اللفظ الصوتي للبيانات )المتغيرات( الموجودة في جدول معين حتى ولو‬
                                           ‫كان ھناك اختالف في بعض األحرف الھجائية‬

                                                                                ‫الشكل العام:‬
‫)‪SOUNDEX (COL|VALUE‬‬

                                                                                     ‫حيث أن‬

                                                          ‫اسم القل أو العمود‬          ‫‪COL‬‬
‫‪moon‬‬


                                           ‫القيمة البديلة للعمود )البيانات(‬      ‫‪VALUE‬‬
                                                                                    ‫مثال‬

‫)‪SELECT name, SOUNDEX (name‬‬
‫;5.2151=‪FROM S_EMP WHERE sal‬‬




                                                                              ‫ملخص الفصل‬

   ‫تناولنا الدوال الحرفية الخاصة بتحويل حالة الحروف من حروف كبيرة إلى حروف صغيرة‬
‫والعكس وكذلك ضبط محاذاة الحروف داخل النص ومن الدوال الھامة الني تناولناھا ايضا دوال‬
                          ‫حذف البيانات ودوال عرض اللفظ الصوتي وتعديل بيانات الجداول .‬
‫‪moon‬‬


       ‫دوال التاريخ والتحويل‬

                                            ‫أھداف الفصل‬

                ‫في نھاية ھذا الفصل إن شاء ﷲ تكون قادر على :‬
                         ‫التعامل مع دوال التاريخ في ‪SQL‬‬     ‫١-‬
                       ‫التعامل مع أدوات التحويل في ‪SQL‬‬      ‫٢-‬
‫‪moon‬‬


                                      ‫دوال التاريخ‬
         ‫الوفت ھو الحياة والتاريخ ھو أصل االمم لذا لتا لنتعمق في كيفية استخدام دوال التاريخ‬

                                                                         ‫الدالة ‪Sysdate‬‬

‫ھذه الدالة تقوم بإعطاء تاريخ اليوم الحالي أي التاريخ المخزن في جھاز الكمبيوتر الذي ينفذ عليه‬
    ‫ھذا األمر ويتم تخزين التاريخ وھمي يسمى ‪ Dual‬وھو موجود أصال داخل لغة أوراكل لذلك‬
                                          ‫يجب أن تتم عملية استدعاء التاريخ من ھذا الجدول‬

                                                                                        ‫مثال‬

                                                   ‫الستدعاء تاريخ اليوم الحالي نقوم باآلتي :‬

‫;‪SELECT SYSDATE FROM DUAL‬‬


‫الدالة ‪NEXT_DAY‬‬

                    ‫تستخدم ھذه الدالة لعرض التاريخ الذي يوافق التاريخ التالي للتاريخ المعطى‬
  ‫فعلى سبيل المثال إذا كان التاريخ الموجود ھو ٧/٧/٣٠٠٢ وطلب من الجھاز تحديد اليوم الذي‬
                                ‫يصادف يوم الجمعة من نفس الشھر فإنه يعطي ١١/٧/٣٠٠٢‬

                                                                                 ‫الشكل العام‬
‫)‪NEXT_DAY (DATE,CHAR‬‬

‫حيث إن ‪ DATE‬ھو التاريخ المعطى والمراد إيجاد التاريخ لليوم الذي يليه من خالل وضع اسم‬
                                                             ‫اليوم داخل المتغير ‪CHAR‬‬

                                                                                        ‫مثال‬

‫;‪SELECT NEXT_DAY (‘7/7/2003’,’MONDAY’) FROM DUAL‬‬

                                                                                ‫نتيجة التنفيذ‬

                                     ‫‪NEXT_DAY‬‬
                                    ‫-------------------‬
                                       ‫3002/7/11‬
‫‪moon‬‬


                                    ‫دالة تحديد اليوم األخير من كل شھر ‪LAST_DAY‬‬

                                        ‫تقوم ھذه الدالة بتحديد آخر يم من كل شھر معطى‬

                                                                         ‫الشكل العام‬
‫)‪LAST_DAY (DATE‬‬

                                ‫حيث أن ‪ DATE‬ھو تاريخ الجھاز أو تاريخ تقوم بإدخاله‬

                                                                               ‫مثال‬

‫;‪SELECT LAST_DAY (SYSDATE) FROM DUAL‬‬

‫بفرض أن تاريخ الھاز ‪ SYSDATE‬ھو٢/٢/٣٠٠٢ فإن نتيجة للجملة السابقة ھي كما يلي :‬

                         ‫)‪LAST_DAY(SYSDATE‬‬
                         ‫--------------------------------‬
                                   ‫3002/2/82‬

                                                                             ‫مالحظة‬
                                ‫يمكنك أن تقوم بطرح تاريخ من تاريخ آخر كالمثال التالي‬

 ‫‪SELECT SYSDATE – HIRDATE FROM S_EMP‬‬

                                                      ‫حيث ‪ HIRDATE‬حقل تاريخ .‬


                                               ‫الدالة ‪MONTHES_BETWEEN‬‬

                                       ‫تستخدم ھذه الدالة لعرض مدة الفرق بين شھرين‬

                                                                         ‫الشكل العام‬
‫‪MONTHES_BETWEEN‬‬            ‫)2‪(DATE1,DATE‬‬

                                                                               ‫مثال‬

‫‪MONTHES_BETWEEN‬‬            ‫)’49-‪(’01-SEP-95’,’11-JAN‬‬

                                                                       ‫سيكون الناتج‬
                                  ‫4914779.1‬
‫‪moon‬‬



                                                           ‫الدالة ‪ADD_ MONTHES‬‬

                                ‫تستخدم ھذه الدالة إلضافة عدد من األشھر إلى التاريخ معطى‬

‫)‪ADD_MONTHES (DATE,M‬‬

                                                                                  ‫حيث أن‬

                                                           ‫التاريخ المعطى‬        ‫‪DATE‬‬
                                                             ‫عدد االشھر‬             ‫‪M‬‬

                                                                                     ‫مثال‬

‫)6,’99-‪ADD_MONTHES (‘7-JAN‬‬

                                                                 ‫عند التنفيذ سيكون الناتج‬

                                      ‫99-‪7-JUL‬‬


                                                                        ‫الدالة ‪ROUND‬‬

                         ‫تستخدم ھذه الدالة لعرض اقرب بداية شھر أو سنه لتاريخ معين تحدده‬

‫مالحظة :تستخدم ھذه الدالة أيضا للبيانات الرقمية للتقريب وسيتم شرحھا في باب الدوال الرقمية‬

                                                                            ‫الصيغة العامة‬

‫)‪ROUND (DATE, M|Y‬‬

                                                                                  ‫حيث أن‬

                                                           ‫التاريخ المعطى‬        ‫‪DATE‬‬
                             ‫نكتب ‪ MONTH‬اذا اردنا ان يعود باقرب شھر‬                 ‫‪M‬‬
                                ‫نكتب ‪ YEAR‬اذا اردنا ان يعود باقرب سنة‬               ‫‪Y‬‬


                                                                                     ‫مثال‬
‫)’‪ROUND (’07-MAY-96’, ‘MONTH‬‬
‫‪moon‬‬


                                                                  ‫عند التنفيذ سيكون الناتج‬

                                      ‫69-‪01-JUN‬‬

                                                                                      ‫مثال‬
‫)’‪ROUND (’07-MAY-96’, ‘YEAR‬‬

                                                                  ‫عند التنفيذ سيكون الناتج‬
                                      ‫69-‪01-JAN‬‬



                                                       ‫الدالة ‪TRANCATE Function‬‬

‫تستخدم ھذه الدالة لعرض تاريخ اول يوم في شھر أو سنه لتاريخ معين تحدده‬

‫مالحظة :تستخدم ھذه الدالة أيضا للبيانات الرقمية للتقريب وسيتم شرحھا في باب الدوال الرقمية‬

                                                                              ‫الصيغة العامة‬


‫)‪TRUNC (DATE, M|Y‬‬
                                                                                   ‫حيث أن‬

                                                            ‫التاريخ المعطى‬         ‫‪DATE‬‬
                ‫نكتب ‪ MONTH‬اذا اردنا ان يعرض تاريخ اول يوم في شھر‬                    ‫‪M‬‬
                                                             ‫التاريخ المحدد‬
                 ‫نكتب ‪ YEAR‬اذا اردنا ان يعود ألول يوم لنفس سنة التاريخ‬                  ‫‪Y‬‬

                                                                                      ‫مثال‬

‫)’‪TRUNC (’07-MAY-96’, ‘MONTH‬‬

                                                                  ‫عند التنفيذ سيكون الناتج‬
                                     ‫69-‪01-MAY‬‬

                                                                                      ‫مثال‬

‫)’‪TRUNC (’07-MAY-96’, ‘YEAR‬‬

                                                                  ‫عند التنفيذ سيكون الناتج‬
‫‪moon‬‬


                                    ‫69-‪01-JAN‬‬

                                   ‫دوال التحويل‬
                     ‫يتم تحويل البيانات من شكل إلى اخر وتوجد دوال خاصة بالتحويل ومنھا‬

                                                 ‫التحويل الى حروف ‪TO_CHAR‬‬                   ‫١-‬
                                                ‫التحويل إلى أرقام ‪TO_NUMBER‬‬                 ‫٢-‬
                                                  ‫التحويل إلى تاريخ ‪TO_DATE‬‬                 ‫٣-‬


                                                            ‫الدالة ‪TO_CHAR‬‬                  ‫١-‬

  ‫تستخدم ھذه الدالة لتحويل التاريخ او األرقام الى جملة حرفية حيث يتم تغيير شكل التاريخ او‬
                                                            ‫االرقام من صورة إلى اخرى‬

                                                           ‫اوال من تاريخ الى جملة حرفية‬

                                                                              ‫الشكل العام‬
‫)’‪TO_CHAR (DATE,’FMT‬‬

                                                                                 ‫حيث أن‬

                                                             ‫قيمة التاريخ‬       ‫‪DATE‬‬
                                                          ‫الصورة الجديدة‬         ‫‪FMT‬‬

                                                                                    ‫مثال‬
‫)’‪SELECT TO_CHAR (SYSDATE,’DAY, DD MON YY‬‬
 ‫;‪FROM DUAL‬‬

 ‫لنفرض أن تاريخ الجھاز )‪ (SYSDATE‬ھو ٧/٧/٣٠٠٢ فإن نتيجة التنفيذ للجملة السايقة ھي‬
                                                                           ‫كمايلي:‬
             ‫)’‪TO_CHAR (SYSDATE,’DAY, DD MON YY‬‬
            ‫-----------------------------------‬
              ‫‪MONDAY‬‬                         ‫‪7 JUL‬‬              ‫30‬

                                                                                ‫مالحظة‬
                       ‫اذا كتبنا ‪ YYYY‬فانه سوف يتم عرض السنة كاملة متال٣٠٠٢‬                 ‫١-‬
                             ‫اذا كتبنا ‪ MM‬فإنه سوف يتم عرض رقم الشھر مثال 60‬                ‫٢-‬
                  ‫اذا كتبنا ‪ MONTH‬فانه سوف يتم عرض اسم الشھر كامال مثل ‪July‬‬                 ‫٣-‬
                                 ‫اذا كتبنا ‪DY‬سيتم عرض أول ثالثة حروف من اليوم‬               ‫٤-‬
                                          ‫اذا كتبنا ‪ DAY‬سيتم عرض اسم اليوم كامال‬            ‫٥-‬
‫‪moon‬‬


            ‫٦- اذا اردنا عرض الساعة نكتب ‪ HH24:MI:SS AM‬مثل ‪15:45:32 PM‬‬


                                                ‫ثانيا التحويل من أرقام الى جملة حرفية‬

                                                                          ‫الشكل العام‬

‫)’‪TO_CHAR (NUMBER,’FMT‬‬

                                                                             ‫حيث أن‬

                                                                ‫‪ NUMBER‬الرقم‬
                                                      ‫الصورة الجديدة‬     ‫‪FMT‬‬

                                                                                ‫مثال‬

‫)999,999,9$’,0050056( ‪SELECT TO_CHAR‬‬
‫;‪FROM S_EMP‬‬

                                                            ‫عند التنفيذ سيكون الناتج‬

             ‫)999,999,9$’,0050056( ‪TO_CHAR‬‬
          ‫-----------------------------------‬
                        ‫005,005,6‬

                                                                              ‫مالحظة‬
                                             ‫عندما نكتب 9 فإننا نعني يھا خاتة رقم‬    ‫١-‬
                                               ‫عندما نكتب ) , ( يتم طباعة الفاصلة‬    ‫٢-‬
                                        ‫عندما نكتب) . ( يتم طباعة الفاصلة العشرية‬    ‫٣-‬


                                                       ‫الدالة ‪TO_NUMBER‬‬

 ‫تقوم ھذه الدالة بتحويل القيمة الرقمية المخزنة عى شكل حرف ‪ CHAR‬إلى قيمة رقمية فعليه‬
                                                                    ‫‪NUMBER‬‬

                                                                          ‫الشكل العام‬

‫)‪TO_NUMBER (VALUE‬‬

                                                                             ‫حيث‬
       ‫قيمة مخزنة على شكل أرقام حرفية سيتم عرضھا على شكل قيم رقمية‬        ‫‪VALUE‬‬
‫‪moon‬‬




                                                                                        ‫مثال‬

     ‫لنفرض أن لدينا حقل اسمه ‪ NUM‬في جدول ‪ DATA‬به ارقام ولكنھا ارقام حرفيه أي انھا‬
 ‫تعامل معاملة الحروف فال تدخل في العمليات الحسابية فعند تنفيذ ھذه الدالة ستم تحويل القيم إلى‬
                                                  ‫فيم رقمية يمكن ان تدخل في العمليات الحسابية‬

‫)‪SELECT NUM, TO_ NUMBER (NUM‬‬
‫;‪FROM DATA‬‬

                                                                    ‫عند التنفيذ سيكون الناتج‬

       ‫‪NUM‬‬                                            ‫)‪TO_NUMBER(NUM‬‬
‫----------------------------------------------------------------------------------------‬
       ‫6329‬                                                  ‫6329‬
       ‫6257‬                                                  ‫6257‬


                                                                                  ‫مالحظة‬
                                        ‫العمودان بھما نفس القيم ولكن يوجد اختالف في النوع‬


                                                                         ‫الدالة ‪TO_DATE‬‬

 ‫تقوم ھذه الدالة بتحويل المتغير الحرفي داخل اشاؤة النص الى متعير بشكل تاريخ المثال التالي‬
                                                                           ‫يوضح ذلك :‬
‫)’‪SELECT TO_DATE (‘JULY 7,2003’,’MONTH DD, YY‬‬
‫;‪FROM DUAL‬‬

‫عند التنفيذ سيكون الناتج‬

              ‫)’‪TO_DATE (‘JULY 7,2003’,’MONTH DD, YY‬‬
             ‫--------------------------------------------------------------‬
                                     ‫30-‪07-JUL‬‬

                                                                            ‫ملخص الفصل‬
        ‫تناولنا في ھذا الفصل دوال التاريخ الخاصة بالتعامل مع كامل الصيغ للتاريخ والوقت‬
‫واستعراضھا بعدة أشكالھا ثم تطرقنا دوال التحويل التي تعمل تحويل حاالت الكتابة من نص إلى‬
                                                ‫تاريخ و بالعكس كذلك من أرقام الى نص‬
‫‪moon‬‬


       ‫الدوال الرقمية‬
                                          ‫أھداف الفصل‬

              ‫في نھاية ھذا الفصل ان شاء ﷲ ستكن قادر على‬
                           ‫التعامل مع دالة القيمة المطلقة‬   ‫١-‬
                            ‫إيجاد الجذر التربيعي لألعداد‬    ‫٢-‬
                         ‫التعامل مع الدالة األسية لألعداد‬   ‫٣-‬
                 ‫تقريب األعداد العشرية من خالل ‪SQL‬‬          ‫٤-‬
           ‫تقريب األعداد من خالل حذف المنزلة العشرية‬        ‫٥-‬
                               ‫إيجاد باقي القسمة لألعداد‬    ‫٦-‬
                              ‫ايجاد اشارة األعداد السالبة‬   ‫٧-‬
‫‪moon‬‬




               ‫الدوال المطلقة واألسية واألسية والجذر التربيعي‬

                                                ‫دالة القيمة المطلقة ‪ABS Function‬‬

‫تستخدم ھذه الدالة إليجاد القيمة المطلقة لرقم معين وغالبا يتم استخدان ھذه الدالة مع جمل أخرى‬

                                                                                 ‫الشكل العام‬

‫)‪ABS (COL|VALUE‬‬

                                                                                     ‫حيث أن‬

                                                        ‫اسم الحقل أو العمود‬        ‫‪COL‬‬
                                             ‫القيمة البديلة للعمود )البيانات(‬    ‫‪VALUE‬‬

                                                                                        ‫مثال‬

‫;‪SELECT name,job,hiredate-sysdate FROM S_EMP‬‬

                                                                      ‫عند التنفيذ سيتم طباعة:‬

‫‪name‬‬             ‫‪job‬‬           ‫‪hierdate-sysdate‬‬
‫---------------------------- --------------------‬
‫‪ALI‬‬              ‫‪Salesman‬‬          ‫2523.6096-‬
‫‪AHMED‬‬            ‫‪Analyst‬‬           ‫2523.1486-‬
‫‪SAMI‬‬             ‫‪Manager‬‬           ‫2523.2954-‬
‫‪Khaled‬‬           ‫‪Manager‬‬           ‫2523.5556-‬

      ‫نالحظ أن قيم العمود ‪ hierdate-sysdate‬قيم سالبة ولكي نجعلھا دائما موجبة نأخذ القيمة‬
                                                                ‫المطلقة لھذا العمود ونكتب‬

‫;‪SELECT name,job,ABS(hiredate-sysdate) FROM S_EMP‬‬

                                      ‫عند التنفيذ سيتم طباعة:‬
‫‪name‬‬             ‫‪job‬‬           ‫‪hierdate-sysdate‬‬
‫------------------------------------------------‬
‫‪ALI‬‬              ‫‪Salesman‬‬          ‫2523.6096‬
‫‪AHMED‬‬            ‫‪Analyst‬‬           ‫2523.1486‬
‫‪SAMI‬‬             ‫‪Manager‬‬           ‫2523.2954‬
‫‪Khaled‬‬           ‫‪Manager‬‬           ‫2523.5556‬
‫‪moon‬‬



                          ‫الدالة األسية ‪POWER Function‬‬                        ‫٢-‬

                            ‫تستخدم ھذه الدالة إليجاد قيمة رقم مرفوع ألس‬

                                                               ‫الشكل العام‬

‫)‪POWER (COL|VALUE,P‬‬

                                                                   ‫حيث أن‬

                                      ‫اسم الحقل أو العمود‬         ‫‪COL‬‬
                            ‫القيمة البديلة للعمود )البيانات(‬    ‫‪VALUE‬‬
                                                ‫قيمة األس‬           ‫‪P‬‬

                                                                      ‫مثال‬

‫;‪SELECT DIGIT, POWER (DIGIT1, 2) FROM DIGIT‬‬

                                                    ‫عند التنفيذ سيتم طباعة:‬

‫1‪DIGIT‬‬                 ‫)2 ,1‪POWER (DIGIT‬‬
‫--------------------‬   ‫--------------------‬
‫02‬                     ‫004‬
‫52‬                     ‫526‬
‫5.52‬                   ‫52.056‬
‫5.03‬                   ‫52.039‬


                        ‫دالة الجذر التربيعي ‪SQRT Function‬‬                     ‫٣-‬

                          ‫تستخدم ھذه الدالة إلياد الجذر التربيعي لرقم معين‬

                                                               ‫الشكل العام‬

‫)‪SQRT (COL|VALUE‬‬

                                                                   ‫حيث أن‬

                                      ‫اسم الحقل أو العمود‬         ‫‪COL‬‬
                            ‫القيمة البديلة للعمود )البيانات(‬    ‫‪VALUE‬‬
moon




                                                       ‫مثال‬

SELECT name,sal, SQRT (sal) FROM S_EMP;

                                     :‫عند التنفيذ سيتم طباعة‬


NAME                 SAL               SQRT (SAL)
------------------------------------------------
Ali                  968               31.113
Ahmed                1936              44
SAMI                 1512.5            38.9805
KHALED               3599.75           59.988
‫‪moon‬‬


              ‫دوال التقريب وباقي القسمة واإلشارة‬
                            ‫دالة التقريب العشري ‪ROUND Function‬‬

                   ‫تستخدم ھذه الدالة لتقريب العدد إلى اقرب رقم عشري أو صحيح‬

                                                                  ‫الشكل العام‬
‫)‪ROUND (COL|VALUE, N‬‬

                                                                      ‫حيث أن‬

                                           ‫اسم الحقل أو العمود‬       ‫‪COL‬‬
                                                    ‫قيمة عددية‬     ‫‪VALUE‬‬
                                           ‫عدد المواقع العشرية‬         ‫‪N‬‬

                                                                         ‫مثال‬

‫;‪SELECT SQRT (sal), ROUND (SQRT (sal), 2) FROM S_EMP‬‬

                                                       ‫عند التنفيذ سيتم طباعة:‬

‫)‪SQRT (SAL‬‬           ‫)1 ,)‪ROUND (SQRT (sal‬‬
‫------------------------------------------------‬
‫311.13‬               ‫11.13‬
‫44‬                   ‫44‬
‫5089.83‬              ‫89.83‬
‫889.95‬               ‫99.95‬


                      ‫دالة التقريب بالحذف ‪TRANCATE Function‬‬

                      ‫تستخدم ھذه الدالة لتقريب الرقم بحذف بعض المواقع العشرية‬

                                                                  ‫الشكل العام‬

‫)‪TRUNC (COL|VALUE,N‬‬

                                                                      ‫حيث أن‬

                                           ‫اسم الحقل أو العمود‬       ‫‪COL‬‬
                                                    ‫قيمة عددية‬     ‫‪VALUE‬‬
                                           ‫عدد المواقع العشرية‬         ‫‪N‬‬
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل
الأوراكل

More Related Content

What's hot

قواعد البيانات.ppt
قواعد البيانات.pptقواعد البيانات.ppt
قواعد البيانات.pptrzazalamin1
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البياناتFida Kadun
 
الوحدة الاولى - قاعدة البيانات وادارتها
الوحدة الاولى - قاعدة البيانات وادارتهاالوحدة الاولى - قاعدة البيانات وادارتها
الوحدة الاولى - قاعدة البيانات وادارتهاAmin Abu Hammad
 
أساسيات قواعد البيانات
أساسيات قواعد البياناتأساسيات قواعد البيانات
أساسيات قواعد البياناتBandar Alhazmi
 
مشروع قواعد البيانات
مشروع قواعد البيانات مشروع قواعد البيانات
مشروع قواعد البيانات Safiya Najeh
 
تصميمات قواعد البيانات
تصميمات قواعد البيانات تصميمات قواعد البيانات
تصميمات قواعد البيانات hendgamagmail
 
Sql(structured query language)
Sql(structured query language)Sql(structured query language)
Sql(structured query language)Ishucs
 
MS Sql Server: Introduction To Database Concepts
MS Sql Server: Introduction To Database ConceptsMS Sql Server: Introduction To Database Concepts
MS Sql Server: Introduction To Database ConceptsDataminingTools Inc
 
Weka project - DataMining
Weka project  - DataMiningWeka project  - DataMining
Weka project - DataMiningSafiya Najeh
 
Lecture 01 introduction to database
Lecture 01 introduction to databaseLecture 01 introduction to database
Lecture 01 introduction to databaseemailharmeet
 

What's hot (20)

Ms sql-server
Ms sql-serverMs sql-server
Ms sql-server
 
قواعد البيانات.ppt
قواعد البيانات.pptقواعد البيانات.ppt
قواعد البيانات.ppt
 
Access
AccessAccess
Access
 
Database schema
Database schemaDatabase schema
Database schema
 
نظم قواعد البيانات
نظم قواعد البياناتنظم قواعد البيانات
نظم قواعد البيانات
 
الوحدة الاولى - قاعدة البيانات وادارتها
الوحدة الاولى - قاعدة البيانات وادارتهاالوحدة الاولى - قاعدة البيانات وادارتها
الوحدة الاولى - قاعدة البيانات وادارتها
 
Chapter 1 introduction to sql server
Chapter 1 introduction to sql serverChapter 1 introduction to sql server
Chapter 1 introduction to sql server
 
أساسيات قواعد البيانات
أساسيات قواعد البياناتأساسيات قواعد البيانات
أساسيات قواعد البيانات
 
مشروع قواعد البيانات
مشروع قواعد البيانات مشروع قواعد البيانات
مشروع قواعد البيانات
 
Sql server
Sql serverSql server
Sql server
 
تصميمات قواعد البيانات
تصميمات قواعد البيانات تصميمات قواعد البيانات
تصميمات قواعد البيانات
 
SQL
SQLSQL
SQL
 
Sql ppt
Sql pptSql ppt
Sql ppt
 
Sql tutorial
Sql tutorialSql tutorial
Sql tutorial
 
Sql(structured query language)
Sql(structured query language)Sql(structured query language)
Sql(structured query language)
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
 
MS Sql Server: Introduction To Database Concepts
MS Sql Server: Introduction To Database ConceptsMS Sql Server: Introduction To Database Concepts
MS Sql Server: Introduction To Database Concepts
 
Weka project - DataMining
Weka project  - DataMiningWeka project  - DataMining
Weka project - DataMining
 
5 level
5 level5 level
5 level
 
Lecture 01 introduction to database
Lecture 01 introduction to databaseLecture 01 introduction to database
Lecture 01 introduction to database
 

Viewers also liked

الوصف الوظيفي لوظيفة خدمة العملاء
الوصف الوظيفي لوظيفة خدمة العملاءالوصف الوظيفي لوظيفة خدمة العملاء
الوصف الوظيفي لوظيفة خدمة العملاءثامر عبدالله
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات Mohamed Reda
 
نظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةنظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةHuda Farhan
 
Oracle
OracleOracle
Oraclensah
 
كيفية الحصول على شهادات اوراكل
كيفية الحصول على شهادات اوراكلكيفية الحصول على شهادات اوراكل
كيفية الحصول على شهادات اوراكلTamer Barakat
 
بطاقة وصف تسويق
بطاقة وصف تسويقبطاقة وصف تسويق
بطاقة وصف تسويقAsma Al-khaldi
 
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...Taha Harb
 
تخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهتخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهOmar Computer Teacher
 

Viewers also liked (10)

الوصف الوظيفي لوظيفة خدمة العملاء
الوصف الوظيفي لوظيفة خدمة العملاءالوصف الوظيفي لوظيفة خدمة العملاء
الوصف الوظيفي لوظيفة خدمة العملاء
 
Databases قواعد البيانات
Databases قواعد البيانات  Databases قواعد البيانات
Databases قواعد البيانات
 
نظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرةنظم ادارة قواعد البيانات (1) محاضرة
نظم ادارة قواعد البيانات (1) محاضرة
 
Oracle: Commands
Oracle: CommandsOracle: Commands
Oracle: Commands
 
Oracle
OracleOracle
Oracle
 
كيفية الحصول على شهادات اوراكل
كيفية الحصول على شهادات اوراكلكيفية الحصول على شهادات اوراكل
كيفية الحصول على شهادات اوراكل
 
Lecture4 Erd
Lecture4 ErdLecture4 Erd
Lecture4 Erd
 
بطاقة وصف تسويق
بطاقة وصف تسويقبطاقة وصف تسويق
بطاقة وصف تسويق
 
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...
Registered Nurse in the Intensive care Unit - ممرض(ة) مجاز(ة) في وحدة العناية...
 
تخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسهتخطيط قاعده بيانات مدرسه
تخطيط قاعده بيانات مدرسه
 

Similar to الأوراكل

قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البياناتImpossible Love
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البياناتDrMohammed Qassim
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxAhmedOthman511332
 
مقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتمقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتgueste5de3d
 
مقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتمقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتalihassan_siwa
 
1366136913.9485 نظم ادارة قواعد البيانات 2
1366136913.9485 نظم ادارة  قواعد البيانات 21366136913.9485 نظم ادارة  قواعد البيانات 2
1366136913.9485 نظم ادارة قواعد البيانات 2mh ED
 
What is no sql
What is no sqlWhat is no sql
What is no sqlGarmian
 
1 introdcution to ds 2-2019 abstract stack and queue
1   introdcution to ds 2-2019  abstract stack and queue1   introdcution to ds 2-2019  abstract stack and queue
1 introdcution to ds 2-2019 abstract stack and queueِِِAhmed R. A. Shamsan
 
active directory
active directory active directory
active directory akram12120
 
الباب الاول
الباب الاولالباب الاول
الباب الاولtahsal99
 
نظم ادارية
نظم اداريةنظم ادارية
نظم اداريةMjdBakrii
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البياناتMahmoud Almadhoun
 

Similar to الأوراكل (20)

قواعد البيانات
قواعد البياناتقواعد البيانات
قواعد البيانات
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البيانات
 
Intorduction to databases 2021
Intorduction to databases 2021Intorduction to databases 2021
Intorduction to databases 2021
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptx
 
Nosql
NosqlNosql
Nosql
 
1
11
1
 
مقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتمقدمة عن قواعد البيانات
مقدمة عن قواعد البيانات
 
6 ado.net
6 ado.net6 ado.net
6 ado.net
 
ad
adad
ad
 
مقدمة عن قواعد البيانات
مقدمة عن قواعد البياناتمقدمة عن قواعد البيانات
مقدمة عن قواعد البيانات
 
عرض قواعد البيانات 01
عرض قواعد البيانات 01عرض قواعد البيانات 01
عرض قواعد البيانات 01
 
1366136913.9485 نظم ادارة قواعد البيانات 2
1366136913.9485 نظم ادارة  قواعد البيانات 21366136913.9485 نظم ادارة  قواعد البيانات 2
1366136913.9485 نظم ادارة قواعد البيانات 2
 
What is no sql
What is no sqlWhat is no sql
What is no sql
 
1 introdcution to ds 2-2019 abstract stack and queue
1   introdcution to ds 2-2019  abstract stack and queue1   introdcution to ds 2-2019  abstract stack and queue
1 introdcution to ds 2-2019 abstract stack and queue
 
active directory
active directory active directory
active directory
 
Database Administration
Database AdministrationDatabase Administration
Database Administration
 
Z39.50
Z39.50Z39.50
Z39.50
 
الباب الاول
الباب الاولالباب الاول
الباب الاول
 
نظم ادارية
نظم اداريةنظم ادارية
نظم ادارية
 
مقدمة في قواعد البيانات
مقدمة في قواعد البياناتمقدمة في قواعد البيانات
مقدمة في قواعد البيانات
 

الأوراكل

  • 1. ‫‪moon‬‬ ‫األوراكل‬ ‫نتعرض في ھذا الفصل الى مقدمة في ادارة قواعد البيانات ‪ Database‬وخاصة قواعد بيانات‬ ‫األوراكل والذي يعتبر أحد النظم القوية في قواعد البيانات ‪Data Base Management‬‬ ‫)‪ System (DBMS‬لما له من مميزات مقارنة بقواعد البيانات االخرى .‬ ‫مفاھيم قواعد البيانات‬ ‫قاعدة البيانات ‪Database‬‬ ‫ھي مجموعه من الملفات المنظمة بحيث يسھل الوصول إليھا عندمت نريد استردادھا‬ ‫قاموس البيانات ‪Data Dictionary‬‬ ‫ھو مجموعة من المعلومات عن جداول وفھارس البيانات تحقظ داخل ھذا القاموس ، يستخدمھا‬ ‫نظام إدارة قواعد البيانات‬ ‫االستعالم ‪Query‬‬ ‫ھو نظام استفساري لالستعالم عن بيانات معينة وغاليا ال يغير االستعالم في قاعدة البيانات حيث‬ ‫إن غالبية نظم االستعالم عبارة عن قراءة فقط للبيانات‬ ‫الدوال ‪Function‬‬ ‫عبارة عن مجموعة من تعليما ت أو أوامر تستخدم ضمن مسمى وظيفي الداء عملية محددة‬ ‫وغالبا تعيد الدالة قيمة معينه بعد تنفيذھا‬ ‫االجراء ‪Procedure‬‬ ‫مجموعة من التعليمات مثل تعليمات الدالة بھدف تنفيذ مھمة محددة لكن االجراء ال يعيد قيمة‬ ‫مثل الدالة‬ ‫مخطط ‪Schema‬‬ ‫عبارة عن مجموعة من الكائنات ‪ Objects‬مرتبطة بقواعد البيانات ويتألف مخطط‬ ‫‪ Schema‬من كائنات مثل الجداول ‪ Tables‬واالجراءات ‪ Procedure‬والعروض ‪Views‬‬ ‫والفھارس ‪Index‬‬ ‫مدير قواعد البيانات )‪Database Administrator (DBA‬‬ ‫ھو الشخص المسؤؤل عن عمليات إدارة قواعد البيانات ونظم أداء ھذه القواعد وكيف يتم‬ ‫تكوينھا وھو مسوؤل أيضا عن مراقبة أداء ھذه القواعد ، وكذلك إجراء عمليات النسخ االحتياطي‬ ‫وتثبيت البرامج ، والمحافظة على أمن المعلومات ، وإضافة مستخدمين جدد أو إلغاء صالحيات‬ ‫مستخدمين‬ ‫ويمكن ان يقوم مدير قواعد البيانات بالتخطيط لتطوير وتنمية النظام المطبق ، وتحديد‬ ‫الحاجه لھذه التطورات المستقبلية .‬
  • 2. ‫‪moon‬‬ ‫ويسعى فريق العمل الذي يتكون من مديري قواعد البيانات ‪ DBA‬للحفاظ على سير العمل داخل‬ ‫الشركة بشكل متجانس . وتتم تجزئة المھام بين ھؤالء المديرين .‬ ‫مھام مدير قواعد البيانات )‪(DBA‬‬ ‫تتباين مھام مدير قاعدة البيانات تبعا لحجم الشركة أو المؤسسة وتبعا لفريق‬ ‫العمل المساعد وتشمل ھذه المھام النقاط التالية :‬ ‫١- تثبيت البرمجيات الجديدة‬ ‫٢- إدارة الحماية لنظام قواعد البيانات‬ ‫٣- النسخ االحتياطي والدوري للبيانات ونظام قواعد البيانات‬ ‫٤- استكشاف األخطاء ومعالجتھا‬ ‫٥- تسوية وإصالح إخفاقات المستخدمين للوصول إلى بياناتھم‬ ‫٦- متابعة ضبط أداء العمل‬ ‫٧- تقسيم األجھزة والنظم الجديدة‬ ‫٨- العمل على تطوير النظام بالشركة‬ ‫نظام إدارة قاعد البيانات )‪Data Base Management System (DBMS‬‬ ‫ھو عبارة عن مجموعة األدوات البرمجيه ) البرامج ( التي تدير وتنظم قاعدة البيانات وتوجد‬ ‫عالقة ارتباط بين ھذه البيانات تسمى عالقة )‪ (Relation‬لذا احيانا يطلق عليھا ‪ RDBMS‬أي‬ ‫نظام إدارة قواعد البيانات العالئقية ) االرتباطية (‬ ‫مميزات نظام إدارة قاعدة البيانات أوراكل‬ ‫يتميز نظام قاعدة البيانات أوراكل عن غيره من نظم إدارة قواعد البيانات األخرى باآلتي:‬ ‫١- القدرة الفائقة على استيعاب كميات كبيرة من البيانات قد يصل عدد السجالت إلى‬ ‫الماليين مع الحفاظ على المستوى العالي في األداء والسرعة عند استرجاع والتخزين‬ ‫والحذف‬ ‫٢- السرية التامة واألمن ال حتوائه على نظام الصالحيات والحقوق الذي يضمن تطبيق‬ ‫الشروط القياسية واألمنية للحفاظ على قاعدة البيانات‬ ‫٣- فعالية التحكم المركزي بالبيانات الذي يضمن :‬ ‫• تقليل التكررات غير الالزمة في البيانات المدخلة )‪(No Repetition‬‬ ‫• تجنب التناقض بين البيانات )‪(No Contradiction‬‬ ‫• إمكانية التشارك في البيانات )‪(Data Sharing‬‬ ‫• الحفاظ على تكامل البيانات فيما بينھا )‪(Data Integrity‬‬ ‫٤- السيطرة التامة على عملية النسخ االحتياطي لقاعدة البيانات وحمايتھا من الفقدان أو‬ ‫التلف مع امكانية استرجاعھا في أي لحظة‬
  • 3. ‫‪moon‬‬ ‫عمليات نظام إدارة قاعدة البيانات‬ ‫يشتمل نظام إدارة قاعدة البيانات اوراكل على العمليات التالية‬ ‫١- أوامر لغة تعريف البيانات )‪Data Definition Language (DDL‬‬ ‫تستخدم ھذه اللغة في تعريف وإنشاء الكائن ‪ ، Object‬ويمكن أن يكون الكائن ملفات‬ ‫وجداول بيانات ، فيمكننا إنشاء وتعديل وحذف الكائن ويمكننا إنشاء امتياز لمستخدم‬ ‫معين ، أو انشاء كائن خيارات لفحص وإضافة تعليقات إلى قاموس البيانات ومن ھذه‬ ‫األوامر : ‪CREAT , DROP and ALTER‬‬ ‫٢- أوامر لغة معاملة البيانات )‪Data Manipulation Language (DML‬‬ ‫تتيح ھذه األوامر التعامل مع البيانات وتعديلھا ضمن الكائن الموجود ‪ Object‬ومن ھذه‬ ‫األوامر : ‪SELECT, DELETE,UPDATE and INSERT‬‬ ‫٣- أوامر لغة التحكم في البيانات )‪Data Control Language (DCL‬‬ ‫تتيح ھذه األوامر التحكم في قاعدة البيانات وأدائھا كالصالحيات والمستخدمين والحقوق‬ ‫وغالبا ماتكون ھذه األوامر مخصصة لالستخدام من قبل مدير قاعدة البيانات )‪(DBA‬‬ ‫ومن ھذه االوامر : ‪GRANT and REVOKE‬‬
  • 4. ‫‪moon‬‬ ‫التركيب الداخلي لنظام أوراكل‬ ‫أھداف الفصل‬ ‫يتناول ھذا الفصل التركيب الداخلي لنظام قاعدة البيانات أوراكل وفي نھاية ھذا الفصل‬ ‫ستكون قادرا بمشيئة ﷲ على :‬ ‫١- فھم العالقات بين الجداول‬ ‫٢- تعريف نمذجة العالقة‬ ‫٣- فھم مكونات قاعدة البيانات العالئقية‬ ‫٤- فھم العالقة بين الخادم والمستفبد‬ ‫٥- قھم الخادم ‪SERVER‬‬ ‫٦- فھم المستفيد ‪Client‬‬
  • 5. ‫‪moon‬‬ ‫مقدمة في قواعد البيانات العالئقية‬ ‫يقدم ھذا الفصل التركيب والبناء الداخلي لنظام إدارة قواعد البيانات أوراكل ، فيحتوي على‬ ‫وصف سريع لمكونات أوراكل وتعتمد غالبية تطبيقات نظم قواعد البيانات في بنائھا على أحد‬ ‫نماذج قاعد البيانات التالية:‬ ‫نموذج ھيكلي )ھرمي ( ‪Hierarchical Model‬‬ ‫١-‬ ‫نموذج شبكي ‪Network Model‬‬ ‫٢-‬ ‫نموذج عالئقي ‪Relational Model‬‬ ‫٣-‬ ‫نموذج شيئي ‪Object Model‬‬ ‫٤-‬ ‫في الماضي كان النموذج األول ) الھرمي ( األكثر انتشارا مع أجھزة الكمبيوتر الكبيرة ‪Main‬‬ ‫‪ Frame‬ثم بدا النظام الثاني ) الشبكي ( في االنتشار وخاصة مع التوسع في بناء وتركيب‬ ‫شبكات الحاسب وكانت ھناك صعوبات في استخدام النظامين االول والثاني ) الھرمي والشبكي (‬ ‫نتيجة الستخدام مؤشرات البرمجة ) ‪ ( Pointers‬لربط سجالت البيانات بعضھا مع بعض ، لذا‬ ‫نجد أن إضافة أو تعديل أو حذف السجالت يحتاج إلى المزيد من قھم طبيعة وعمل المؤشرات‬ ‫وفي ھذه الفترة الماضية طرق برمجة المؤشرات تكتب بلغة الكوبول )‪.(COBOL‬‬ ‫أما النموذج العالئقي )‪ (Relational‬فھو األكثر سھولة في االستخدام وفي برمجة تطبيقات نظم‬ ‫قواعد البيانات ومن الناحية النظرية األكاديمية فيلزمك دراسة المفاھيم األساسية والضروربة لھذا‬ ‫النموذج العالئقي لھذا سنركز ھنا على‬ ‫١- ھيكل البيانات العالئقية ‪Relational Data Structure‬‬ ‫٢- الضوابط الحاكمة للبيانات العالئقية ‪Constraint that govern organization of‬‬ ‫‪data structure‬‬ ‫٣- العمليات التي تجرى على ھذه البيانات ‪Operations that are performance data‬‬ ‫‪structure‬‬ ‫ويعتمد نظام ھياكل البيانات العالئقبة )‪ (Relational Database‬على ھيكل منطقي‬ ‫ويطلق عليه عالقة )‪(Relational‬وعلى شكل ثنائي األبعاد ‪(Tow dimensional‬‬ ‫) ‪ data structure‬يتكون من صفوف وأعمدة ويسمى جدول )‪ (Table‬ھذا باإلضافة‬ ‫إلى عناصر البيانات )‪ (Data elements‬تسمى في ھذه الحالة ‪ attributes‬عالوة‬ ‫على ھذا يتم تنظيم ھذه البيانات الفعلية في وحدة أو وحدات تسمى ‪ Tuples‬تقسم إلى‬ ‫صفوف ‪ Rows‬أو )سجالت ‪ ( Records‬وأعمدة ‪) Columns‬حقول ‪( Fields‬‬ ‫والشكل التالي يبين العناصر األساسية لجدول الموظقين ‪Employees‬‬
  • 6. ‫‪moon‬‬ ‫العالقة بين الجداول‬ ‫لربط عالقة بأخرى تتحتاج إلى طريقة لالرتباط . وھذه الطريقة تستخدم حقال ‪ Field‬يكون‬ ‫موجودا في الجدولين وحقل االرتباط يسمى في الجدول األول بالمفتاح الرئيسي ‪(Primary‬‬ ‫)‪ Key‬للجدول األول ويسمى يالمفتاح ال )‪ (Foreign Key‬في الجدول الثاني‬
  • 7. ‫‪moon‬‬ ‫نمذجة العالفة ‪Relational Model Algebra‬‬ ‫تعرف بانھا العمليات التي يتم اجراؤھا على جدول أو مجموعة من الجداول تبعا لعالقة محددة‬ ‫ويوجد معامالن ‪ Operators‬ھما ‪ Unary‬والثاني‪ Binary‬والجدول التالي يعدد سبعة انواع‬ ‫لھذه العمليات‬ ‫العملية‪Operation‬‬ ‫نوع العملية ‪Type‬‬ ‫وصف العملية‬ ‫‪Union‬‬ ‫‪Binary‬‬ ‫تجميع الصفوف السجالت من جدولين مع عدم‬ ‫السماح بنكرار سجالت‬ ‫‪Intersection‬‬ ‫‪Binary‬‬ ‫تحديد السجالت )الصفوف( المشتركة بين‬ ‫جدولين‬ ‫‪Difference‬‬ ‫‪Binary‬‬ ‫اظھار السجالت الموجودة في الجدول االول‬ ‫وال توجد في الجدول الثاني‬ ‫‪Projection‬‬ ‫‪Unary‬‬ ‫إظھار السجالت مع بعض األعمدة )مصدر‬ ‫البيانات(‬ ‫‪Selection‬‬ ‫‪Unary‬‬ ‫إظھار السجالت من جدول مصدر البيانات تبعا‬ ‫لمعيار البحث ‪Criteria‬‬ ‫‪Product‬‬ ‫‪Unary‬‬ ‫وصل كل سجل من جدول البيانات االول مع‬ ‫كل سجل في الجدول الثاني‬ ‫‪Join‬‬ ‫‪Unary‬‬ ‫وصل وتمديد السجالت من الجدول األول مع‬ ‫مايقابله من سجالت في الجدول الثاني‬
  • 8. ‫‪moon‬‬ ‫مكونات قاعدة البيانات العالئقية ‪RDBMS Components‬‬ ‫تتكون قاعدة البيانات العالئقية من :‬ ‫١- نظام تشغيل ثاعدة البيانات ويطلق عليه ‪Kernel‬‬ ‫٢- قاموس البيانات ‪Data Dictionary‬‬ ‫ويتكون نظام تشغيل وتنظيم قاعدة البيانات )‪ (Kernel‬من مجموعة من الوحدات البرمجية‬ ‫‪ Software‬والذي صمم ليحكم وينظم وينعامل مع البيانات مابين حفظ واسترجاع وطباعة‬ ‫وكذلك تحديد المسؤليات وعمل نظم األمان وحماية البيانات‬ ‫وعادة يحتفظ نظام قاعدة البيانات بقائمة من المستخدمين الذين لھم صالحية للتعامل مع تطبيق‬ ‫قاعدة البيانات والشكل التالي يوضح بعضا من مكونات الـ ‪ Kernel‬في نظام أوراكل‬ ‫مكونات الـ ‪ Kernel‬في نظم قاعدة البيانات‬ ‫ويحوي قاموس البيانات ‪ Data Dictionary‬وصفا لشكل البيانات ويطلق على ھذا الوصف‬ ‫‪ Meta Description‬أو ‪ Meta Data‬وھذا الوصف يرتبط بكافة الكائنا ت ‪ Objects‬ضمن‬ ‫قاعدة البيانات‬ ‫وقاموس بيانات أوراكل يحتوي على مجموعة جداول تضم البيانات المخزنة عن طريق‬ ‫الـ ‪ Kernel‬وأيضا على كائنات الفھارس ‪Indexes‬كائنات العرض ‪ Views‬كائنات االستعالم‬ ‫واالستقسار ‪ SQL and Query‬كائنات اإلجراء ‪ Procedure‬والدوال ‪... Function‬إلخ‬
  • 9. ‫‪moon‬‬ ‫الشكل التالي يوضح كيفية قراءة أو تعديل قاعدة بيانات باستخدام أوراكل‬ ‫شكل العالقة بين ‪ Kernel‬و ‪ SQL‬و قاموس البيانات‬
  • 10. ‫‪moon‬‬ ‫العالقة بين الخادم والمستفيد)العميل( ‪Client/Server‬‬ ‫يتكون نظام أوراكل من مكونين‬ ‫١- الخادم ‪Server‬‬ ‫٢- المستفيد )العميل – المزود( ‪Client‬‬ ‫الخادم ‪Server‬‬ ‫يحوي الخادم قاعدة البيانات المركزية ووظائفھا ، وكذلك كافة العمليات الخلفية لحفظ ھذه القاعدة‬ ‫ويحوي ايضا أدوات تشغيل وإيقاف قاعدة البيانات‬ ‫والشكل التالي يوضح البناء الداخلي لنظام الخادم‬ ‫بروتكول اتصال‬ ‫الشبكة 8‪Net‬‬ ‫مدير الخادم‬ ‫‪Server‬‬ ‫‪Manager‬‬ ‫الخادم ‪Server‬‬ ‫نظام االستيراد‬ ‫والتصدير‬ ‫نظم االستعالم‬ ‫&08‪EXP‬‬ ‫‪SQL * PLUS‬‬ ‫08‪IMP‬‬ ‫المترجمات‬ ‫‪Pre‬‬ ‫نظام التحميل‬ ‫‪compliers‬‬ ‫‪LOADER‬‬ ‫المستفيد ‪Client‬‬ ‫أما المستفيد ‪ Client‬فيحتوي على برامج الخدمات والبرامج المساعده والتي بمكننا تشغيلھا عن‬ ‫بعد باستخدام الشبكة كما يتضمن نظام المستفيد الوسيط الرسومي ‪ Graphical Interface‬الذي‬ ‫يسھل علينا استخدامه وتوجد أداة االتصال بين الخادم والمستقيد وھي8 ‪ Net‬لتقوم بعمليات الربط‬ ‫واالتصال عبر الشبكة‬
  • 11. ‫‪moon‬‬ ‫و تشمل حزمة البرامج لنظام المستفيد على‬ ‫١- مدير المشروع ‪Enterprise Manager‬‬ ‫ويحوي داخله المكونات التالية‬ ‫• متحكم مدير المشروع ‪Enterprise Manager‬‬ ‫• مدير مخطط قاعدة البيانات ‪Schema Manager‬‬ ‫• مدير السرية ‪Security Manager‬‬ ‫• مدير الطبعة ‪Instance Manager‬‬ ‫• مدير التخزين ‪Storage Manager‬‬ ‫• مدير البيانات ‪Data Manager‬‬ ‫• مدير النسخ االحتياطي للبيانات ‪Backup and Recovery Manager‬‬ ‫• ورقة عمل االستعالم ‪SQL Worksheet‬‬ ‫• شريط أدوات المسؤول ‪Administrator Toolbar‬‬ ‫بروتكول اتصال‬ ‫٢- المساعدون ‪Assistants‬‬ ‫الشبكة‬ ‫٣- نظام االستعالم ‪SQL*PLUS‬‬ ‫)8‪(Net‬‬ ‫والشكل التالي يوضج مكونات حزمة البرامج للمستفيد ‪Client‬‬ ‫نظام االستعالم ‪SQL*PLUS‬‬ ‫المساعدون ‪Assistants‬‬ ‫مدير المشروع ‪Enterprise Manager‬‬ ‫متحكم مدير المشروع‬ ‫ورقة عمل االستعالم ‪ SQL‬مدير مخطط قاعدة البيانات‬ ‫‪Enterprise Manager‬‬ ‫‪Schema Manager‬‬ ‫‪Worksheet‬‬ ‫مدير السرية ‪Security‬‬ ‫مدير النسخ االحتياطي للبيانات‬ ‫مدير الطبعة ‪Instance‬‬ ‫‪Manager‬‬ ‫‪Backup and Recovery‬‬ ‫‪Manager‬‬ ‫‪Manager‬‬ ‫مدير البيانات ‪Data‬‬ ‫مدير التخزين ‪Storage‬‬ ‫شريط أدوات المسؤول‬ ‫‪Manager‬‬ ‫‪Manager‬‬ ‫‪Administrator‬‬ ‫‪Toolbar‬‬ ‫ملخص الوحدة‬ ‫تناولنا في ھذا الفصل تعريف التركيب الداخلي لنظام أوراكل وأھم مكوناته والعالقة بين الجداول‬ ‫، وكذلك عملية نمذجة العالقة على الجداول وتم تعريف الخادم والمستفيد والعالقة بينھما .‬
  • 12. ‫‪moon‬‬ ‫جمل ‪ SQL‬البسيطة‬ ‫أھداف الفصل‬ ‫نتااول عملية استرجاع البيانات في حاالت مختلفة مستخدمين في ذلك جملة ‪ SELECT‬وفي‬ ‫نھاية ھذا الفصل ستكون إن شاء ﷲ قادر على :‬ ‫• استرجاع البيانات بواسطة جملة ‪ SELECT‬البسيطة‬ ‫• فھم متطلبات وإرشادات كتابة جمل ‪SQL‬‬ ‫• استخدام العمليات الحسابية وأولويات تنفيذھا مع جمل ‪SQL‬‬ ‫• استخدام الجمل اإللحاقية على البيانات‬ ‫• استخدام عبارة ‪ DISTINCT‬لمنع تكرار عرض البيانات‬ ‫• عرض مواصفات الجدول‬
  • 13. ‫‪moon‬‬ ‫أساسيات جملة ‪SELECT‬‬ ‫جملة ‪SELECT‬‬ ‫تستخدم جملة ‪ SELECT‬السترجاع البيانات المخزنة في جدول أو عدة جداول حيث أن عملية‬ ‫االسترجاع ال تعدل في ھذه البيانات ويمكننا من خالل جملة ‪ SELECT‬أن نقوم بالتالي:‬ ‫١- اختيار وعرض مجموعة معينة من السجالت المخزنة في الجدول‬ ‫٢- استرجاع بيانات بعض حقول الجدول‬ ‫٣- استرجاع بيانات مخزنة في جداول مختلفة‬ ‫مالحظة‬ ‫يمكن أن نستخدم كل أو بعض ھذه المزايا في جملة استفسار واحدة‬ ‫مالحظة‬ ‫أوامر محرر‪SQL*PLUs‬‬ ‫ھنالك بعض االوامر البسيطة التي ستساعدك في كتابة وتحرير وتنفيذ األوامر على محرر ‪SQL‬‬ ‫ومنھا‬ ‫١- االمر ‪ EDIT‬ويمكن كتابته ‪ : ED‬يستخدم ھذا األمر لتحرير آخر امر تم كتابته على‬ ‫محرر ‪ SQL‬وعند تنفيذ ھذا األمر ستفتح لك شاشة المحرر )المفكرة( التي يمكنك‬ ‫خاللھا اعادة تحرير األمر وعند االنتھاء من ذلك احفظ االمر ثم اغلق شاشة المفكرة‬ ‫ولكن الحظ ال تكتب الفاصلة المنقوطة );( بعد نھاية األمر في ھذه الحالة فقط‬ ‫٢- األمر ‪ R‬وطريقة كتابته )/( ويستخدم العادة تنفيذ اخر امر ‪SQL‬محفوظ‬ ‫الشكل العام لجملة ‪SELECT‬‬ ‫}… ,]‪SELECT { * , COLUMN [alies‬‬ ‫; ‪FROM table_name‬‬ ‫حيث أن‬ ‫‪ COLUMN‬اسم الحقل‬ ‫‪ table_name‬اسم الجدول‬ ‫تسمية العمود‬ ‫‪alies‬‬ ‫يمكن أن نضع الرمز * للداللة على استرجاع جميع حقول الجدول‬ ‫كتابة جمل ‪SQL‬‬ ‫نوضح فيما يلي بعض القواعد اإلرشادية التي يجب أن توضع بعين االعتبار عند كتابة جمل‬ ‫‪SQL‬‬ ‫١- يمكن كتابة جمل ‪ SQL‬بالحروف الكبيرة أو الصغيرة‬ ‫٢- يمكن كتابة جمل ‪ SQL‬في عذة أسطر‬
  • 14. ‫‪moon‬‬ ‫٣- ال يمكن فصل الكلمات المحجوزة عبر السطور مثل ‪FROM‬‬ ‫٤- اترك مساقات بين مكونات الجملة لتسھيل عملية القراءة‬ ‫٥- في برنامج ‪ SQL *PLUS‬تكتب األوامر مع مؤشر ‪ SQL‬ويتم تخزين ھذا االمر‬ ‫مباشرة في الذاكرة‬ ‫مثال‬ ‫;‪SELECT * FROM s_dept‬‬ ‫‪ID‬‬ ‫‪NAME‬‬ ‫‪REGION_ID‬‬ ‫--------‬ ‫-------------‬ ‫----------‬ ‫‪10 Finance‬‬ ‫1‬ ‫‪31 Sales‬‬ ‫1‬ ‫‪32 Sales‬‬ ‫2‬ ‫‪33 Sales‬‬ ‫3‬ ‫‪34 Sales‬‬ ‫4‬ ‫‪35 Sales‬‬ ‫5‬ ‫‪41 Operations‬‬ ‫1‬ ‫‪42 Operations‬‬ ‫2‬ ‫‪43 Operations‬‬ ‫3‬ ‫‪44 Operations‬‬ ‫4‬ ‫‪45 Operations‬‬ ‫5‬ ‫‪50 Administration‬‬ ‫1‬ ‫.‪12 rows selected‬‬ ‫لتنفيذ جمل ‪SQL‬‬ ‫نضع فاصلة منقوطة في نھاية الجملة في مؤشر ‪SQL‬‬ ‫١-‬ ‫نضع عالمة / في نھاية الجملة في مؤشر ‪ SQL‬العادة اخر امرموجود في ال)‪(Buffer‬‬ ‫٢-‬ ‫نضع عالمة / في نھاية الجملة في األمر في الذاكرة )‪(BUFFER‬‬ ‫٣-‬ ‫كتابة عبارة ‪ RUN‬او ‪ R‬في مؤشر ‪ SQL‬العادة اخر امرموجود في ال)‪(Buffer‬‬ ‫٤-‬
  • 15. ‫‪moon‬‬ ‫العمليات الحسابية‬ ‫يمكن أن نستخدم العمليات الحسابية عند عرض البيانات دون أن تؤثر ھذه المعالجة على‬ ‫البياانات المخزنة في الجدول ، ويمكن أن يحتوي التعبير الحسابي على اسم الحقل قيمة ثابتة و‬ ‫العملية الحسابية‬ ‫العمليات الحسابية‬ ‫العمليات التي يمكن أن تستخدم ھي:‬ ‫+‬ ‫١- الجمع‬ ‫-‬ ‫٢- الطرح‬ ‫÷‬ ‫٣- القسمة‬ ‫*‬ ‫٤- الضرب‬ ‫ويمكن استخدام ھذه العمليات في جميع أجزاء جملة‪ SELECT‬عدا الجزء الخاص بـ‪FROM‬‬ ‫أولويات العمليات‬ ‫١- االفواس الداخلية ثم الخارجية‬ ‫٢- الضرب والقسمة‬ ‫٣- الجمع والطرح‬ ‫مالحظة‬ ‫العمليات التي لھا نفس االولية كالجمع والطرح تنفذ من اليسار الى اليمين‬ ‫العملية اإللحاقية‬ ‫يمكن أن نجري عملية إلحاق عدد من األعمدة للجدول أو مجموعة حرفية نصية إلى حقول‬ ‫أخرى عند العرض باستخدام العملية اإللحاقية ||‬ ‫مثال‬ ‫‪SELECT‬‬ ‫‪first_name||last_name‬‬ ‫‪FROM‬‬ ‫;‪s_emp‬‬ ‫‪Employees‬‬ ‫-------------------------------------------------‬ ‫‪CarmenVelasquez‬‬ ‫‪LaDorisNgao‬‬ ‫‪MidoriNagayama‬‬ ‫‪MarkQuick-To-See‬‬
  • 16. ‫‪moon‬‬ ‫‪AudryRopeburn‬‬ ‫‪MollyUrguhart‬‬ ‫...‬ ‫نالحظ ان االسم االول اتصل باالسم االخير بدون وجود مسافات فظھر كانه اسم واحد ولكي‬ ‫توجد مسافات نكتب‬ ‫;‪SELECT first_name ||' '|| last_name FROM s_emp‬‬ ‫استخدام عبارة ‪DISTINCT‬‬ ‫تستخدم عبارة ‪ DISTINCT‬لمنع تكرار ظھور بيانات السجل المسترجع فمثال إذا أردنا أن‬ ‫نعرف على الوائف التي ينتسب إليھا الموظفون والمخزنة في جدول الموظفين نجد أن ھنالك‬ ‫وظائف تتكرر حسب عدد الموظفين الذين ينتمون إليھا لمنع تكرار نستخدم عبارة‬ ‫‪DISTINCT‬‬ ‫ويأخذ األمر ‪ SELECT‬الشكل التالي:‬ ‫}… ,]‪SELECT [DISTINCT] { * , COLUMN [alies‬‬ ‫; ‪FROM table_name‬‬ ‫حيث أن‬ ‫‪ COLUMN‬اسم الحقل‬ ‫‪ table_name‬اسم الجدول‬ ‫تسمية العمود‬ ‫‪alies‬‬ ‫‪ DISTINCT‬لمنع التكرار‬ ‫ملخص الفصل‬ ‫تناولنا في ھذا الفصل كتابة جمل ‪ SQL‬البسيطة )جملة ‪ (SELECT‬التي تستخدم في‬ ‫استرجاع البيانات وكذلك بعض القواعد اإلرشادية التي يجب اتباعھا عند كتابة وتنفيذ جمل‬ ‫الـ‪ SQL‬كما تناولنا استخدام العمليات الحسابية مع جملة ‪ SELECT‬والعملية اإللحاقية‬ ‫وكذلك عبارة ‪ DISTINCT‬التي تستخدم لمنع تكرار ظھور السجالت‬
  • 17. ‫‪moon‬‬ ‫استرجاع البيانات بشروط ترتيبھا‬ ‫اھداف الفصل‬ ‫١- المعرفة التامة ألسماء الجداول وأسماء الحقول وخصائصھا وانواع البيانات‬ ‫٢- التعامل مع جملة ‪ SQL‬البسيطة )‪(SELECT Statement‬‬ ‫٣- استخدام أوامر محرر ‪SQL‬‬
  • 18. ‫‪moon‬‬ ‫استخدام جملة الشرط ‪WHERE CLAUSE‬‬ ‫مقدمة‬ ‫لقد قمنا في الوحدة السابقة بالتعرف الى جملة االستعالم البسيط )‪(SELECT Statement‬‬ ‫التي من خاللھا تم استرجاع البيانات من الجداول . وفي ھذا الفصل سنتابع الحديث عن ھذه‬ ‫الجملة يشكل أوسع ، حيث سنسترجع البيانات من الجداول بناء على شروط معينة ، أو مرتبة‬ ‫حسب بيانات حقول معينة ، أي سندرس االمور المتعلقة بجملة الشرط في جملة االسترجاع ، من‬ ‫حيث المعامالت الشرطية وطريقة التعبير عن الشرط والترتيب التصاعدي والترتيب التنازلي‬ ‫للبيانات‬ ‫الصيغة العامة لجملة الشرط‬ ‫}*|...,... ,2‪SELECT {Field1, Field‬‬ ‫1‪FROM Table‬‬ ‫;‪WHERE Condition‬‬ ‫حيث أن‬ ‫أسماء الحقول التي سيام استرجاع بياناتھا‬ ‫2‪Field1.Field‬‬ ‫أسم الجدول الذي سيتم استرجاع البيانات منه‬ ‫1‪Table‬‬ ‫جملة شرطية أو أكثر تكون نتيجتھا إما ‪ True‬او ‪ False‬وتتكون من‬ ‫‪Condition‬‬ ‫أسماء حقول وتعبيرات ومعامالت‬ ‫الشرح‬ ‫تستخدم جملة ‪ WHERE‬لحصر البيانات التي سيتم استرجاعھا من الجداول وھي تحتوي على‬ ‫شرط وتقع مباشرة بعد المقطع ‪ FROM‬وعند تنفيذ الجملة سيتم استرجاعھا بيانات الحقول‬ ‫المذكورة التي تحقق الشرط المذكور في جملة ‪ WHERE‬ويمكن أن تقارن الجملة الشرطية بين‬ ‫قيم أو حقول في الجدول أو تعبيرات حسابية أي أن جملة ‪ WHERE‬تحتوي على مايلي:‬ ‫أسماء الحقول‬ ‫•‬ ‫معامالت المقارنة‬ ‫•‬ ‫قيم ثابتة‬ ‫•‬ ‫متغيرات وتغبيرات حسابية‬ ‫•‬
  • 19. ‫‪moon‬‬ ‫األمور التي يجب أخذھا بعين االعتبار‬ ‫١- عند استخدام حقول النص وحقول التاريخ في جملة الشرط يجب وضع القيم بين عالمتي‬ ‫تنصيص مفردتين )’ ’(‬ ‫٢- في حالة الحقول النصية يجب مراعاة حالة األحرف كبيرة أو صغيرة‬ ‫٣- في حالة حقول التاريخ يجب مراعاة صيغة التاريخ )‪ (FORMAT‬والصيغة األسا سية‬ ‫للتاريخ ھي كما يلي ‪DD-MON-YY‬‬
  • 20. ‫‪moon‬‬ ‫معامالت المقارنة ‪COMPARISON OPERATORS‬‬ ‫تشمل معامالت المقارنة الرموز التالية:‬ ‫المعنى‬ ‫المعامل‬ ‫يساوي‬ ‫=‬ ‫أكبر من‬ ‫>‬ ‫أقل من‬ ‫<‬ ‫أكبر من أو يساوي‬ ‫=>‬ ‫اقل من أو يساوي‬ ‫=<‬ ‫ال يساوي‬ ‫><‬ ‫ال يساوي‬ ‫=!‬ ‫تستخدم معامالت المقارنة في جملة الشرط لمقارنة تعبير بآخر في جملة ‪ WHERE‬كما في‬ ‫الصيغة التالية :‬ ‫ﺗﻌﺒﻴﺮ ‪ OPERATOR‬ﺗﻌﺒﻴﺮ ‪WHERE‬‬ ‫مثال‬ ‫’69-‪WHERE hiredate=’01-SEP‬‬ ‫0051=>‪WHERE sal‬‬ ‫’‪WHERE name=’Ahmed‬‬ ‫‪WHERE sal<> other‬‬ ‫معامالت مقارنة أخرى‬ ‫المعنى‬ ‫نفى المعامل‬ ‫المعامل‬ ‫بين قيمتين‬ ‫‪NOT BETWEEN‬‬ ‫‪BETWEEN‬‬ ‫ضمن قائمة من القيم‬ ‫‪NOT IN‬‬ ‫‪IN‬‬ ‫مطابقة نمط النص‬ ‫‪NOT LIKE‬‬ ‫‪LIKE‬‬ ‫ھل ھي قسمة فارغة‬ ‫‪IS NOT NULL‬‬ ‫‪IS NULL‬‬ ‫١- المعامل ‪BETWEEN‬‬ ‫يستخدم ھذا المعامل السترجاع بيانات الصفوف التي تعتمد على مدى من القيم أي البيانات التي‬ ‫تقع بين قيمتين‬ ‫مثال‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;0052 ‪WHERE sal BETWEEN 1500 AND‬‬
  • 21. ‫‪moon‬‬ ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين اقع رواتبھم بين ٠٠٥١و ٠٠٥٢‬ ‫مالحظة‬ ‫ستم استرجاع بيانات الموظف الذي يببلغ راتبه تماما ٠٠٥١ أو ٠٠٥٢ أي أن جملة‬ ‫‪ BETWEEN‬تتضمن الحد األعلى والحد األدنى للقيم التي سيتم استرجاعھا‬ ‫٢- المعامل ‪IN‬‬ ‫يستخدم ھذا المعامل للبحث عن قيمة داخل قائمة من القيم فتحتوي ھذه القائمة قيما ثابتة أو قد‬ ‫تكون ھذه القائمة عبارة عن جملة استعالم فرعي‬ ‫مثال‬ ‫‪SELECT name, sal , deptno FROM S_EMP‬‬ ‫;)03,01( ‪WHERE detno IN‬‬ ‫أي أنه سيتم استرجاع اسم الموظف وراتبه ورقم القسم الذي يعمل به للموظفين الذين يعملون في‬ ‫قسم رقم ٠١ أو قسم رقم ٠٣‬ ‫٣- المعامل ‪.LIKE‬‬ ‫يستخدم ھذا المعامل للبحث عن نص معين داخل حقل نصي ، حيث سيتم مطابقة حروف النص‬ ‫المذكورة في جملة الشرط‬ ‫مثال‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;’%‪WHERE name LIKE ‘S‬‬ ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين تبدأ أسماؤھم بحرف ‪S‬‬ ‫مالحظة‬ ‫تستخدم االشارة % عوضا عن أي قيمة نصية ، قد تكون ال شيء أو أي عدد من الحروف للبحث‬ ‫مثال عن اسم معين ينتھي بحرف ‪ A‬نكتب ’‪ ‘%A‬وللبحث عن نص يحتوي حرف ‪ A‬نكتب‬ ‫’%‪ ‘%A‬وھكذا بإمكاننا أن نبحث عن أي مقطع داخل حقل نصي معين‬ ‫مثال‬ ‫‪SELECT * FROM S_EMP‬‬ ‫;’%‪WHERE name LIKE ‘_A‬‬
  • 22. ‫‪moon‬‬ ‫أي أنه سيتم استرجاع جمبع بيانات الموظفين الذين يكون الحرف الثاني في أسمائھم ھو ‪A‬‬ ‫مالحظة‬ ‫تستخدم اإلشارة _ عوضا عن حرف واحد فقط‬ ‫٤- المعامل ‪IS NULL‬‬ ‫يستخدم ھذا المعامل لفحص القيمة )ال شيء( أي قيم القول التي ال تحتوي على بيانات‬ ‫مثال‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;‪WHERE comm. IS NULL‬‬ ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين ليس لھم عمولة أو لم يتم ادخال‬ ‫عمولتھم‬ ‫المعامالت المنطقية ‪LOGICAL OPERATORS‬‬ ‫المعنى‬ ‫المعامل‬ ‫يرجع ‪ TRUE‬اذا كانت كلتا القيمتين ‪TRUE‬‬ ‫‪AND‬‬ ‫يرجع ‪ TRUE‬اذا كانت احدى القيمتين ‪TRUE‬‬ ‫‪OR‬‬ ‫يرجع ‪ TRUE‬إذا كانت القيمة ‪FALSE‬‬ ‫‪NOT‬‬ ‫تستخدم المعامالت المنطقية لترجع قيمة واحدة ‪ TRUE‬أو ‪ FALSE‬كنتيجة بين قيمتين‬ ‫منطقيتين او لعكس قيمة منطقية من ‪ TRUE‬الى ‪ FALSE‬والعكس‬ ‫من خالل المعامالت المنطقية يمكننا تكوين أكثر من شرط داخل جملة ‪ WHERE‬باستخدام‬ ‫المعامل‪ AND‬او المعامل ‪OR‬‬ ‫١- المعامل ‪AND‬‬ ‫يتطلب ھذا المعامل أن تكون كال القيمتين ‪TRUE‬‬ ‫مثال‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;002<‪WHERE sal>=2600 AND comm‬‬ ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين يزيد راتبھم عن ٠٠٦٢ وتقل‬ ‫عمولتھم في نفس الوقت عن ٠٠٢ أي انه يجب يتحقق الشرطين السترجاع البيانات‬
  • 23. ‫‪moon‬‬ ‫٢- المعامل ‪OR‬‬ ‫يتطلب ھذا المعامل أن تكون أي من القيمتين ‪TRUE‬‬ ‫مثال‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;03=‪WHERE sal <200٠ OR deptno‬‬ ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموفين الذين يزيد راتبھم عن ٠٠٠٢ أو يعملون في‬ ‫قسم رقم ٠٣ أي أنه يجب يتحقق أي من الشرطين السترجاع البيانات‬ ‫المعامل ‪NOT‬‬ ‫٣-‬ ‫يقوم ھذا المعامل بعكس قيمة منطقية من ‪ TRUE‬إلى ‪ FALSE‬والعكس‬ ‫مثال‬ ‫‪SELECT name, sal FROM S_EMP‬‬ ‫;)04,02( ‪WHERE deptno NOT IN‬‬ ‫أي أنه سيتم استرجاع اسم الموظف وراتبه للموظفين الذين ال يعملون في القسمين رقم ٠٢ و رقم‬ ‫٠٤ وفي ھذه الحالة تم عكس نتيجة المعامل ‪IN‬‬
  • 24. ‫‪moon‬‬ ‫أولويات المعامالت المنطقية ومعامالت المقارنة‬ ‫إذا ورد أكثر من معامل منطقي في نفس جملة الشرط فإن أولوية تنفيذ ھذه المعامالت من األعلى‬ ‫إلى األدتى غي كالتالي :‬ ‫األقواس‬ ‫١-‬ ‫معامالت المقارنة )> ، < ، = ، ><(‬ ‫٢-‬ ‫‪NOT‬‬ ‫٣-‬ ‫‪AND‬‬ ‫٤-‬ ‫‪OR‬‬ ‫٥-‬ ‫استخدام جملة الترتيب ‪ORDER BY‬‬ ‫الصيغة العامة‬ ‫}*|…,…,2‪SELECT {Field1, Field‬‬ ‫1‪FROM Table‬‬ ‫‪WHERE Condition‬‬ ‫;]‪ORDER BY Field3 [ASC|DESC‬‬ ‫حيث أن‬ ‫اسم الجدول الذي سيتم استرجاع البيانات منه‬ ‫1‪Table‬‬ ‫اسماء الحقول التي سبتم استرجاع بياناتھا‬ ‫2‪Field1, Field‬‬ ‫جملة شرطية أو اكثر تكون نتيجتھا إما ‪ True‬أو ‪ False‬وتتكون من‬ ‫‪Condition‬‬ ‫اسماء حقول وتعبيرات ومعامالت منطقية‬ ‫اسم الحقل الذي سيتم الترتيب بناء عليه‬ ‫3‪Field‬‬ ‫استرجاع البيانات مرتبة تصاعديا ويجوز عدم ذكرھا‬ ‫‪ASC‬‬ ‫استرجاع البيانات مرتبة تنازليا‬ ‫‪DESC‬‬ ‫الشرح‬ ‫عند استرجاع البيانات تستخدم جملة ‪ ORDER BY‬لترتيب البيانات حسب حقل معين أو‬ ‫عدة حقول وتأتي ھذه الجملة في نھاية جملة االسترجاع ‪ SELECT‬وقد يكون ھذا الترتيب‬ ‫تصاعديا )من القيمة الصغيرة إلى القيمة الكبيرة ( عند استخدام المقطع ‪ ASC‬وقد يكون تنازليا‬ ‫)من الفيمة الكبيرة إلى القيمة الصغيرة( عند استخدتم المقطع ‪DESC‬‬ ‫مثال‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno ASC‬‬
  • 25. ‫‪moon‬‬ ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين ال يعملون في القسمين رقم ٠٢ ورقم‬ ‫٠٤وستكون البيانات مرتبة تصاعديا حسب رقم الموظف‬ ‫ويجوز كتابة الجملة السابقة دون المقطع ‪ ASC‬كمايلي:‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno‬‬ ‫مثال‬ ‫‪SELECT * FROM S_EMP‬‬ ‫)04,02( ‪WHERE deptno NOT IN‬‬ ‫;‪ORDER BY empno DESC‬‬ ‫أي أنه سيتم استرجاع جميع بيانات الموظفين الذين ال يعملون في القسمين رقم ٠٢ ورقم‬ ‫٠٤وستكون البيانات مرتبة تنازليا حسب رقم الموظف‬ ‫ملخص الفصل‬ ‫تناولنا من خالل ھذا الفصل موضوع استرجاع البيانات بشروط من الجداول وموضوع ترتيب‬ ‫البيانات تصاعديا وتنازليا كما وتطرقنا من خالل دراسة جملة الشرط إلى معامالت المقارنة‬ ‫والمعامالت المنطقية ومعامالت أخرى مثل ‪BETWEEN‬و ‪IN‬و ‪ IS NULL‬ومايتعلق بھا‬ ‫من حيث طريقة االستخدام وتركيب جملة الشرط وأولويات معامالت المقارنة والمعامالت‬ ‫المنطقية.‬
  • 26. ‫‪moon‬‬ ‫الدوال الحرفية‬ ‫اھداف الفصل‬ ‫في نھاية ھذا الفصل إن شاء ﷲ ستكون قادر على :‬ ‫تحويل الحروف من صغيرة إلى كبيرة وبالعكس من خالل ‪SQL‬‬ ‫١-‬ ‫ضبط ومحاذاة الحروف داخل النص الموجود في‪SQL‬‬ ‫٢-‬ ‫القيام بحذف البيانات من الجداول‬ ‫٣-‬ ‫التعامل مع اللفظ الصوتي للبيانات‬ ‫٤-‬ ‫القيام بتعديل بيانات الجدول‬ ‫٥-‬
  • 27. ‫‪moon‬‬ ‫الدال الحرفية والضبط والمحاذاة‬ ‫دالة تحويل البيانات إلى حروف صغيرة ‪LOWER Function‬‬ ‫تسنخدم ھذه الدالة لتحويل البيانات من حروف كبيرة إلى حروف صغيرة ويتم استخدام ھذه الدالة‬ ‫غاليا مع جمل أخرى‬ ‫الشكل العام انظر المثال التالي‬ ‫مثال .‬ ‫)‪SELECT LOWER (name), LOWER (job‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم عرض اسم الموظف ووظبقته ولكن بحروف صغيرة‬ ‫‪LOWER name‬‬ ‫‪LOWER job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪ali‬‬ ‫‪salesman‬‬ ‫‪ahmed‬‬ ‫‪analyst‬‬ ‫‪sami‬‬ ‫‪manager‬‬ ‫‪khaled‬‬ ‫‪manager‬‬ ‫دالة تحويل البيانات إلى حروف كبيرة ‪UPPER Function‬‬ ‫تسنخدم ھذه الدالة لتحويل البيانات من حروف صغيرة إلى حروف كبيرة ويتم استخدام ھذه الدالة‬ ‫غاليا مع جمل أخرى‬ ‫مثال‬ ‫)‪SELECT UPPER (name), UPPER (job‬‬ ‫;‪FROM S_EMP‬‬ ‫دالة تحويل الحرف األول من البيانات إلى حرف كبير ‪INITCAP‬‬ ‫تستخدم ھذه الدالة لتحويل أول حرف من بيانات الحقل المحدد إلى حرف كبير ويتم استخدام ھذه‬ ‫الدالة غالبا مع الجمل أخرى‬ ‫مثال‬ ‫)‪SELECT INITCAP (name), INITCAP (job‬‬ ‫;‪FROM S_EMP‬‬
  • 28. ‫‪moon‬‬ ‫سيتم عرض اسم الموظف ووظبقته ولكن اول حرف في كالھما سيكون كبير‬ ‫‪INITCAP name‬‬ ‫‪INITCAP job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪Ali‬‬ ‫‪Salesman‬‬ ‫‪Ahmed‬‬ ‫‪Analyst‬‬ ‫‪Sami‬‬ ‫‪Manager‬‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫دالة اقتطاع )قص( جزء من بيانات الحقل ‪SUBSTR‬‬ ‫تستخدم لعرض أو قص جزء معين من بيانات العمود او الحقل‬ ‫الصيغة العامة‬ ‫)‪SUBSTR(Field1,N,M‬‬ ‫حيث أن‬ ‫الحقل المراد االقتطاع منه‬ ‫‪String‬‬ ‫اول حرف يبدأ عنده االقتطاع‬ ‫‪N‬‬ ‫عدد الحروف المراد اقتطاعھا‬ ‫‪M‬‬ ‫مثال‬ ‫)3,1,'‪SUBSTR('Ahmed‬‬ ‫قيكون الناتج‬ ‫‪Ahm‬‬ ‫مثال‬ ‫)2,1 ,‪SELECT SUBSTR (name‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم اقتطاع الحرف األول والثاني من اسم الموظف وعرضھا‬
  • 29. ‫‪moon‬‬ ‫دالة تحديد موقع حرف في بيانات حقل ‪INSTR Function‬‬ ‫تستخدم ھذه الدالة لتحديد مكان أو موقع حرف في بيانات العمود أو الحقل‬ ‫الصيغة العامة‬ ‫)’‪INSTR (Field, ‘C‬‬ ‫حيث أن‬ ‫الحقل الذي سيتم التحديد منه‬ ‫‪Field‬‬ ‫الحرف المراد استخراج موقعه‬ ‫‪C‬‬ ‫مثال‬ ‫)’‪SELECT INSTR (name, ‘l‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم استخراج موقع الحرف ‪ l‬من حقل اسم الموظف‬ ‫‪INSTR name‬‬ ‫--------------------‬ ‫2‬ ‫0‬ ‫0‬ ‫4‬ ‫دالة ضبط ومحاذاة ناحية اليمين للبيانات ‪RPAD Function‬‬ ‫تستخدم ھذه الدالة لمحاذاة البيانات ناحية اليمين حيث يتم ملء حرف معين )أو حروف ( يمين‬ ‫البيانات‬ ‫الشكل العام‬ ‫)’‪RPAD (COL | VALUE, N, ‘ String‬‬ ‫حيث أن‬ ‫اسم الحقل المطلوب محاذاة بياناته ، ووضع حرف )حروف( يمينه‬ ‫‪COL‬‬ ‫يمكن وضع قيمة أو متغير حرفي بين عالمتي تنصيص )" "(‬ ‫‪VALUE‬‬ ‫عدد مرات ظھور الحرف الجديد‬ ‫‪N‬‬
  • 30. ‫‪moon‬‬ ‫الحرف أو المتغير الذي سيتم ملء الفراغات به‬ ‫‪String‬‬ ‫مثال‬ ‫)’$’,7 ,‪SELECT name, RPAD (sal‬‬ ‫;‪FROM S_EMP‬‬ ‫‪NAME‬‬ ‫‪RPAD SAL‬‬ ‫-------------------- --------------------‬ ‫‪Ali‬‬ ‫$$$$869‬ ‫‪Ahmed‬‬ ‫$$$6391‬ ‫‪SAMI‬‬ ‫$5.2151‬ ‫‪KHALED‬‬ ‫57.9953‬ ‫دالة ضبط ومحاذاة ناحية اليسار للبيانات ‪LPAD Function‬‬ ‫تستخدم ھذه الدالة لمحاذاة البيانات ناحية اليمين حيث يتم ملء حرف معين )أو حروف ( يسار‬ ‫البيانات‬ ‫الشكل العام‬ ‫)’‪LPAD (COL | VALUE, N, ‘ String‬‬ ‫حيث أن‬ ‫اسم الحقل المطلوب محاذاة بياناته ، ووضع حرف )حروف( يمينه‬ ‫‪COL‬‬ ‫يمكن وضع قيمة أو متغير حرفي بين عالمتي تنصيص )" "(‬ ‫‪VALUE‬‬ ‫عدد مرات ظھور الف الجديد‬ ‫‪N‬‬ ‫الحرف أو المتغير الذي سيتم ملء الفراغات به‬ ‫‪String‬‬ ‫مثال‬ ‫)’#’,7 ,‪SELECT name, LPAD (sal‬‬ ‫;‪FROM S_EMP‬‬ ‫‪NAME‬‬ ‫‪LPAD SAL‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪Ali‬‬ ‫869####‬ ‫‪Ahmed‬‬ ‫6391###‬ ‫‪SAMI‬‬ ‫5.2151#‬ ‫‪KHALED‬‬ ‫57.9953‬
  • 31. ‫‪moon‬‬ ‫حذف و تعديل البيانات‬ ‫دالة حذف بيانات ناحية يمين الحقل ‪RTRIM Function‬‬ ‫تستنخدم ھذه الدالة لحذف بيانات من ناية يمين العمود او الحقل المحدد‬ ‫الصيغة العامة‬ ‫)’‪RTRIM (COL | VALUE,‘ String‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود‬ ‫‪VALUE‬‬ ‫قيمة الحرف أو المتغير الذي سيتم البحث عنه‬ ‫‪String‬‬ ‫مثال‬ ‫)’‪SELECT name, RTRIM (job،’man‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم حذف ‪ man‬من يمين العمود ‪job‬‬ ‫‪name‬‬ ‫‪RTRIM job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪ALI‬‬ ‫‪Sales‬‬ ‫‪AHMED‬‬ ‫‪Analyst‬‬ ‫‪SAMI‬‬ ‫‪Manager‬‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫دالة حذف بيانات يسار الحقل ‪LTRIM Function‬‬ ‫تستخدم ھذه الدالة لحذف بيانات من ناحية يسار العمود أو الحقل المحدد‬ ‫الشكل العام‬ ‫)’‪LTRIM (COL | VALUE,‘ String‬‬
  • 32. ‫‪moon‬‬ ‫حيث أن‬ ‫اسم القل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود‬ ‫‪VALUE‬‬ ‫قيمة الحرف أو المتغير الذي سيتم البحث عنه‬ ‫‪String‬‬ ‫مثال‬ ‫)’‪SELECT name, LTRIM (job،’man‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم حذف ‪ man‬من يسار العمود ‪job‬‬ ‫‪name‬‬ ‫‪LTRIM job‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪ALI‬‬ ‫‪Salesman‬‬ ‫‪AHMED‬‬ ‫‪Analyst‬‬ ‫‪SAMI‬‬ ‫‪ager‬‬ ‫‪Khaled‬‬ ‫‪ager‬‬ ‫دالة قياس طول بيانات الحقل ‪LENGTH Function‬‬ ‫تستخدم ھذه الدالة إليجاد طول بيانات متغير أو الحقل المحدد‬ ‫الشكل العام‬ ‫)‪LENGTH (COL | VALUE‬‬ ‫مثال‬ ‫)’‪SELECT LENGTH (name), LENGTH (‘WELCOME‬‬ ‫;‪FROM S_EMP‬‬ ‫سيتم حساب طول اسم الموظف وطول كلمة ‪.WELCOME‬‬ ‫‪LENGTH name‬‬ ‫’‪LENGTH ‘WELCOME‬‬ ‫--------------------‬ ‫--------------------‬ ‫3‬ ‫7‬ ‫5‬ ‫7‬ ‫4‬ ‫7‬ ‫6‬ ‫7‬
  • 33. ‫‪moon‬‬ ‫دالة تعديل بيانات في جدول ‪TRANSLATE Function‬‬ ‫تستخدم ھذه الدالة لنعديل أو لتبديل بيانات موجودة في جدول معين‬ ‫الشكل العام:‬ ‫)‪TRANSLATE (COL|VALUE, FROM, TO‬‬ ‫حيث أن‬ ‫اسم القل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود )البيانات(‬ ‫‪VALUE‬‬ ‫الحرف )الحروف( المطلوب تغييره‬ ‫‪FROM‬‬ ‫الحرف )الحروف( المطلوب احالله‬ ‫‪TO‬‬ ‫مثال‬ ‫)’‪SELECT name, TRANSLATE (name,’MI’,’WY‬‬ ‫;5.2151=‪FROM S_EMP WHERE sal‬‬ ‫سيتم استبدال الحرفين ‪ MI‬بالحرفين ‪WY‬‬ ‫‪name‬‬ ‫)‪TRANSLATE(name‬‬ ‫--------------------‬ ‫--------------------‬ ‫‪SAMI‬‬ ‫‪SAWY‬‬ ‫دالة عرض اللفظ الصوتي ‪SOUNDEX Function‬‬ ‫تستخدم ھذه الدالة إليجاد اللفظ الصوتي للبيانات )المتغيرات( الموجودة في جدول معين حتى ولو‬ ‫كان ھناك اختالف في بعض األحرف الھجائية‬ ‫الشكل العام:‬ ‫)‪SOUNDEX (COL|VALUE‬‬ ‫حيث أن‬ ‫اسم القل أو العمود‬ ‫‪COL‬‬
  • 34. ‫‪moon‬‬ ‫القيمة البديلة للعمود )البيانات(‬ ‫‪VALUE‬‬ ‫مثال‬ ‫)‪SELECT name, SOUNDEX (name‬‬ ‫;5.2151=‪FROM S_EMP WHERE sal‬‬ ‫ملخص الفصل‬ ‫تناولنا الدوال الحرفية الخاصة بتحويل حالة الحروف من حروف كبيرة إلى حروف صغيرة‬ ‫والعكس وكذلك ضبط محاذاة الحروف داخل النص ومن الدوال الھامة الني تناولناھا ايضا دوال‬ ‫حذف البيانات ودوال عرض اللفظ الصوتي وتعديل بيانات الجداول .‬
  • 35. ‫‪moon‬‬ ‫دوال التاريخ والتحويل‬ ‫أھداف الفصل‬ ‫في نھاية ھذا الفصل إن شاء ﷲ تكون قادر على :‬ ‫التعامل مع دوال التاريخ في ‪SQL‬‬ ‫١-‬ ‫التعامل مع أدوات التحويل في ‪SQL‬‬ ‫٢-‬
  • 36. ‫‪moon‬‬ ‫دوال التاريخ‬ ‫الوفت ھو الحياة والتاريخ ھو أصل االمم لذا لتا لنتعمق في كيفية استخدام دوال التاريخ‬ ‫الدالة ‪Sysdate‬‬ ‫ھذه الدالة تقوم بإعطاء تاريخ اليوم الحالي أي التاريخ المخزن في جھاز الكمبيوتر الذي ينفذ عليه‬ ‫ھذا األمر ويتم تخزين التاريخ وھمي يسمى ‪ Dual‬وھو موجود أصال داخل لغة أوراكل لذلك‬ ‫يجب أن تتم عملية استدعاء التاريخ من ھذا الجدول‬ ‫مثال‬ ‫الستدعاء تاريخ اليوم الحالي نقوم باآلتي :‬ ‫;‪SELECT SYSDATE FROM DUAL‬‬ ‫الدالة ‪NEXT_DAY‬‬ ‫تستخدم ھذه الدالة لعرض التاريخ الذي يوافق التاريخ التالي للتاريخ المعطى‬ ‫فعلى سبيل المثال إذا كان التاريخ الموجود ھو ٧/٧/٣٠٠٢ وطلب من الجھاز تحديد اليوم الذي‬ ‫يصادف يوم الجمعة من نفس الشھر فإنه يعطي ١١/٧/٣٠٠٢‬ ‫الشكل العام‬ ‫)‪NEXT_DAY (DATE,CHAR‬‬ ‫حيث إن ‪ DATE‬ھو التاريخ المعطى والمراد إيجاد التاريخ لليوم الذي يليه من خالل وضع اسم‬ ‫اليوم داخل المتغير ‪CHAR‬‬ ‫مثال‬ ‫;‪SELECT NEXT_DAY (‘7/7/2003’,’MONDAY’) FROM DUAL‬‬ ‫نتيجة التنفيذ‬ ‫‪NEXT_DAY‬‬ ‫-------------------‬ ‫3002/7/11‬
  • 37. ‫‪moon‬‬ ‫دالة تحديد اليوم األخير من كل شھر ‪LAST_DAY‬‬ ‫تقوم ھذه الدالة بتحديد آخر يم من كل شھر معطى‬ ‫الشكل العام‬ ‫)‪LAST_DAY (DATE‬‬ ‫حيث أن ‪ DATE‬ھو تاريخ الجھاز أو تاريخ تقوم بإدخاله‬ ‫مثال‬ ‫;‪SELECT LAST_DAY (SYSDATE) FROM DUAL‬‬ ‫بفرض أن تاريخ الھاز ‪ SYSDATE‬ھو٢/٢/٣٠٠٢ فإن نتيجة للجملة السابقة ھي كما يلي :‬ ‫)‪LAST_DAY(SYSDATE‬‬ ‫--------------------------------‬ ‫3002/2/82‬ ‫مالحظة‬ ‫يمكنك أن تقوم بطرح تاريخ من تاريخ آخر كالمثال التالي‬ ‫‪SELECT SYSDATE – HIRDATE FROM S_EMP‬‬ ‫حيث ‪ HIRDATE‬حقل تاريخ .‬ ‫الدالة ‪MONTHES_BETWEEN‬‬ ‫تستخدم ھذه الدالة لعرض مدة الفرق بين شھرين‬ ‫الشكل العام‬ ‫‪MONTHES_BETWEEN‬‬ ‫)2‪(DATE1,DATE‬‬ ‫مثال‬ ‫‪MONTHES_BETWEEN‬‬ ‫)’49-‪(’01-SEP-95’,’11-JAN‬‬ ‫سيكون الناتج‬ ‫4914779.1‬
  • 38. ‫‪moon‬‬ ‫الدالة ‪ADD_ MONTHES‬‬ ‫تستخدم ھذه الدالة إلضافة عدد من األشھر إلى التاريخ معطى‬ ‫)‪ADD_MONTHES (DATE,M‬‬ ‫حيث أن‬ ‫التاريخ المعطى‬ ‫‪DATE‬‬ ‫عدد االشھر‬ ‫‪M‬‬ ‫مثال‬ ‫)6,’99-‪ADD_MONTHES (‘7-JAN‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫99-‪7-JUL‬‬ ‫الدالة ‪ROUND‬‬ ‫تستخدم ھذه الدالة لعرض اقرب بداية شھر أو سنه لتاريخ معين تحدده‬ ‫مالحظة :تستخدم ھذه الدالة أيضا للبيانات الرقمية للتقريب وسيتم شرحھا في باب الدوال الرقمية‬ ‫الصيغة العامة‬ ‫)‪ROUND (DATE, M|Y‬‬ ‫حيث أن‬ ‫التاريخ المعطى‬ ‫‪DATE‬‬ ‫نكتب ‪ MONTH‬اذا اردنا ان يعود باقرب شھر‬ ‫‪M‬‬ ‫نكتب ‪ YEAR‬اذا اردنا ان يعود باقرب سنة‬ ‫‪Y‬‬ ‫مثال‬ ‫)’‪ROUND (’07-MAY-96’, ‘MONTH‬‬
  • 39. ‫‪moon‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫69-‪01-JUN‬‬ ‫مثال‬ ‫)’‪ROUND (’07-MAY-96’, ‘YEAR‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫69-‪01-JAN‬‬ ‫الدالة ‪TRANCATE Function‬‬ ‫تستخدم ھذه الدالة لعرض تاريخ اول يوم في شھر أو سنه لتاريخ معين تحدده‬ ‫مالحظة :تستخدم ھذه الدالة أيضا للبيانات الرقمية للتقريب وسيتم شرحھا في باب الدوال الرقمية‬ ‫الصيغة العامة‬ ‫)‪TRUNC (DATE, M|Y‬‬ ‫حيث أن‬ ‫التاريخ المعطى‬ ‫‪DATE‬‬ ‫نكتب ‪ MONTH‬اذا اردنا ان يعرض تاريخ اول يوم في شھر‬ ‫‪M‬‬ ‫التاريخ المحدد‬ ‫نكتب ‪ YEAR‬اذا اردنا ان يعود ألول يوم لنفس سنة التاريخ‬ ‫‪Y‬‬ ‫مثال‬ ‫)’‪TRUNC (’07-MAY-96’, ‘MONTH‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫69-‪01-MAY‬‬ ‫مثال‬ ‫)’‪TRUNC (’07-MAY-96’, ‘YEAR‬‬ ‫عند التنفيذ سيكون الناتج‬
  • 40. ‫‪moon‬‬ ‫69-‪01-JAN‬‬ ‫دوال التحويل‬ ‫يتم تحويل البيانات من شكل إلى اخر وتوجد دوال خاصة بالتحويل ومنھا‬ ‫التحويل الى حروف ‪TO_CHAR‬‬ ‫١-‬ ‫التحويل إلى أرقام ‪TO_NUMBER‬‬ ‫٢-‬ ‫التحويل إلى تاريخ ‪TO_DATE‬‬ ‫٣-‬ ‫الدالة ‪TO_CHAR‬‬ ‫١-‬ ‫تستخدم ھذه الدالة لتحويل التاريخ او األرقام الى جملة حرفية حيث يتم تغيير شكل التاريخ او‬ ‫االرقام من صورة إلى اخرى‬ ‫اوال من تاريخ الى جملة حرفية‬ ‫الشكل العام‬ ‫)’‪TO_CHAR (DATE,’FMT‬‬ ‫حيث أن‬ ‫قيمة التاريخ‬ ‫‪DATE‬‬ ‫الصورة الجديدة‬ ‫‪FMT‬‬ ‫مثال‬ ‫)’‪SELECT TO_CHAR (SYSDATE,’DAY, DD MON YY‬‬ ‫;‪FROM DUAL‬‬ ‫لنفرض أن تاريخ الجھاز )‪ (SYSDATE‬ھو ٧/٧/٣٠٠٢ فإن نتيجة التنفيذ للجملة السايقة ھي‬ ‫كمايلي:‬ ‫)’‪TO_CHAR (SYSDATE,’DAY, DD MON YY‬‬ ‫-----------------------------------‬ ‫‪MONDAY‬‬ ‫‪7 JUL‬‬ ‫30‬ ‫مالحظة‬ ‫اذا كتبنا ‪ YYYY‬فانه سوف يتم عرض السنة كاملة متال٣٠٠٢‬ ‫١-‬ ‫اذا كتبنا ‪ MM‬فإنه سوف يتم عرض رقم الشھر مثال 60‬ ‫٢-‬ ‫اذا كتبنا ‪ MONTH‬فانه سوف يتم عرض اسم الشھر كامال مثل ‪July‬‬ ‫٣-‬ ‫اذا كتبنا ‪DY‬سيتم عرض أول ثالثة حروف من اليوم‬ ‫٤-‬ ‫اذا كتبنا ‪ DAY‬سيتم عرض اسم اليوم كامال‬ ‫٥-‬
  • 41. ‫‪moon‬‬ ‫٦- اذا اردنا عرض الساعة نكتب ‪ HH24:MI:SS AM‬مثل ‪15:45:32 PM‬‬ ‫ثانيا التحويل من أرقام الى جملة حرفية‬ ‫الشكل العام‬ ‫)’‪TO_CHAR (NUMBER,’FMT‬‬ ‫حيث أن‬ ‫‪ NUMBER‬الرقم‬ ‫الصورة الجديدة‬ ‫‪FMT‬‬ ‫مثال‬ ‫)999,999,9$’,0050056( ‪SELECT TO_CHAR‬‬ ‫;‪FROM S_EMP‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫)999,999,9$’,0050056( ‪TO_CHAR‬‬ ‫-----------------------------------‬ ‫005,005,6‬ ‫مالحظة‬ ‫عندما نكتب 9 فإننا نعني يھا خاتة رقم‬ ‫١-‬ ‫عندما نكتب ) , ( يتم طباعة الفاصلة‬ ‫٢-‬ ‫عندما نكتب) . ( يتم طباعة الفاصلة العشرية‬ ‫٣-‬ ‫الدالة ‪TO_NUMBER‬‬ ‫تقوم ھذه الدالة بتحويل القيمة الرقمية المخزنة عى شكل حرف ‪ CHAR‬إلى قيمة رقمية فعليه‬ ‫‪NUMBER‬‬ ‫الشكل العام‬ ‫)‪TO_NUMBER (VALUE‬‬ ‫حيث‬ ‫قيمة مخزنة على شكل أرقام حرفية سيتم عرضھا على شكل قيم رقمية‬ ‫‪VALUE‬‬
  • 42. ‫‪moon‬‬ ‫مثال‬ ‫لنفرض أن لدينا حقل اسمه ‪ NUM‬في جدول ‪ DATA‬به ارقام ولكنھا ارقام حرفيه أي انھا‬ ‫تعامل معاملة الحروف فال تدخل في العمليات الحسابية فعند تنفيذ ھذه الدالة ستم تحويل القيم إلى‬ ‫فيم رقمية يمكن ان تدخل في العمليات الحسابية‬ ‫)‪SELECT NUM, TO_ NUMBER (NUM‬‬ ‫;‪FROM DATA‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫‪NUM‬‬ ‫)‪TO_NUMBER(NUM‬‬ ‫----------------------------------------------------------------------------------------‬ ‫6329‬ ‫6329‬ ‫6257‬ ‫6257‬ ‫مالحظة‬ ‫العمودان بھما نفس القيم ولكن يوجد اختالف في النوع‬ ‫الدالة ‪TO_DATE‬‬ ‫تقوم ھذه الدالة بتحويل المتغير الحرفي داخل اشاؤة النص الى متعير بشكل تاريخ المثال التالي‬ ‫يوضح ذلك :‬ ‫)’‪SELECT TO_DATE (‘JULY 7,2003’,’MONTH DD, YY‬‬ ‫;‪FROM DUAL‬‬ ‫عند التنفيذ سيكون الناتج‬ ‫)’‪TO_DATE (‘JULY 7,2003’,’MONTH DD, YY‬‬ ‫--------------------------------------------------------------‬ ‫30-‪07-JUL‬‬ ‫ملخص الفصل‬ ‫تناولنا في ھذا الفصل دوال التاريخ الخاصة بالتعامل مع كامل الصيغ للتاريخ والوقت‬ ‫واستعراضھا بعدة أشكالھا ثم تطرقنا دوال التحويل التي تعمل تحويل حاالت الكتابة من نص إلى‬ ‫تاريخ و بالعكس كذلك من أرقام الى نص‬
  • 43. ‫‪moon‬‬ ‫الدوال الرقمية‬ ‫أھداف الفصل‬ ‫في نھاية ھذا الفصل ان شاء ﷲ ستكن قادر على‬ ‫التعامل مع دالة القيمة المطلقة‬ ‫١-‬ ‫إيجاد الجذر التربيعي لألعداد‬ ‫٢-‬ ‫التعامل مع الدالة األسية لألعداد‬ ‫٣-‬ ‫تقريب األعداد العشرية من خالل ‪SQL‬‬ ‫٤-‬ ‫تقريب األعداد من خالل حذف المنزلة العشرية‬ ‫٥-‬ ‫إيجاد باقي القسمة لألعداد‬ ‫٦-‬ ‫ايجاد اشارة األعداد السالبة‬ ‫٧-‬
  • 44. ‫‪moon‬‬ ‫الدوال المطلقة واألسية واألسية والجذر التربيعي‬ ‫دالة القيمة المطلقة ‪ABS Function‬‬ ‫تستخدم ھذه الدالة إليجاد القيمة المطلقة لرقم معين وغالبا يتم استخدان ھذه الدالة مع جمل أخرى‬ ‫الشكل العام‬ ‫)‪ABS (COL|VALUE‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود )البيانات(‬ ‫‪VALUE‬‬ ‫مثال‬ ‫;‪SELECT name,job,hiredate-sysdate FROM S_EMP‬‬ ‫عند التنفيذ سيتم طباعة:‬ ‫‪name‬‬ ‫‪job‬‬ ‫‪hierdate-sysdate‬‬ ‫---------------------------- --------------------‬ ‫‪ALI‬‬ ‫‪Salesman‬‬ ‫2523.6096-‬ ‫‪AHMED‬‬ ‫‪Analyst‬‬ ‫2523.1486-‬ ‫‪SAMI‬‬ ‫‪Manager‬‬ ‫2523.2954-‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫2523.5556-‬ ‫نالحظ أن قيم العمود ‪ hierdate-sysdate‬قيم سالبة ولكي نجعلھا دائما موجبة نأخذ القيمة‬ ‫المطلقة لھذا العمود ونكتب‬ ‫;‪SELECT name,job,ABS(hiredate-sysdate) FROM S_EMP‬‬ ‫عند التنفيذ سيتم طباعة:‬ ‫‪name‬‬ ‫‪job‬‬ ‫‪hierdate-sysdate‬‬ ‫------------------------------------------------‬ ‫‪ALI‬‬ ‫‪Salesman‬‬ ‫2523.6096‬ ‫‪AHMED‬‬ ‫‪Analyst‬‬ ‫2523.1486‬ ‫‪SAMI‬‬ ‫‪Manager‬‬ ‫2523.2954‬ ‫‪Khaled‬‬ ‫‪Manager‬‬ ‫2523.5556‬
  • 45. ‫‪moon‬‬ ‫الدالة األسية ‪POWER Function‬‬ ‫٢-‬ ‫تستخدم ھذه الدالة إليجاد قيمة رقم مرفوع ألس‬ ‫الشكل العام‬ ‫)‪POWER (COL|VALUE,P‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود )البيانات(‬ ‫‪VALUE‬‬ ‫قيمة األس‬ ‫‪P‬‬ ‫مثال‬ ‫;‪SELECT DIGIT, POWER (DIGIT1, 2) FROM DIGIT‬‬ ‫عند التنفيذ سيتم طباعة:‬ ‫1‪DIGIT‬‬ ‫)2 ,1‪POWER (DIGIT‬‬ ‫--------------------‬ ‫--------------------‬ ‫02‬ ‫004‬ ‫52‬ ‫526‬ ‫5.52‬ ‫52.056‬ ‫5.03‬ ‫52.039‬ ‫دالة الجذر التربيعي ‪SQRT Function‬‬ ‫٣-‬ ‫تستخدم ھذه الدالة إلياد الجذر التربيعي لرقم معين‬ ‫الشكل العام‬ ‫)‪SQRT (COL|VALUE‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫القيمة البديلة للعمود )البيانات(‬ ‫‪VALUE‬‬
  • 46. moon ‫مثال‬ SELECT name,sal, SQRT (sal) FROM S_EMP; :‫عند التنفيذ سيتم طباعة‬ NAME SAL SQRT (SAL) ------------------------------------------------ Ali 968 31.113 Ahmed 1936 44 SAMI 1512.5 38.9805 KHALED 3599.75 59.988
  • 47. ‫‪moon‬‬ ‫دوال التقريب وباقي القسمة واإلشارة‬ ‫دالة التقريب العشري ‪ROUND Function‬‬ ‫تستخدم ھذه الدالة لتقريب العدد إلى اقرب رقم عشري أو صحيح‬ ‫الشكل العام‬ ‫)‪ROUND (COL|VALUE, N‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫قيمة عددية‬ ‫‪VALUE‬‬ ‫عدد المواقع العشرية‬ ‫‪N‬‬ ‫مثال‬ ‫;‪SELECT SQRT (sal), ROUND (SQRT (sal), 2) FROM S_EMP‬‬ ‫عند التنفيذ سيتم طباعة:‬ ‫)‪SQRT (SAL‬‬ ‫)1 ,)‪ROUND (SQRT (sal‬‬ ‫------------------------------------------------‬ ‫311.13‬ ‫11.13‬ ‫44‬ ‫44‬ ‫5089.83‬ ‫89.83‬ ‫889.95‬ ‫99.95‬ ‫دالة التقريب بالحذف ‪TRANCATE Function‬‬ ‫تستخدم ھذه الدالة لتقريب الرقم بحذف بعض المواقع العشرية‬ ‫الشكل العام‬ ‫)‪TRUNC (COL|VALUE,N‬‬ ‫حيث أن‬ ‫اسم الحقل أو العمود‬ ‫‪COL‬‬ ‫قيمة عددية‬ ‫‪VALUE‬‬ ‫عدد المواقع العشرية‬ ‫‪N‬‬