دورات هندسية

 

 

أوراكل ( Oracle )

صفحة 2 من 3 الأولىالأولى 1 23 الأخيرةالأخيرة
النتائج 11 إلى 20 من 27
  1. [11]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb

    الجزءالسادس من سلسلة تعليم الأوراكل من الصفر.

    0 Not allowed!


    الملفات المرفقة
    • نوع الملف: pdf part6.pdf‏ (100.3 كيلوبايت, 2364 مشاهدات)

  2. [12]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb

    الجزءالسابع من سلسلة تعليم الأوراكل من الصفر.

    0 Not allowed!


    الملفات المرفقة
    • نوع الملف: pdf part7.pdf‏ (115.3 كيلوبايت, 2491 مشاهدات)

  3. [13]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0
    جزانا وإياكم كل خير وعافيه وجعل الله هذا العمل والدعاء في ميزان حسناتك وميزان حسنات أمة الحبيب محمد صلى الله عليه وسلم وأنا في الخدمة دائماً إن شاء الله.
    والسلام عليكم ورحمة الله تعالى وبركاته.

    0 Not allowed!



  4. [14]
    عمر ترك
    عمر ترك غير متواجد حالياً
    عضو


    تاريخ التسجيل: Mar 2006
    المشاركات: 26
    Thumbs Up
    Received: 0
    Given: 0
    جزاك الله كل خير

    0 Not allowed!



  5. [15]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb دورة Sql [الدرس الأول] : مقدمة في قواعد البيانات

    بسم الله الرحمن الرحيم

    الشيء الذي لن تستطيع تجاهله عند تعلم قواعد البيانات هو لغة الاستفسار او الاستعلام و التي يعبر عنها بـ SQL ، فما هي الـ SQL ؟

    SQL اختصار لـ Structured Query Language
    SQL لغة ANSI قياسية
    SQL تسمح لك بالوصول إلى قواعد البيانات ومن ثم التعامل معها
    SQL تسمح لك باستخراج معلومات من قواعد البيانات
    SQL تمكنك من إضافة سجل جديد إلى قاعدة البيانات
    SQL تمكنك من حذف سجل من قاعدة البيانات
    SQL تمكنك من تحديث سجل في قاعدة البيانات
    SQL سهلة التعلم جداً جداً جداً

    ماذا يعني أن لغة SQL هي لغة ANSI قياسية ؟

    ANSI هي اختصار لـ (American National Standards Institute) ، اعتمد هذا المعهد لغة الـSQL لجعلها قياسية في التعامل مع جميع قواعد البيانات .

    SQL تعمل مع جميع برامج قواعد البيانات مثل : ( MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase, وغيرها ) .

    والآن بعد ان تعرفنا على ماهيّة الـSQL ، نأتي إلى الجداول في قواعد البيانات ، وننشيء سوياً قاعدة البيانات التي سيتم عليها الشرح خلال هذه الدورة إن شاء الله .

    الجداول و قاعدة البيانات :

    قاعدة البيانات دائماً تتكون من جدول أو أكثر ، لكل جدول اسم خاص به ، في كل جدول صفوف وأعمدة ، كل صف يمثل سجل في قاعدة البيانات وكل عمود يمثل حقل .
    مثال : جدول الموظفين التالي - أحد الجداول التي سنعتمدها خلال الدورة إن شاء الله - :


    الجدول السابق يحتوي أربع سجلات ( سجل لكل موظف ) وستة حقول وهي على الترتيب : ( الاسم الأول ، الاسم الأخير ، رقم الموظف ، عنوانه ، يوم ميلاده ، رقم القسم الذي يعمل فيه - DNO = Department_Number- ) .


    لا بد أن يكون لكل جدول هام حقل مميز ، بحيث أن قيمة هذا الحقل في سجل ما داخل هذا الجدول يستحيل أن تتساوى مع قيمة نفس الحقل لسجل آخر في نفس الجدول .. هذا الحقل نطلق عليه المفتاح الرئيسي أو Primary Key ، ولعلك تتساءل الآن : ما فائدة المفتاح ؟

    في أي قاعدة بيانات ، لكي نربط الجداول مع بعضها البعض في هذه القاعدة نحتاج إلى علاقات فيما بين هذه الجداول ؛ ولتكوين العلاقات نستخدم هذه المفاتيح ، بحيث أن حقلاً معيناً يوجد في جدولين مثلاً : الجدول الأول لا تتكرر قيمة هذا الحقل فيه لجميع السجلات ، بينما في الجدول الثاني يوجد هذا الحقل ولكن قد تتكرر أحدى قيمه .. .. إذن نختار هذا الحقل كمفتاح للجدول الأول ونربط بهذا المفتاح الجدولين .

    ومن هنا نستطيع استرجاع المعلومات التي نريدها من أكثر من جدول باستخدام هذه العلاقات ..

    سيساعدك العرض الفلاشي التالي إن شاء الله في فهم الموضوع بطريقة أكثر تنظيماً وعمقاً ، يوضح هذا العرض الثلاث جداول التي سنعتمدها خلال الدورة إن شاء الله والعلاقات فيما بينها ، هذه الجداول تابعة لقاعدة بيانات إحدى الشركات ، هذه الشركة لها قسمين ( 5و 4 ) وفي كل قسم يوجد مشاريع خاصة يعمل فيها الموظفون :

    والآن نأتي للجزء الاكثر متعة في درس اليوم" الجزء العملي " : سننشيء معاً في الآكسس الآن معاً الجداول والعلاقات التي سيتم عليها شرح الدورة وطلب تنفيذ الواجبات ، على مرحلتين :

    وصف الجداول وبيانات كل جدول

    إنشاء الجداول والعلاقات خطوة بخطوة على الآكسس


    أولاً : وصف الجداول وبيانات كل جدول :

    سندرس الإس كيو إل على هذه الثلاث جداول إن شاء الله :

    الجدول الأول جدول الموظفين EMPLYEE ، وهو الجدول الذي تحدثنا عنه قبل قليل ، مع ملاحظة ان الحقل NUMBER يعتبر المفتاح Primary Key لهذا الجدول .

    الجدول الثاني هو جدول المشروع PROJECT وحقوله كالتالي، مع ملاحظة ان الحقلان PNUMBER & DNUM كل منهما عبارة عن مفتاح Primary Key لهذا الجدول :


    الجدول الثالث هو جدول العمال WORKS_ON وحقوله كالتالي :


    ثانياً : إنشاء الجداول والعلاقات خطوة بخطوة على الآكسس :

    افتح برنامج الآكسس التابع للأوفيس ، ثم اطلب قاعدة بيانات جديدة باتباع المسار التالي : File Blank DataBase

    ثم سمّي قاعدة البيانات هذه SQLDB مثلاً .

    الآن نأتي إلى إنشاء الجداول وحداً تلو الآخر وتحديد المفاتيح فيها وتكوين العلاقات بينها ، كما يوضح العرض الفلاشي التالي :

    بعد ذلك قم بتعبئة بيانات كل جدول كما وضحنا في المرحلة الأولى .. تذكر دوماً ان تنشئ العلاقات بين الجداول قبل أن تقم بتعبئتها بالبيانات ، و تذكر أن تكتب البيانات سليمة كي تستطيع متابعة الشرح وحل الواجبات معنا في هذه الدورة إن شاء الله :sport:

    والآن ستوضح هذه الصورة المصطلحات العربية التي سنستخدمها في الشرح ، والمقابل لها باللغة الإنجليزية والتي ستجدها في الكتب أو على صفحات الانترنت التي تتحدث عن قواعد البيانات :



    0 Not allowed!



  6. [16]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb دورة SQL [الدرس الثاني] : الأوامر Create, Delete & Alter

    بسم الله الرحمن الرحيم

    تعرفنا في الدرس الأول على لغة السيكيول وإمكانياتها ، وأنشأنا سوياً قاعدة البيانات التي سنطبق عليها دورتنا :) .

    اليوم سنبدأ بالإبحار الفعلي في لغة الاستعلامات ( السيكيول SQL ) وسنتعلم كيف ننشئ قاعدة بياناتنا بأوامرSQL :

    قواعد اللغة :

    لغة SQL لاتفرق بين الحروف الكبيرة والصغيرة .
    لغة SQL لاتهتم بالمسافات البيضاء .
    تنتهي جميع الاستعلامات بالفاصلة المنقوطة (;) بعض البرامج لا تشترط وجود هذه الفاصلة وبعضها يوجب وجودها .


    تدشين قاعدة بيانات وإنشاء الجداول في السيكيول SQL Create Database and Table :

    لإنشاء قاعدة بيانات : نستخدم هذا الأمر :

    كود:
    CREATE DATABASE database_name;
    ولإنشاء جداول فيها ، نستخدم هذا الأمر :

    CREATE TABLE table_name OR CREATE TABLE database_name.table_name ( column_name1 data_type, column_name2 data_type, ....... );

    نلاحظ أننا :

    نستخدم الأقواس لتعريف حقول الجدول بداخلها .

    نستخدم الفاصلة (،) للفصل بين الحقول .

    ونستخدم الفاصلة المنقوطة (؛ ) بعد إغلاق أقواس تعريف الحقول ، أي بعد الانتهاء من الأمر تماماً ..

    وبعد الفاصلة المنقوطة نستطيع الشروع في تدشين جدول جديد . وهكذا ..


    أما أنواع البيانات (data type) التي يمكن أن تحتويها حقول الجداول في السيكيول فهي كما موضحة في الجدول التالي :

    كود:
    Data Type نوع البيان
     Description الوصف
     
    integer(size)
    int(size)
    smallint(size)
    tinyint(size) 
     
    لتعريف أعداد صحيحة ، عدد خانات العدد يمكن أن نحدده بين القوسين ، نطاق الأعداد التي يمكن تعريفها هنا يبدأ من (-2147483648) إلى (2147483647) والنطاق المستخدم في الواقع من الصفر إلى 4294967295 . 
    
    Hold integers only. The maximum number of digits are specified in parenthesis.
     
    decimal(size,d)
    numeric(size,d) 
    
     لتعريف الأعداد ذات الكسور العشرية ،داخل القوسين نحدد في المتغير الأول أكبر عدد لخانات الرقم الصحيح ، وفي المتغير الثاني نحدد عدد الخانات العشرية بعد الفاصلة .
      
    Hold numbers with fractions. The maximum number of digits are specified in "size". The maximum number of digits to the right of the decimal is specified in "d".
     
    char(size) 
    
    لتعريف نص ذو حجم محدد ، نحدد الحجم داخل القوسين .. هذه الجمل من الممكن أن تتكون من أحرف وأرقام وعلامات
    
    Holds a fixed length string (can contain letters, numbers, and special characters). The fixed size is specified in parenthesis.
     
    varchar(size) 
    
    لتعريف نص ذو حجم متغير ، نحدد أكبر حجم ممكن لها داخل الأقواس .. هذه الجمل من الممكن أن تتكون من أحرف وأرقام وعلامات . 
    
    Holds a variable length string (can contain letters, numbers, and special characters). The maximum size is specified in parenthesis.
     
    text 
    
    لتعريف حقل نص يستقبل 65535 حرف كحد أقصى 
     
    A field with a maximum lenght of 65535 ,(2^16-1), characters.
     
    mediumtext 
    لتعريف حقل نص يستقبل 16777215 حرف كحد أقصى 
    
    A field with a maximum lenght of 16777215 ,(2^24-1), characters.
     
    date(yyyymmdd)
    date 
    
     لتعريف تاريخ ، أكبر حجم نستطيع تحديده داخل القوسين هو عشرة خانات : أربع للعام واثنان للشهر واثنان لليوم وخانتان للفواصل بين البيانات ، والنطاق المسموح به هنا من 1000-01-01 إلى 9999-12-31 
    Holds a date.
    
    timestamp(yyyynnddhhmmss) 
     
     يحتوي على التاريخ والتوقيت ، نطاقه يبدأ من "1970-01-01-00:00:00" وهي تقابل (January .1,1970 00:00:00) وينتهي النطاق بـ "2038-01-18-19:14:07" 
    
    include both the Date & Time.
    مثال :

    في المثال التالي سنستعرض كيفية إنشاء جدولانا الثاني ( جدول المشاريع PROJECT) والثالث ( جدول العمل WORKS_ON ) كالتالي :

    كود:
    CREATE TABLE PROJECT ( PNAME varchar(15) , PNUMPER int(2) NOT NULL, DNUM int NOT NULL );
    
    /* تذكر ان آخر سطر في تعريف حقول الجدول لا ينتهي بفاصلة ، لأن القوس سيغلق بعده */ 
     
     CREATE TABLE WORKS_ON ( ENUMBER int(2) NOT NULL, PNO int(2) NOT NULL, HOURS decimal(3,1) );
    إذا كان الحقل مفتاحاً ، فمن الضروري أن لا يكون خالياً ، لذلك نشترط ونضع حدود عليه بكلمة NOT NULL ، وفي حالة لم يدخل له المستخدم قيمة حين إدخال البيانات إلى الجدول فإن رسالة خطأ ستظهر له ، أو ستعتمد القيمة الـDefault في هذا الحقل إذ لا يترك فارغاً دون قيمة .. تذكر دوماً ان تستخدم NOT NULL مع تعريف الحقل إذا كان مفتاحاً !!

    حذف قاعدة بيانات أو جدول Delete a Database or Table :

    لحذف قاعدة بيانات كامل نستخدم الأمر التالي " كن حذراً عند استخدامك له ، فقد تفقد الكثير من البيانات " :

    كود:
    DROP DATABASE database_name;
    أما لحذف جدول بكل محتوياته ، نستخدم الأمر التالي :

    كود:
    DROP TABLE table_name;
    وإذا كان هذا الجدول مرتبط بعلاقات مع جداول أخرى في قاعدة البيانات ، فلا بد علينا من تحديث بيانات الجداول المتبقية لدينا ، ويكون ذلك بإضافة كلمة CASCADE بعد أمر الحذف مباشرة وقبل الفاصلة المنقوطة ، مثال :
    حذف جدول الموظفين والذي يرتبط بعلاقة مع جدول المشاريع بالأمر التالي :

    كود:
    DROP TABLE EMPLOYEE CASCADE;
    إضافة أو حذف حقل لجدول موجود في قاعدة البيانات Alter Table Command:

    لإضافة أو حذف حقل في أي جدول موجود لدينا في قاعدة البيانات ، نستخدم أحد الأمرين التاليين :

    كود:
    /* أمر إضافة حقل : */
    
    ALTER TABLE table_name ADD column_name data_type;
    
    /* أمر حذف حقل : */
     
    ALTER TABLE table_name DROP COLUMN column_name CASCADE;
    
    OR  
     
    ALTER TABLE table_name DROP column_name CASCADE;
    وكما ذكرنا ، عند الحذف إذا كان الحقل الذي نريد حذفه مرتبط بعلاقات مع حقول أخرى في الجداول الأخرى في قاعدة البيانات ، فلا بد علينا من تحديث بيانات الحقول المتبقية لدينا ، ويكون ذلك بإضافة كلمة CASCADE بعد أمر الحذف مباشرة وقبل الفاصلة المنقوطة ، عموماً يفضل استخدام التحديث دوماً .

    مثال :

    لإضافة حقل جديد إلى جدوال العمل ، وليكن اسم هذا الحقل Location ، نستخدم الأمر التالي :

    كود:
    ALTER TABLE WORKS_ON ADD Location VARCHAR(12);

    0 Not allowed!



  7. [17]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb دورة SQL [الدرس الثالث : الجزء الأول] : الأمر Select ... From ... Where

    بسم الله الرحمن الرحيم

    بعد أن تعرفنا على أوامر إنشاء قاعدة البيانات وجداولها وما إلى ذلك ، نأتي إلى درس اليوم والذي يعتبر مخ استخدام قواعد البيانات في أي مجال ، وهو استخراج البيانات من اي قاعدة بيانات .

    الأمر SELECT - SELECT Statement :

    يستخدم هذا الأمر لتحديد واسترجاع حقول البيانات التي تريدها من أي جدول في قاعدة البيانات ، يقدم لك النتيجة في جدول أيضاً ، صيغة هذا الأمر كالتالي :

    كود:
    SELECT column_name(s)
    FROM table_name;


    نفصل بين الحقول المطلوبة عند استخدام هذا الأمر بالفاصلة (،) .. مثال : لتحديد واسترجاع حقول اسماء الموظفين من جدول الموظفين ، نكتب :

    كود:
    SELECT FNAME , LNAME
    FROM EMPLOYEE;


    والنتيجة هي :


    وهكذا ، يمكننا تحديد الحقل بياناته الخاصة بكل السجلات الموجودة في قاعدة البيانات ،أما لو كانت البيانات في الحقل الواحد من الممكن أن تكون متكررة ( مثل رقم القسم في حقل DNO في جدول الموظفين ) فإنه ليس من العملي ان نسترجع قيم مكررة ، وعليه نستطيع أن نستخدم كلمة DISTINCT مع أمر SELECT فيعطينا النتيجة بدون تكرار للقيم ، مثال :

    كود:
    SELECT DISTINCT DNO
    FROM EMPLOYEE;


    والنتيجة هي :


    أعطانا أرقام الأقسام بدون تكرار :)

    إذن كلمة DISTINCT تستخدم مع الأمر SELECT لاسترجاع أو استخراج القيم المختلفة ، وعليه تكون صياغة الأمر كالتالي :

    كود:
    SELECT DISTINCT column-name(s) FROM table-name;


    وأما إذا كنّا نريد استخراج جميع الحقول من جدول محدد أو من عدة جداول ، فليس علينا ان نكتب جميع أسماء الحقول أو الأعمدة ، بل يكفي فقط أن نضع النجمة (*) ليعطينا جميع الحقول ، مثال :

    كود:
    SELECT * FROM EMPLOYEE;


    والنتيجة تكون :


    وإذا كنّا نريد أن تظهر لنا النتائج مرتبة ترتيباً أبجدياً أو تصاعدياً أو أبجدي بطريقة عكسية أو تنازلي .. نستخدم كلمة ORDER BY في آخر أمر SELECT ،ونضع بعدها اسم السجل ( العمود ) الذي نريد أن تظهر لنا النتيجة مرتبة من خلاله ، الجدول التالي يوضح أوامر الترتيب الممكنة في SQL :

    كود:
    صيغة الأمر   وظيفته 
    
    ORDER BY columnX
    
     تكون الصفوف( السجلات) في جدول النتيجة مرتبة ترتيباً أبجدياً أو تصاعدياً بالنسبة لقيم العمود X . 
    
    ORDER BY columnX DESC
    
     تكون الصفوف( السجلات) في جدول النتيجة مرتبة ترتيباً أبجدياً عكسياً أو تنازلياً بالنسبة لقيم العمود X . 
    
    من الممكن ان نطلب الترتيب في اكثر من حقل (عمود) واحد ، فتأتينا النتيجة مرتبة على حسب قيم الحقل الأول ومن ثم تنتقل لترتيب قيم الحقل الثاني في ظل ترتيب الحقل الأول ، مثال :
    
     SELECT * FROM EMPLOYEE
    ORDER BY FNAME, DNO DESC;
    والنتيجة ستكون عبارة عن جدول ترتبت فيه قيم حقل FNAME أبجدياً من ثم ترتبت فيه قيم حقل DNO تنازلياً في ظل الترتيب الأبجدي الأول !! كما توضح الصورة :


    لا يستخدم الأمر SELECT فقط لإسترجاع بيانات من الجداول سواء كانت مرتبة أو لا ، وإنما يمكننا أن نستخدم العمليات الرياضية الاعتيادية فيه ، فمثلاً لو زدنا عدد ساعات عمل الموظفين بمقدار ساعتين ، فيمكننا من خلال استخدام أمر SELECT أن نسترجع عدد ساعات العمل الجديدة للموظفين لحساب الزيادة في رواتبهم مثلاً .. كما يوضح الأمر التالي :

    كود:
    SELECT HOURS+2 AS New_Hours
    FROM WORKS_ON;


    والنتيجة هي :


    استخدمنا AS لإعادة تسمية الحقل عند عرض النتيجة فقط ، ولا يؤدي ذلك إلى تغيير اسم الحقل الأساسي في الجدول !!

    الشرط WHERE Clause :

    الشرط هو أحد أجزاء الأمر SELECT ، نستخدمه حينما نريد استرجاع قيم معينة ومحددة من أي حقل ، لا جميع القيم الموجودة في الحقل وإنما القيم التي نريدها وفق المعايير التي نحددها في الشرط ، صيغته كالتالي :

    كود:
      SELECT columnX FROM table
    WHERE columnY operator value;


    من الممكن أن يكون columnX هو نفسه columnY ومن الممكن ان يكون حقل مختلف تماماً ولكن في نفس الجدول ، والعمليات التي نستخدمها في الشرط هي :

    كود:
    Operator العملية  Description وصفها   
    
    =
    
     Equal يساوي 
     
    <>
    
     Not equal لا يساوي   
    
    <
    
     Greater than أكبر من 
     
    >
    
     Less than أصغر من  
    
    =<
    
    
     Greater than or equal أكبر من أو يساوي 
     
    =>
    
     Less than or equal أصغر من أو يساوي 
    
    BETWEEN
    
     Between an inclusive range بين قيمتين 
    
    LIKE
    
     Search for a pattern للبحث عن تشابة


    مثال :

    كي نستخرج السجلات كاملة لجميع الموظفين الذين يشتركون في اسم " محمد " :


    كود:
      SELECT *
    FROM EMPLOYEE
    WHERE FNAME = 'محمد';


    والنتيجة هي فقط سجلات الموظفين الذين اسمهم محمد :

    وهكذا بالنسبة للعمليات الاعتيادية ذات اللون الاسود في الجدول ، أما طريقة استخدام كلمة BETWEEN & LIKE ففي الشرط فسنتعرف عليها إن شاء الله في الجظء الثاني من هذا الدرس . :)

    ملاحظة مهمة جداً :

    في الشرط ، نستخدم قوس الاقتباس المفرد ( ' ) فقط حينما يكون الشرط عبارة عن نص ، أما إذا كان رقم فلا نحتاج للقوس .

    إذن تعلمنا في الجزء الأول من الدرس الثالث التالي :

    الأمر SELECT ...... FROM.

    استرجاع القيم المختلفة باستخدام كلمة DISTINCT .

    عرض جميع الحقول باستخدام النجمة * .

    ترتيب النتائج باستخدام ORDER BY .

    تسمية الحقل في جدول النتائج باستخدام AS .

    الشرط WHERE واستخدام العمليات المنطقية المعتادة فيه .



    0 Not allowed!



  8. [18]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb دورة Sql [الدرس الثالث : الجزء الثاني] : التعمق في الشروط

    بسم الله الرحمن الرحيم

    نكمل معاً درسنا الثالث :) فبعد أن تعرفنا على ماهيّة الشرط في أمر Select في الجزء الأول من الدرس .. نتحدث عن الشروط بإسهاب في الجزء الثاني :

    طريقة استخدام كلمة BETWEEN في الشرط فهي كالتالي :

    نستخدم BETWEEN ... AND في الشرط لتحديد النطاق أو المدى للبيانات التي نريدها ، فنطلب بيانات محصورة بين قيمتين عن طريق إضافة هذه القيمتين في الشرط باستخدام BETWEEN ... AND ،القيم من الممكن أن تكون نصوص أو أرقام أو تواريخ ، صياغة الأمر في هذه الحالة تكون كالتالي :

    كود:
    SELECT column_name FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2;


    أمثلة :

    كي نسترجع سجلات الموظفين الذين تتراوح أرقامهم ما بين الرقم 10 إلى الرقم 40 ، نكتب الأمر التالي :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE NUMBER BETWEEN 10 AND 40;


    وفي النتيجة ستترتب السجلات تصاعدياً من حيث الحقل الذي ذكرناه في الشرط ، وهو في هذا المثال : NUMBER كالتالي :


    عندما تكون القيمتين عبارة عن نص ، فإننا نسترجع القيم التي بينهما مرتبة أبجدياً ، وليس كما هي مرتبة أو مخزنة في الجدول ، مثال : لاسترجاع سجلات الموظفين الذين تقع أسماؤهم الأخيرة بين " حمد " و " علي " نكتب الأمر - تذكر أن البحث عن النصوص خاضع لحكم الترتيب الأبجدي -:

    كود:
    SELECT * FROM EMPLOYEE
    WHERE LNAME BETWEEN 'حمد' AND 'علي';


    والنتيجة هنا ستكون عبارة عن ثلاث سجلات فقط ومرتبة أبجدياً كما سنرى في الصورة حيث أن سجل حمد قبل سجلا علي ( في حقل LNAME ) :


    ملاحظة مهمة :

    تختلف برامج قواعد البيانات في طريقة تعاملها مع BETWEEN ... AND ، فبعض البرامج تعتبر القمتين المحددتين من ضمن نطاق البحث فتكون موجودة في النتائج ، وبعضها لا تعتبرها كذلك فلا تشملها النتائج ، وبعضها يعتبر القيمة الأولى داخل نطاق البحث والقيمة الثانية خارج النطاق وهكذا ، لذلك لابد من أن تتعرف على برنامجك بالتجربة !!والتجربة خير برهان .

    هذا بالنسبة لكلمة BETWEEN ، أما طريقة استخدام كلمة LIKE في الشرط فهي كالتالي :

    نستخدم كلمة LIKE في الشرط كي تبحث لنا عن جميع البيانات التي تشترك في معيار معين نحدده نحن بواسطة هذه الكلمة ، وصياغة الأمر في هذه الحالة يكون كالتالي :

    كود:
    SELECT column FROM table
    WHERE column LIKE pattern معيار ;


    الحكمة في استخدام LIKE هي أنه يمكنك أن تبحث بها بواسطة جزء من البيان إن لم تكن تعرف البيان كاملاً ، فلو كنّا نعرفه كاملاً لاستخدمنا علامة المساواة ( = ) مباشرةً ،فمثلاً لو كنا نريد استرجاع سجلات الموظفين الذين تبدأ أسماؤهم بحرف الباء فقط لن نستطيع حصر جميع الأسماء التي تبدأ بحرف الباء لذلك نستخدم LIKE ، أو لو كنا نريد استرجاع سجلات الموظفين الذين يسكنون في مدينة الرياض مثلاً ، من المستحيل أن نحفظ عناوينهم كاملة ، ولكن نستطيع البحث عن سجلاتهم عن طريق استخدام كلمة " الرياض " في الشرط LIKE ، نستخدم مع LIKE علامة النسبة المئوية (%) في مكان الخانات التي لا نعرفها " المفقودة " في المعيار .

    أمثلة:

    1. للبحث عن سجلات الموظفين الذين تبدأ أسماؤهم بحرف الباء في جدول الموظفين نستخدم الأمر التالي :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE FNAME LIKE 'ب%'; /* وضعنا (%) بعد حرف الباء أي في مكان الخانات المفقودة */


    والنتيجة هي :


    2. للبحث عن سجلات الموظفين الذين ينتهي اسمهم الأول بحرف الدال ، نستخدم الأمر التالي :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE FNAME LIKE '%د';  /* وضعنا (%) قبل حرف الدال ، أي في مكان الخانات المفقودة */ 
    والنتيجة هي :


    3. للبحث عن سجلات الموظفين الذين يسكنون في مدينة الرياض ، نستخدم الأمر التالي :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE ADDRESS LIKE '%RYADE%';
    /*استخدمنا (%) مرتين في البداية والنهاية لأن العنوان في جدول الموظفين يبدأ برقم المنزل، ثم المدينة ( الرياض )، ثم الدولة*/


    والنتيجة هي :


    4. للبحث عن الموظفين الذين ولدوا في الثمانينات ، نستخدم الأمر التالي:

    كود:
    SELECT * FROM EMPLOYEE
    WHERE BDATE Like '--8-------';
    /* استخدمنا (-) مكان الخانات المفقودة لأننا نعلم أن حقل تاريخ الميلاد من نوع DATE 
    وأن هذا النوع من البيانات يحجز له عشر خانات ،راجع انواع البيانات في الدرس الثاني */


    والنتيجة ستكون :


    ملاحظة هامة :

    في برنامج الآكسس استخدم علامة النجمة * بدلاً من علامة النسبة المئوية % في الشرط LIKE .

    هذا كل شئ بالنسبة للشرط ، أما عندما يكون لدينا أكثر من شرط : في هذه الحالة فإننا نشملها جميعها في WHERE عن طريق وضع الروابط المنطقية بينها مثل : AND, OR كالتالي :


    0 Not allowed!



  9. [19]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb

    عند استخدام AND بين الشروط :

    النتيجة تكون عبارة عن جميع السجلات التي تحققت فيها جميع الشروط ، أي أن الشروط التي وضعنا بينها AND لا بد أن تكون جميعها محققة True كي يظهر السجل في النتيجة ، مثال :

    لكي نطلب سجل الموظف المسمى بـ :"محمد علي" نكتب الأمر التالي:

    كود:
    SELECT * FROM EMPLOYEE
    WHERE FNAME = 'محمد' OR LNAME = 'علي';


    فإن النتيجة التي ستظهر لنا تحتوي فقط على سجلات الموظفين الذين اسمهم " محمد علي "، ولن تظهر سجلات الموظفين الآخرين الذين اسمهم " محمد فلان " أو " فلان علي " ، كالتالي :


    عند استخدام OR بين الشروط :

    النتيجة ستحوي سجلات الموظفين الذين تحققت فيهم أحد الشروط أو جميعها ، يكفي فقط في أي سجل أن يكون شرط واحد محقق كي يظهر السجل في النتيجة ، مثال :

    لكي نطلب سجلات الموظفين الذين اسمهم الأول " محمد " أو اسمهم الأخير " علي " نكتب الأمر التالي :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE FNAME = 'محمد' OR LNAME = 'علي';


    والنتيجة ستحوي سجلات الموظفين الذين اسمهم الأول " محمد " أو اسمهم الأخير " علي " أو اسمهم كاملاً : " محمد علي " ، ستشملهم النتيجة جميعاً إن شاء الله كالتالي :


    يمكنك كذلك أن تستخدم AND + OR بين الشروط باختلاف اشكالها لاستعلام واحد ، كن حذراً واستخدم الأقواس في ذلك ، مثال :

    كود:
    SELECT * FROM EMPLOYEE
    WHERE ( FNAME = 'محمد' OR LNAME = 'علي') AND NUMPER BETWEEN 30 AND 50;


    والنتيجة ستكون :


    بهذا نكون انتيهنا من الشروط بجميع أجزاءها واختلاف ألوانها وصيغها ، تعلمنا في الجزء الثاني من الدرس الثالث :

    استخدام BETWEEN ... AND في الشرط .

    استخدام LIKE في الشرط .

    الجمع بين الشروط باستخدام AND .

    الجمع بين الشروط باستخدام OR .

    الجمع بين الشروط باستخدام AND + OR واستخدام الأقواس في ذلك .

    وهكذا يكون الدرس الثالث بجزأيه قد انتهي بفضل من الله ..
    ولتلخيص لما درسناه اليوم ، احتفظ بالصورة التالية والتي توضح ترتيب الأوامر عند استخدامها مع SELECT ، جميع الأوامر المكتوبة باللون الأحمر اختيارية ويتم اختيار أحد الأوامر من بين الاقواس لاستخدامه :





    0 Not allowed!



  10. [20]
    المهندس المسلم.
    المهندس المسلم. غير متواجد حالياً
    مشرف سابق


    تاريخ التسجيل: Jul 2005
    المشاركات: 680
    Thumbs Up
    Received: 8
    Given: 0

    Lightbulb دورة SQL [الدرس الرابع / الجزء الأول] : الدوال SQL Functions

    بسم الله الرحمن الرحيم

    بعد أن تعرفنا على أمر Select بحذافيره ومن ثم تعرفنا على الشروط فيه بالتفصيل كذلك ، نأتي لدرس اليوم الرابع وهو درس سهل وممتع جداً .. في جزأه الأول سنتعرف على الدوال الموجودة في لغة الإس كيو إل ، وفي الجزء الثاني سنتطرق إلى أوامر إضافة سجلات جديدة إلى الجداول ، و تحديث سجلات موجودة ، وأخيراً حذف السجلات التي لا نحتاج إليها .. فإلى الجزء الاول :

    دوال الإس كيو إل SQL Functions :

    في لغة السيكيول عدد من الدوال الجاهزة والتي لكل منها وظيفة معينة ، الصيغة العامة لهذه الدوال يوضحها الأمر كالتالي :

    كود:
    SELECT function(column) FROM table WHERE condition;


    سندرس معاً خمسة دوال بإذن الله ، وهي : ( AVG, SUM, MAX, MIN, COUNT ).

    AVG(column) Function :

    تعيد لنا متوسط قيم الحقل ( العمود ) الذي حددناه لها ، إذا صادفتها سجلات كان فيها هذا الحقل فارغ فإنها ستتجاهلها ، مثال :

    كود:
    SELECT AVG(HOURS) FROM WORKS_ON WHERE HOURS<20;


    وستعطينا النتيجة = 12.5 .

    SUM(column) Function :

    تعطينا مجموع الكلي لقيم الحقل( العمود ) الذي حددناه لها ، إذا صادفتها سجلات كان فيها هذا الحقل فارغ فإنها ستتجاهلها ، مثال :

    كود:
    SELECT SUM(HOURS) FROM WORKS_ON;


    وستعطينا النتيجة = 58 .

    MAX(column) Function :

    تعطينا أعلى قيمة للحقل ( العمود ) الذي حددناه لها ، إذا صادفتها سجلات كان فيها هذا الحقل فارغ فإنها ستتجاهلها ، مثال :

    كود:
    SELECT MAX(HOURS) FROM WORKS_ON;


    ستكون النتيجة = 20.5 .

    MIN(column) Function :

    تعطينا أصغر قيمة للحقل ( العمود ) الذي حددناه لها ، إذا صادفتها سجلات كان فيها هذا الحقل فارغ فإنها ستتجاهلها ، مثال :

    كود:
    SELECT MIN(HOURS) FROM WORKS_ON;


    ستكون النتيجة = 10 .

    الدالة COUNT :

    هذه الدالة تأخذ ثلاث أشكال :

    1- الشكل الأول:

    COUNT(column)


    تعيد لنا عدد السجلات ( الصفوف ) الموجودة في الجدول ، تقوم بمعرفة العدد عن طريق الحقل ( العمود) الذي حددناه لها وعليه إن صادفتها سجلات كان فيها هذا الحقل فارغ فإنها لن تقوم بعدها بل ستتجاهلها ، مثال :

    كود:
    SELECT COUNT(PNO) FROM WORKS_ON;


    ستكون النتيجة = 4 ..

    2- الشكل الثاني:

    COUNT(DISTINCT column(s))


    تعيد لنا عدد السجلات ( الصفوف ) الموجودة في الجدول والتي تختلف فيها قيم الحقل ( العمود) الذي حددناه لها ،بمعنى إن تكررت قيمة الحقل فإنها لن تقوم بعد السجل وستتجاهله ، مثال :

    كود:
    SELECT COUNT(DISTINCT PNO) FROM WORKS_ON;


    ستكون النتيجة هنا = 2 ..

    ملاحظة : هذا الشكل يعمل فقط مع ORACLE and Microsoft SQL server ولا يعمل مع الآكسس !!

    3-الشكل الثالث:

    COUNT(*)


    تعيد لنا عدد السجلات ( الصفوف) في الجدول ، مثال :

    كود:
    SELECT COUNT(*) FROM WORKS_ON;


    ستكون النتيجة = 4 .

    بهذا يكون الجزء الأول من درس اليوم قد انتهى ، تعلمنا فيه الدوال ( AVG, SUM, MAX, MIN, COUNT )وعملها في الـSQL.

    0 Not allowed!



  
صفحة 2 من 3 الأولىالأولى 1 23 الأخيرةالأخيرة
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML