الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لغة الإستفسارات البنيوية SQL

مغلقرائج
بدأه مصلح الحريصي في 25 يوليو 2003 · 101 رد · 9,991 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لي فترة طويلة مشارك في هذا المنتدى وقد وجدت أنه تم تغطية مواضيع أكسيس بما يقارب 80% من جداول واستعلامات زنماذج وأكواد ودوال وغيرها ولكن مواضيع لغة SQL لم يتم التعرف عليها بعد بالشكل المطلوب مع أنني أجزم بأن أغلب لغات البرمجة تستخدم تلك اللغة ومنها فيجول بيسك وأوراكل غيرهما من لغات البرمجة وموجدة تلك اللغة في أكسيس أيضاً ونعتمد دائماً على معالج الإستعلامات في إنشاء لغة SQL وبالتالي يتم حفظ الاستعلامات في قاعدة البيانات0

لقد جربت SQL في إدخال البيانات والبحث عن سجل وتحديث البيانات وحذف سجل معين وحذف جميع البيانات كما استخدمت نموذج بدون مصدر للموظفين وعند إدخال بيانات موظف تم تسجيل بياناته من السابق يعرض بيانات ذلك الموظف بدل من رسالة تكرار الرقم ويمكن التحكم في العمليات التي سوف تتم على البيانات من حيث الحذف والتعديل وغير ذلك 0

ما رايكم بأن نتعرف على تلك اللغة ولو بشيء يسير0

هل تؤيدون تلك الفكرة 0

للجميع تحياتي

#2

بكل تأكيد

#4

نعم و بكل تأكيد لأن لغة SQL من أهم اللغات التي يتعامل معها المبرمج في برمجة التطبيقات المعتمده على قواعد البيانات بغض النظر عن نوع قاعدة البيانات التي تستخدم سواء كانت أكسس أو أوراكل أو SQL SERVER أو أي قاعدة بيانات أخرى فهي لغة مشتركه بينها جميعا.

#5

أخي مصلح .. نعم بالتأكيد نؤيدك في هذه الفكرة .. وجزاك الله خيرا(f)

#6

السلام عليكم ورحمة الله وبركاته

أخي العزيز : مصلح الحريصي

أرى أن الدورة التي التحقت بها ستعود علينا بالنفع ;) وهذا أول الغيث (gift).

نؤيدك وبشده بدء دروسا خاصه في لغة SQL البنيوية .

(clock)

تحياتي (f)

========

counter2001b.cgi?602678

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#7

السلام عليكم ورحمة الله وبركاتة

نعم يا استاذنا نؤيدك وبدون اي تردد

وخاصة ان بعض المشاكل التي واجهتني تم حلها من قبل اساتذتي في هذا المنتدى عن طريق هذه اللغة

#8

شكرا اخي مصلح الحريصي

معاك وانا في انتظار هذه الدورس

نود أن تكون هذه الدورس من البداية ويعمل لها تخطيط للمواضيع التي سوف تطرح واتمنى أن يكون الشرح مدعوم بالصور والامثله وتكون من الصفر الى القمه وشكرا

#9

قبل البدء يجب أن تعرف على بعض مفردات لغة SQL حتى نستطيع التعامل معها بالشكل المطلوب وهذه بعض المفردات الهامة :

الرمز أو الأمر الوصف

____________________________________________________________

SELECT استرجاع البيانات البيانات المخزنة من قاعدة البيانات

____________________________________________________________

INSSERT يضيف سجلات جديدة للجدول ويستخدم في إلحاق سجل أو

سجلات من جدول إلى أخر أو مجداول إلى جداول أخرى

____________________________________________________________

UPDATE تعديل البيانات أي استبدال بيانات ببيانات أخرى

____________________________________________________________

DELETE حذف سجل أو سجلات من جدول

____________________________________________________________

CREATE

CREATEtABLE ينشيء جدول جديد في قاعدة البيانات أو ينشيء

فهرساً لحقل موجود أو مجموعة من الحقول

____________________________________________________________

ALTER ينشيء حقول جديدة لجول موجود أو يحذف حقول موجودة

____________________________________________________________

DROP يحذف جدولاً موجود أو فهرساً موجود لحقل أو مجموعة من الحقول

____________________________________________________________

DISTINCTROW يحذف السجلات المكرره في النتيجه

____________________________________________________________

AS تعيين الاسم المستعار الذي نريد استخدامه لاسم الحقل الذي يسبق الاسم المستعار

____________________________________________________________

FROM يعين الجدول أو الاستعلامات التي تحتوي على الحقول التي نريدها في النتيجة

____________________________________________________________

INTO تأتي بعد كلمة INSERT مباشرة وتعني اضافة أو إلحاق إلى ويأتي بعدها اسم الجدول

____________________________________________________________

WHERE يعين المعيار ( الشرط ) الذي نريد استخدامه لتحديد السجلات ويأتي بعدها الشرط الذي نريد أن يتحقق الكمبيوتر منه و WHERE ظرف بحث تحتوي النتيجة على سجلات فقط يكون ظرف البحث لها TRUE

____________________________________________________________

JOIN يعين الربط بين السجلات في الجدول أو استعلامات مختلفة تستخدم JOIN مع الكلمات الأساسية INNET أو LEFT أو RIGHT لتحديد نوع الربط

____________________________________________________________

ORDERBY تقوم بترتيب النتائج حسب العمود المحدد لها 0

____________________________________________________________

DISTINCT يقوم بجمع القيم المكرره مثل لو ورد اسم محمد في الجدول 20 مرة فبواسطة هذه الكلمة يظهر اسم محمد مرة واحدة فقط

____________________________________________________________

GLOBAL تجعل الجدول المؤقت كجدول عام يمكن الوصو إليه من كامل التطبيق وهي بهذه الصيغة

CREATE GLOBAL TEMPORARY TABLE

____________________________________________________________

LOCAL إنشاء جدول مؤقت محلي وهي بهذه الصيغة

CREATE LOCAL TEMPORARY TABLE

____________________________________________________________

بالنسبة للأمثله فليس الوقت مناسباً لها وأحب أن أنوه بأنه من الأفضل حفظ هذه المفردات حتى نستطيع التعامل معها فيما بعد

وتوجد كلمات أخرى تستخدم في قواعد أوراكل ولكن ما يهمنا هنا هو التدرج وسوف نتطرق بشكل موسع لكل عبارة مما سبق وهناك تطبيق على ذلك وأمثلة حتى يتمكن كل متابع معنا من التعامل مع هذه اللغة بكل بساطة ويستغني عن القص واللصق بل ستصبح سهلة جداً 0

هناك أيضاً الدوال المستخدمة مع لغة Sql والشروط والعمليات الحسابية وستأتي في حينها 0

ولكن أرجو أن يشاركني الأخوة في الشرح لأن الموضوع طويل 0

[/CELL]
#10

السلام عليكم ورحمة الله

الاخ الكريم مصلح انا عندي اقتراح ما ادري ايش الراي ، ان التطبيق يكون على قاعدة بيانات Northwind الي تجي مع الاكسس كمثال ؟

#11

بارك الله فيك اخي / مصلح الحريصي :)

الله يزيدك من العلم .... ماشاء الله

عندي طلب أخي :

القيام بشرح كل رمز من هده الرموز على حده مع طرح مثال لكل أداة أو رمز وأنا من المتشوقين جدا الى شرحك

مع خالص دعائي لك أخوك / shz

#12

الحمد لله على السلامه للأستاذ الغالي مصلح

وعقبال أبو حمود إن شاء الله

والله الموضوع مهم وأتمنى أن تستمر كما عودتنا دائماً وأنا أدين لك بالكثير في تعلم الأكسس ولهذا المنتدى الرائع والكبير بأعضائه فإلى الأمام .

#13

الأخ:

System

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

1_ نضع تسميات حقول الجدول وحجم كل حقل ونوع بيانات الحقول واسماء الجداول هنا في المنتدى قبل إنشاء القاعدة وأن رأيتم أن تلك القاعدة أصلح وأنفع فلا يوجد لدي أي مانع وعلى الراس والعين0

الأخ:

shz

بالنسبة للشرح وإعطاء مثال فأبشر بما طلبت ولكن لي رجاء التريث وسوف تتضح الأمور مع الدروس المقبلة ولكن يجب أن نحفظ كما أسلفت لنتمكن من فهم الدروس المقبلة بدلاً من نسأل ماذا تعني هذه العبارة0

الأخ:

أبو يعلى

بإذن الله سنستمر إذا وجدنا تفاعل من الجميع فلي طبع قد يكون سيء ولكنه ملازمني وهو : أنني أحب إذا تعبت في أي موضوع أن يستفاد منه ولا أدور على المدح والثناء ولكن أسعد اللحظات عندي يوم أضع موضوع وأجد أن أحد استفاد منه ولو لم يقلي عن ذلك0

لم أرى أحد شاركني في الشرح والإضافة وكنت أتمنا أن أسعد بالحوار والمشاركة في ذلك0

للجميع تحياتي

#14

الاخ مصلح

توكل على الله ونتمنالك كل التوفيق وان شاء الله الكل يستفد........

#15

اضافه

ياريت الموضوع اتثبت عشان الكل يستفيد

#16

:D

(f)(gift)(f)

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#17

نعم يا استاذنا ...........مصلح الحريصي

فكرة ان يكون المثال من عمل الاعضاء افضل بكثير

وانت المعلم وما تراه ينفع للطلاب فهو الرأي السديد باذن الله تعالى

وأسأل الله ان يجزيك خير الجزاء وان ينفع بعلمك

....

.....

.......

.........

مع العلم انني لم انسى ما تعلمته منك وما ارشدتني الية سابقا عندما كان اسمي ( مرشد المبتدئين ) ولكن للأسف نسيت كلمة المرور فراح عليه اشتراكي ورجعت لكم باسم ( العلم نور )

#18

بارك الله فيك اخي : مصلح الحريصي

الله يزيدك من العلم

#19

الأن سوف نقوم بإنشاء قاعدة بيانات ونسميها DataBaseSQL هذا الأسم ليس شرط بل يمكن تسميتها بأي اسم أخر

ثم سننشيء جدول واحد وقد ننشيء الكثير من الجداول ولكن نبدأ بها تدريجياً0

اسم الجدول : customeTbl

اسم الحقل -------------نوع البيانات ---------------- توضيح

customerID ---------------- رقم ------------------- رقم العميل

customeName--------------- نص ------------------ اسم العميل

customeAddress------------ نص ------------------عنوان العميل

customeTel----------------- نص ------------------ هاتف الحميل

هذا يكفي لأن الهدف هو فهم الطريقة فقط

الأن ننشيء نموذج بدون مصدر ونضع عليه أربع مربعات نص بالأسماء التاليه:

customerID

customeName

customeAddress

customeTel

ونضيف اربعة أزرار على النموذج ونسميها بالتسميات التاليه:

الاسم البرمجي-------------------العنوان

cmdSave --------------------- حفظ سجل

cmdUpUpdate-----------------حفظ التعديل

cmdDelete---------------------حذف سجل

cmdClose-------------------- إغلاق النموذج

أهم شيء هو ضبط مرجع DAO من قائمة Tools أول خيار References ثم من الشاشة التي تظهر نختار المرجع Microsoft DAO 3.6 ObjectLibrary أي نضع على هذا الخيار علامة صح0

أكرر جميع التسميات ليست إلزامية ولكن غير التسميات عليه التغيير في الكود

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

    If MsgBox(" سوف يتم إضافة العميل (( " & [customeName] & "" _
    & "  ))  إلى العملاء في النظام هل توافق على ذلك  ", vbMsgBoxRight& _
    & vbExclamation + vbYesNo + vbDefaultButton2, "") = vbYes Then

   Dim db As Database, rsCust As Recordset, strSQL As String

   Set db = CurrentDb
   strSQL = "Select * from customeTbl "
   Set rsCust = db.OpenRecordset(strSQL, DB_OPEN_DYNASET)

    strSQL = "INSERT INTO customeTbl "
    strSQL = strSQL & "( customerID,"
    strSQL = strSQL & "customeName,"
    strSQL = strSQL & "customeAddress, "
    strSQL = strSQL & "customeTel )"

    strSQL = strSQL & " values ('"

    strSQL = strSQL & Me!customerID & "','"
    strSQL = strSQL & (Me!customeName) & "','"
    strSQL = strSQL & (Me!customeAddress) & "','"
    strSQL = strSQL & Me!customeTel & "');"
    db.Execute strSQL

       MsgBox "لقد تم حفظ السجل بنجاح", vbMsgBoxRight, ""
        Call ClearControls
        customerID = ""
        Exit Sub

        Else
       MsgBox "لقد تم إلغاء حفظ السجل ", vbMsgBoxRight, ""
       DoCmd.CancelEvent
       Me!customerID.SetFocus
        End If

نختار من القائمة اليسرى في صفحة الأكواد General

ونكتب الكود التالي :

Private Sub ClearControls()

        Me!customeName = ""
        Me!customeAddress = ""
        Me!customeTel = ""
End Sub

أنتبه تغش حاول كتابة الأكواد بدلاً من النسخ واللصق حتى يرسخ الكود في الذاكرة0

الأن وبعد أن أنهيت العمل جرب إدخل بيانات وأحفظ وأفتح الجدول هل تجد البيانات في الجدول0

لاحظ أننا استخدمنا : Select * from customeTbl لإختيار جميع الحقول في الجدول وكأننا ننبه الجدول لتهيئته لإستقبال البيانات ثم أستخدمنا العبارة

INSERT INTO customeTbl ومعناها إلحاق إلى الجدول المسمى customeTbl

ثم قمنا بتقسيم عبارات SQL إلى أجزاء ليسهل متابعتها وأيضاً تكون مرتبة0

الشرح المفصل سيأتي ولكن نحاول أولاً إنجاز هذا العمل 0

الكثير منا يرغب عند تسجيل رقم الموظف أن تظهر له رسالة إذا كان الموظف مسجل من قبل0

مع SQL أنا لا أريد ظهور رسالة بل أريد أن تظهر جميع بيانات العميل الذي سجلة رقمه بعد تسجيل الرقم والضغط على مفتاح أنتر أو تاب 0

وأريد أيضاً أن يصير زر حفظ بهات وأزرار حفظ التعديل وحذف ممكنين وإذا لم يكن العميل مسجل من قبل أريد أن يكونان زري حفظ التعديل وحذف سجل باهتين أي غير ممكنين ويكون زر الحفظ ممكن بدلاً من باهت0

لذلك سوف نعمل التالي:

نذهب إلى مربع النص المسمى والنموذج في وضع التصميم ونختار خصائص ثم حدث بعد التحديث وفي الوحدة النمطيه نكتب الكود التالي:

    On Error GoTo y
    Dim MyDatabase As Database
    Dim MyTable As Recordset
    Dim MySQL As String
    Set MyDatabase = CurrentDb

        MySQL = "Select * from customeTbl Where "
        MySQL = MySQL & "[customerID] = " & Me.customerID & ""

    Set MyTable = MyDatabase.OpenRecordset(MySQL, DB_OPEN_DYNASET)

        Me!customerID = MyTable("customerID")
        Me!customeName = MyTable("customeName")
        Me!customeAddress = MyTable("customeAddress")
        Me!customeTel = MyTable("customeTel")

        MyTable.Close
        Me.cmdDelete.Enabled = True
        Me.cmdUpUpdate.Enabled = True
        Me.cmdSave.Enabled = False
y:
If Err.Number = 2113 Then

        Me.cmdDelete.Enabled = False
        Me.cmdUpUpdate.Enabled = False
        Me.cmdSave.Enabled = True
        Call ClearControls


End If

الأن سجل موظف وأحفظ السجل ثم كرر رقم الموظف وأنقر أنتر أو تاب ولاحظ ظهور بيانات الموظف وشاهد حركات الأزرار

سجل رقم أخر 0

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

سوف أرفق مثال على كل ما سبق ولكن أرجو أن أرى أمثلتكم أنتم أيضاً

إلى القاء في الدرس المقبل إن شاء الله

#20

بارك الله فيك يا مصلح وأصلح أحوالك وأحوالنا معك .

وفى انتظار المزيد من الدروس المفيدة جدا .

أشرف خليل

#21

اخى الكريم /مصلح

اصلح الله بالك ودنياك وآخرتك وجعل هذا فى ميزان حسناتك

شرح عظمة واسلوب سهل ذادك الله علما يا اخى ووفقك

80.gif

#22

أخي مصلح

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

تعتبر لغة ال SQL اللغة الرئيسية في عمل الأستفسارات في برامج الأكسس وكذلك الأوركل. فكلما تفقهت في هذه اللغة كلما سهل عليك عمل العديد من الأستفسارات وكذلك تسهل مهمتك في تعلم برمجة الأوراكل.

#23

مبدع يا أستاذ مصلح

أصلح الله حالك وبارك الله في جهودك

======

ليت كل من تعلم شيئ يوصله لغيره لنتشر العلم بين الناس

=====

واصل استاذ مصلح ما بدأت ولك منا الدعاء عسى الله أن يقبل دعاؤنا

#24

لك منا كل الدعاء تستاهل كل الخير

ونحن في انتظار المزيد

لكم مني خالص التقدير

*********************

دروس الاكسس

قاعدة بيانات بالسي++

قاعدة بيانات اخرى بالسي++

الفريق العربي للبرمجه

*********************

كان الله في عون العبد مادام العبد في عون اخيه

#25

الله يبارك فيك يا استاذنا مصلح الحريصي

وانا الان احاول تطبيق المثال بالضبط ولكن اخرني كتابة الاكواد لكونك نصحتنا بعدم النسخ واللصق

وبصراحة ان كلامك واقعي لان ما ضيع معلوماتي الا النسخ والللصق

:):(:o:D;):eek:

هذا الموضوع مغلق.

مواضيع مشابهة