Category

database

SQL شرح كامل للتعامل مع قواعد البيانات

 

SQL (لغة الاستعلام الهيكلية) هي لغة برمجة قياسية تُستخدم لإدارة قواعد البيانات العلائقية وتنفيذ عمليات مختلفة على البيانات الموجودة فيها. تم إنشاؤه في البداية في السبعينيات ، ويستخدم SQL بانتظام ليس فقط من قبل مسؤولي قواعد البيانات ، ولكن أيضًا من قبل المطورين الذين يكتبون نصوص تكامل البيانات ومحللي البيانات الذين يتطلعون إلى إعداد وتشغيل الاستعلامات التحليلية.

تشمل استخدامات SQL تعديل هياكل جدول قاعدة البيانات والفهرس ؛ إضافة وتحديث وحذف صفوف البيانات ؛ واسترجاع مجموعات فرعية من المعلومات من داخل قاعدة بيانات لمعالجة المعاملات وتطبيقات التحليلات. تأخذ الاستعلامات وعمليات SQL الأخرى شكل أوامر مكتوبة كبيانات – تتضمن عبارات SQL شائعة الاستخدام التحديد والإضافة والإدراج والتحديث والحذف والإنشاء والتعديل والاقتطاع.

أصبحت SQL لغة البرمجة المعيارية الواقعية لقواعد البيانات العلائقية بعد ظهورها في أواخر السبعينيات وأوائل الثمانينيات. تُعرف أيضًا باسم قواعد بيانات SQL ، وتتألف الأنظمة العلائقية من مجموعة من الجداول التي تحتوي على بيانات في صفوف وأعمدة. يتوافق كل عمود في الجدول مع فئة البيانات – على سبيل المثال ، اسم العميل أو العنوان – بينما يحتوي كل صف على قيمة بيانات للعمود المتقاطع.

لا بد أنك قد لاحظت الآن أن هنالك الكثير من العمليات التي تستطيع قاعدة البيانات أدائها، فيمكنها أن تنشأ سجلا أو تحذف سجلات أو تعدل سجلا أو تغير جدولا أو تحذف جدولا وغيرها الكثير، هذه العمليات تجرى بواسطة لغة SQL وهي اختصار لعبارة Structured Query Language أي لغة الاستعلامات البنيوية، تسمى كل عملية تنفذ عن طريق لغة SQL بالاستعلام Query، وعلى حسب لغة البرمجة التي تستخدمها وبرنامج قواعد البيانات الذي تستخدمه فإن الاستعلامات ترسل وتنفذ بطرق مختلفة وكيفية الحصول على نتائج الاستعلام تختلف أيضا، في هذه الدورة لن يهمنا كيف تقوم بإرسال الإستعلام إلى قاعدة البيانات وتنفذه وتحصل على نتائجه، ولكن ما سنتحدث عنه هو كيفية كتابة الاستعلام نفسه، لغة SQL شبه متفق عليها بين جميع نظم قواعد البيانات، على سبيل المثال في موقعنا نستخدم لغة البرمجة PHP للوصول إلى مزود قاعدة البيانات MySQL، وهي من التوليفات الشهيرة، ومنها أيضا استخدام برنامج Visual Basic للوصول إلى مزود قاعدة بيانات Microsoft SQL Server لعمل البرامج التي تتطلب وصولا إلى بيانات مركزية كما في المحلات والأسواق والمخازن والمستشفيات وغيرها، ويمكن استخدام لغة SQL أيضا عن طريق البرامج المكتوبة بلغة C و C++ و Perl و Delphi للوصول إلى بيانات مخزنة في قواعد بيانات Oracle و Sybase و Informix و IBM/DB2 و Access وغيرها.

 

الشروط

Why You Should Learn SQL – Even If You're Not a Developer

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

SELECT telephone FROM directory WHERE name='Tim';

فإن ناتج تنفيذ الاستعلام السابق سيكون كالتالي :

name=’Tim’

telephone

1682340

حيث أن هنالك حقلا واحد فقط يطابق الشرط، والشرط هو أن يكون الاسم name يساوي Tim ولأن كلمة Tim جزء من البيانات المخزنة في قاعدة البيانات فإننا نحيطها بعلامات الاقتباس المفردة، لاحظ أيضا أن البرنامج لن يعيد الاسم أيضا ضمن النتائج وذلك لأننا لم نطلب الاسم في عبارتنا، ويمكننا الحصول على الاسم أيضا باستخدام هذه العبارة :SELECT telephone, name FROM directory WHERE name='Tim';

كما تلاحظ فإن عبارة SELECT من بدايتها وحتى ما قبل كلمة WHERE تعمل كما شرحنا في السابق بالضبط.

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

leftside

operator

rightside

name

=

‘Tim’

والعوامل المستخدمة في الشروط مختلفة، أهما ما يلي :

معاملات الاختبار في SQL

المعامل

اسمه

=

يساوي

>

أكبر من

<

أصغر من

<=

أكبر من أو يساوي

>=

أصغر من أو يساوي

<>

لا يساوي

LIKE

يشبه

العامل الأول هو عامل المساواة وهو يتحقق عندما يكون الطرف الأيمن والأيسر متساويان، كما رأينا في المثال السابق، العوامل التالية تبدو واضحة وهي > ويتحقق عندما يكون الطرف الأيسر أكبر من الطرف الأيمن، < ويتحقق عندما يكون الطرف الأيمن أصغر من الطرف الأيسر، وبعدها أكبر من أو يساوي ثم أصغر من أو يساوي.

أما المعامل السادس <> فيعني لا يساوي ويتحقق الشرط فيه عندما يكون الطرف الأيمن لا يساوي الطرف الأيسر.

قد تبدو مقارنة النصوص باستخدام العوامل < و > غريبة نوعا ما، فكيف نقول مثلا بأن ‘Tim’ < ‘Jim’ ؟ الأمر في غاية البساطة، كل ما عليك فعله هو أن تتخيل بأنك تريد أن ترتب هذا الجدول تنازليا فهذا يعني بأن القيم العليا تكون فوق والقيم الدنيا تكون في أسفل الترتيب، ولهذا فإن ‘z’ > ‘a’ تعتبر عبارة صحيحة.

العامل الأخير من عوامل المقارنه هو العامل LIKE ( يشبه ) وهو يستخدم لمقارنة النصوص عادة، ويتحقق الشرط فيه عندما يكون الطرف الأيمن يشبه الطرف الأيسر، ويكتب طرفها الأيمن في صورة نص يحتوي على علامات النسبة المؤوية ( % ) وهي تعني ( أي شيء ) بمعني أنك إذا قلت

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فهذا يعني بأن الاسم يجب أن يكون ( أي شيء ) ثم الحرف ‘m’، أو بمعنى آخر سيكون الشرط متحققا في السجلات التي ينتهي الاسم فيها بالحرف ‘m’، وإذا كتبنا :

SELECT name,telephone FROM directory WHERE name LIKE 'm%';

 

فهذا يعني m ثم ( أي شيء ) أي أنها تطابق حقول name التي تبدأ بالحرف m، حسنا ماذا لو قلنا :

SELECT name,telephone FROM directory WHERE name LIKE '%m%';

أما هذه فتعني ( أي شيء ) ثم الحرف m ثم ( أي شيء ) أي أنها ستطابق جميع السجلات التي يحتوي الحقل name فيها على الحرف m.

يمكنك أن تقيس على ذلك الكثير من الأمور، فيمكنك أن تبحث في قاعدة البيانات عن حقل يبدأ بكلمة ‘this’ وبعدها بعدة أحرف أو كلمات أو ( أي شيء ) تأتي كلمة ‘one’ فتكتب هكذا :

text LIKE 'this%one%'

دعنا نجرب تطبيق هذا الاستعلام على قاعدة البيانات التي نعمل عليها :

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فإن النتائج ستكون كالتالي :

name LIKE ‘%m’

Name

Telephone

Tim

1682340

Jim

2462466

استخدام أكثر من شرط

يمكنك استخدام أكثر من شرط واحد عن جلب سجلات بياناتك، فيمكنك مثلا أن تبحث عن جميع الحقول التي يبدأ اسم صاحبها بالحرف J والحرف D، أو ربما تريد البحث عن جميع الأشخاص الذين تاريخ ميلادهم أكبر من 1 يناير 2000 وأصغر من 5 فبراير 2000 وهكذا أمور، يمكنك أن تربط بين الشروط باستخدام أداتين مختلفتين للربط هما AND و OR، وهاتان الأداتان تساويان && و || على التوالي في بعض لغات البرمجة.

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

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ AND telephone > 20000000;

ويعني ذلك بأن السجلات الوحيدة التي سيتم عرضها هي التي يتحقق فيها كل من الشرطان معا، فتكون name تنتهي بالحرف m ورقم الهاتف أكبر من 20000000، فهي تعيد السجل الوحيد الذي يحقق الشرطان كالتالي :

name LIKE ‘%m’ AND telephone > 20000000

Name

Telephone

Jim

2462466

أما OR ( أو ) فيكفي لتحققها أن يتحقق أحد الشرطان فقط، فإذا قلنا :

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ OR telephone > 20000000;

فإن جميع الحقول التي ينتهي فيها الحقل name بالحرف m بالإضافة إلى جميع الحقول التي يكون فيها الحقل telephone أكبر من 20000000، أي أنها تعيد جميع الحقول التي تحقق الشرط الأول، وجميع الحقول التي تحقق الشرط الثاني وجميع الحقول التي تحقق الشرطان معا، ولذلك فإن ناتج تنفيذ العبارة هو ثلاثة سجلات كالتالي :

name LIKE ‘%m’ OR telephone > 20000000

Name

Telephone

Jim

2462466

Tim

1682340

Dill

3636778

كما تلاحظ، السجل الأول Tim كان من ضمن السجلات التي حققت الشرطان معا فكان من ضمن جدول النتائج، أما السجل الثاني Jim فلم يحقق الشرط الثاني وكان الحقل telephone فيه أقل من 20000000 إلا أنه كان من ضمن جدول النتائج لأنه حقق الشرط الأول وهذا كاف، والسجل الثالث Dill حقق الشرط الثاني ولم يحقق الأول حيث أنه لا ينتهي بالحرف m.

استخدام OR و AND معا

يمكنك ربط أكثر من شرط باستخدام أكثر من أداة ربط ولأكثر من مرة، فيمكنك أن تقول مثلا :

SELECT name,telephone FROM directory WHERE
telephone > 20000000 OR telephone = 30000000 AND name LIKE '%m';

العبارة السابقة تنطوي على حيلة ما، قد يبدو لك في الوهلة الأولى أن العبارة تقوم بمطابقة جميع السجلات التي يكون الحقل name فيها ينتهي بالحرف m وفي نفس الوقت يكون رقم الهاتف فيها أكبر من 20000000 أو يكون يساوي 30000000، ولكن الواقع يختلف عن ذلك، عندما يكون هنالك أكثر من أداة ربط، ويكون هنالك أكثر من شرطين، فإن برنامج قاعدة البيانات سيقوم بتنفيذ أداة الربط AND أولا حسب ترتيبها بالجملة، وبعد ذلك يقوم بربط الجمل التي تستخدم الأداة OR.

يعني ذلك بأنه في العبارة السابقة الأداة AND تربط شرطان هما telephone = 30000000 و name LIKE ‘%m’ أما الأداة OR فتربط شرطان هما telephone > 20000000 و telephone = 30000000 AND name LIKE ‘%m’، ونقول هنا بأن AND لها أولوية التنفيذ حيث قامت بربط الشروط التي على جانبيها، وأصبح شرطا واحدا وبعد ذلك يبدأ عمل الأداة OR في ربط الشروط التي على جانبيها واللذان كانا الشرط الكبير الناتج من ربط الأداة AND للشرطان الصغيران، بالإضافة إلى الشرط الآخر الذي على شمالها.

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

SELECT name,telephone FROM directory WHERE (telephone > 20000000 OR telephone = 30000000) AND name LIKE ‘%m’;

 

لأن الأقواس لها أولوية أعلى في التنفيذ من العبارة OR ( الأقواس لها أعلى أولوية على الإطلاق )، فإن البرنامج يقوم بتنفيذ ما بداخل الأقواس أولا، وفي داخل الأقواس سيجد شرطان مربوطان بالأداة OR فيقوم بربطهما وينتج شرط واحد كبير، وبعد ذلك يأتي دور العبارة AND فترتبط الشرط الكبير الذي بداخل الأقواس مع الشرط الذي يأتي على يمينها وهو name LIKE ‘%m’.

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

النفي بالعبارة NOT

تقوم العبارة NOT بنفي الشرط الذي يأتي بعدها، فتصبح العبارة صحيحة إذا كانت خاطئة وتصبح خاطئة إذا كانت صحيحة، مثلا العبارة التالية

 

:

SELECT name,telephone FROM directory WHERE NOT name = 'Tim';

ستعيد جميع السجلات التي لا يكون فيها الحقل name يساوي Tim وهكذا، ويمكن استخدامها في تراكيب أكثر تعقيدا مع الأداتان AND و OR والأقواس.

في المرة القادمة ..

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

 

 

قواعد اللغة

عند كتابتك لاستعلامات SQL يجب أن تتذكر الأمور التالية دائما :

  • لغة SQL لا تفرق بين الحروف الكبيرة والصغيرة فلا فرق بين كتابة الكلمة SELECT والكلمة select والكلمة SeLeCt وكلها تعامل بنفس الطريقة، قد تكون هنالك بعض الاستثناءات في أسماء الجداول أو الحقول، يجب أن تراجع دليل الاستخدام المرفق مع برنامج قاعدة البيانات الذي تستخدمه للتأكد من ذلك.

  • المسافات البيضاء ليس لها اعتبار في لغة SQL، فيمكنك وضع أي قدر تريد من المسافات البيضاء لتنسيق استعلاماتك، فيمكنك مثلا أن تكتب الاستعلام في الصورة التالية، ولا توجد أية مشكلة في ذلك :

    SELECT        *
    FROM directory;
    
  • تنتهي جميع الاستعلامات بالفاصلة المنقوطة ( ; ).

  • العبارات النصية التي لا تعتبر جزءا من عبارات الاستعلامات توضع بين قوسي اقتباس مفردين ويتيح بعض برامج قواعد البيانات استخدام أقواس الاقتباس المزودجة أيضا ( ” .. ” ).

  • إذا كنت تريد استخدام علامات الاقتباس كجزء من النص الذي تريد إدخاله إلى قاعدة البيانات فإنك تضع قبلها علامة الشرطة الخلفية لتصبح هكذا ( \’ ) أو في بعض برامج قواعد البيانات فيتم ذلك بمضاعفة علامة الاقتباس ( ” )، فمثلا إذا أردت وضع العبارة التالية في قاعدة البيانات :I'm me

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

    ‘I\’m me’ ‘I”m me’

 

العبارة SELECT

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

SELECT fields FROM tables;

حيث أن fields هي أسماء الحقول وtables هي أسماء الجداول التي نريد أن نحصل على الحقول منها، فإذا كان لدينا الجدول التالي في قاعدة البيانات على سبيل المثال :

Directory Table

Name

Telephone

John

1291233

Tim

1682340

Jim

2462466

Dill

3636778

إذا أردنا أن نحصل على الحقلين Name و Telephone في الجدول السابق فإن العبارة التي سنستخدمها هي :

SELECT name,telephone FROM directory;

والعبارة السابقة تعيد الجدول كما هو في الأعلى بالضبط، ولكن ماذا لو كتبنا كلمة telephone قبل كلمة name في عبارة SQL السابقة فتصبح كالتالي :

SELECT telephone,name FROM directory;

عند تنفيذ العبارة السابقة سنحصل على الجدول التالي :

telephone,name

Telephone

Name

1291233

John

1682340

Tim

2462466

Jim

3636778

Dill

أما إذا كتبنا العبارة كالتالي :

SELECT name,telephone,name FROM directory;

فسنحصل على النتيجة التالية :

name,telephone,name

Name

Telephone

Name

John

1291233

John

Tim

1682340

Tim

Jim

2462466

Jim

Dill

3636778

Dill

وماذا لو قمنا بتنفيذ العبارة التالية :

SELECT name FROM directory;

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

name

Name

John

Tim

Jim

Dill

كما تلاحظ ليست هنالك أية قواعد ثابته، فلا يمكنك أن تقول بأن الحقل name هو الحقل الأول في الجدول، أنت من يحدد الآن ما هو الحقل الأول وما هو الحقل الثاني وهكذا.

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

SELECT * FROM directory;

 

 

مزودات قواعد البيانات

من الطرق الشهيرة لتخزين قواعد البيانات هي وضعها في صورة ملفات نصية بسيطة Plain Text، بحيث يوضع كل سجل في سطر من أسطر الملف ويفصل بين الحقول المختلفة في كل سجل بفاصلة comma ( , )، وتكون أحيانا في صورة ملفات أكثر تعقيدا بحيث يحتوي الملف على الكثير من الجدوال والفهارس التي تسرع عمليات البحث في قواعد البيانات والاستعلامات الجاهزة والنماذج كما في قواعد بيانات Microsoft Access.

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

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

 

(store procedure) sql الإجراءات المخزنة في

الاجراءات المخزنة في sql او مايسمى ب store procedure مهمة جدآ في عالم برمجة قواعد البيانات كما انها سهلة الانشاء وسهلة البناء
#التعريف : هي عبارة عن اجراء معين تقوم بممهمة معينة او هي عبارة عن مجموعة من الاوامر تقوم بمهمة معينة مثل حساب نسبة ضريبة المبيعات – الارباح الشهرية – مستحقات موظف وهكذا
يستطيع المبرمج الاستغناء عن الاجراءات المخزنة وينفذ المطلوب بدون استخدام الاجراءات المخزنة لكن المبرمج الاكثر احترافآ هو الذي يحسب للوقت الف حساب فيتجنب اهدار المزيد من الوقت والجهد بالقيام ببناء اجراء مخزن لتنفيذ عملية معينة يستدعيها متى شاء ليوفر على نفسه الجهد لكتابة الاوامر من جديد

A Basic Guide to SQL Server Stored Procedures
ربما احتاج الى حساب نسبة الضريبة اكثر من مرة في البرنامج واستطيع تكرار الكود هذا الامر يبدو مجهدآ بالفعل سوف اتجنب هذا الاجهاد ببناء اجراء يقوم بحساب نسبة الضريبة مرة واحدة واستدعيه اكثر من مرة واجنب نفسي اهدار جهدي واهدار مساحة في الذاكرة العشوائية فانت كلما اجهدت نفسك بتكرار الكود يعتبر هذا اجهاد ايضآ للكمبيوتر لذلك تم اختراع مايسمى بالاجراءات والدوال
نفس الحال هو في sql يمكنك بناء اجراء وتخزنه في sql وتستدعيه وقتما شئت …
#بنيةالاجراءالمخزن : سنتعرف الان على كيفية بناء الاجراء المخزن
تاتي بنية الاجراء المخزن بالشكل التالي :

Create procedure <procedure_Name>
As
Begin
<SQL Statement>
End Go

في البداية نكتب Create procedure وهذا لاعطاء امر ل sql لانشاء اجراء مخزن يلي ذلك <procedure_Name> وهو اسم الاجراء
في السطر التالي ستجد الامر AS وهو يرمز الى بداية الاجراء
يلي ذلك التعبير <SQL Statement> وهو امر ال select الذي سيتم بناءه داخل الاجراء وهذا يسمى جسم البرنامج
اما Begin و End Go فهي بداية الاجراء ونهايته

#مثال
لنفترض ان لدينا جدول الموظفين EmP ويحتوي على التالي
رقم الموظف – اسم الموظف – االراتب – البدلات :

Emp table
Emp_no : emp_name : salary : Allowances
E1 : khaled : 1000 : 150
E2 : omer : 1200 : 170

لنفترض اننا نريد انشاء اجراء مخزن اسمه total يقوم بحساب الاجمالي
الراتب + البدلات (salary+Allowances) لجميع الموظفين هنا سيكون شكل الاجراء كالتالي :

CREATE PROCEDURE total
AS
SELECT [salary+Allowances] FROM Emp
GO

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

EXEC total ;

اي قم بتنفيذ واستدعاء الاجراء total
سيكون هناك دروس اخرى وتطبيقات في الاجراءات المخزنة store procedure

SQL و mysql هناك فرق بين

ما هو الفرق بين SQL و mysql ببساطة هذا شرح كل منهما

Comparing MySQL vs MS SQL Server | SF AppWorks
SQL

هى اختصار structure query language
ويقصد بها لغة التعامل مع قواعد البيانات
ولغة sql هى اللغة المستخدمة مع كل قواعد البيانات مثل oracle _mysql _sqlserver
وهى لغة سهلة .

وتنقسم لغة sql الى مجموعة من الاوامر التى تستخدم للتعامل مع قواعد البيانات ومن هذة الاوامر
insert
لادراج بيانات بقاعدة البيانات
update
لتعديل البيانات
delete
لحذف بيانات
create
لانشاء الجداول او الكيان
drop
للحذف
ويتم تصنيفها هذة الاوامر
كالتالى DDL and DML

اما Mysql

هى قاعدة البيانات او مايسمى DBMS وهى اختصار Database management system وهى تحتوى على مجموعة الجداول التى يتم بها حفظ البيانات والتى تربطها علاقات فيما بينها

نتيجة بحث الصور عن sql vs mysql

DML مقدمة توضيحية عن

طبعا عارفين أن لغة ال sql هى لغة الاستعلام الاجرائية الخاصة بالتعامل مع قواعد البيانات او بمعنى اخر
هى لغة تحتوى على مجموعة من الاوامر الا من خلالها نستطيع التعامل مع قاعدة البيانات
طيب عاوزين نشوف الاوامر دى

نتيجة بحث الصور عن ‪DML‬‏
اوامر ال sql كالتالى
DDL
DML
DCL
اولا:اوامر DDL
وهى اختصار data definition language
وهى تحتوى على مجموعة من الاوامر للتعامل مع هيكل الكيانات الخاصة بقاعدة البيانات
طب يعنى اية لفظ الكيانات اقصد بيها ال objects الموجودة بقاعدة البيانات
اوضح كمان
انا لما بنشئ قاعدة البيانات لازم بعدها هنشئ ال objects الخاصة بها وهى

Tables _ view _ sequence _ index_ synonym

طبعا tables هو العمود الفقرى لقاعدة البيانات او المكان الذى يحتفظ بداخلة البيانات بطريقة ما داخل قاعدة البيانات
View عبارة عن مشهد من جدول او اكثر
Sequence يستخدم لانشاء ارقام مسلسلة
Index او الفهارس يفيد فى عمليات البحث
Synonym. اسم بديل لاى كيان موجودة

هنبداء نتعرف على هذة الاوامر
Create _ alter _ drop

Create.
تستخدم فى انشاء الكيان نفسة او objects
Alter .
تعديل او تغيير فى هيكل هذا الكيان
Drop .
حذف هذا الكيان

 

طيب الخلاصة لما ابداء بانشاء قاعدة البيانات وبعدها عاوز اصمم الجداول او اى كيان اخر يبقى انا هروح لاوامر ال DDL
بالامر create
وكمان لو انا كنت فعلا انشاءات الجداول وعاوز اعدل فى هيكل جدول يبقى انا هروح لاوامر ال DDL بالامر alter
ولو انا انشاءات جدول و عاوز احذفة يبقى هروح لاوامر ال DDL
بالامر drop
اعتقد انا كدا وضحت

طيب انا لغاية دلوقتى لسة معنديش اى بيانات
انا لغاية دلوقتى انشاءات فقط الكيان
طيب اذا احتجت انى اضيف بيانات او اعدل بيانات او احذف بيانات
يبقى انا كدا هروح لاوامر ال DML
ثانيا :اوامر ال DML
DML هى اختصار data manipulation language
وهى تحتوى على الاوامر المستخدمة فى التعامل مع البيانات
وهى
Select استرجاع بيانات من قاعدة البيانات
Insert اضافة بيانات جديدة
Update تعديل او تحديث بيانات موجودة
Delete حذف بيانات من قاعدة البيانات
Merge دمج بيانات
الخلاصة لما احب التعامل مع بيانات بداخل قاعدة البيانات يبقى انا كدا هستخدم اوامر ال DML

نتيجة بحث الصور عن ‪DML‬‏

طيب هى البيانات الا انا اضفتها او عدلتها او حذفتها من خلال اوامر DML
مش لازم انقلها لقاعدة البيانات علشان احفظها او ممكن اتراجع عن هذا التعديل
دلوقتى هيكون دور
Transaction control
وهى
Commit. حفظ البيانات بقاعدة البيانات
rollback. تراجع عن اى تعديل
save point. تراجع بس عند نقطة محددة

طيب بعد ما انا انشاءت الكيانات وبعد لما قمت بادخال البيانات بها مش لازم يكون فى حماية لهذة البيانات
هنا هيكون دور اوامر DCL
ثالثا : DCL
وهى اختصار data control language
وهى
Grant اعطاء صلاحيات للمستخدم
Revoke حذف صلاحيات من المستخدم
طبعا اى objects تم انشاءة لازم يكون هناك صلاحيات على استخدامها .
طبعا كل الا انا اتكلمت علية دا كان مجرد سرد للعناوين
وهى مقدمة كويسة علشان نعرف بيها اللغة دى هستخدمها فين وامتى واية هو امكانيات هذة اللغة

pl/sql مقدمة بسيطة في

السلام عليكم المقال ستكون مقدمة بسيطة عن ال  pl/sql هتكون المقدمة بسيطة دي  هنتعرف فيها على :

اولا :ماهى pl/sql
ثانيا :طريقة كتابة كود pl/sql
ثالثا: كتابة اول برنامج باستخدام pl/sql

اولا :ماهى pl/sql

نتيجة بحث الصور عن ‪pl/sql‬‏
هى لغة البرمجة الخاصة بشركة اوراكل وهى امتداد للغة sql .
فنتيجة لضعف لغة قواعد البيانات sql
فقد قررت اوراكل انشاء هذة اللغة
يعنى على سبيل المثال انا لو عاوز اتحكم فى برنامج معين او مسار برنامج
لغة ال sql مش هتقدر تعمل الا انا محتاجة
من هنا اوراكل قدمت لنا الحل وهى لغة
pl/sql
ووفرت لنا هذة اللغة العديد من الامكانيات البرمجية مثل if _loop هكذا
يعنى على سبيل المثال
لو عاوز ازود المرتبات بس وفقا لقواعد معينة مثلا
لو الموظف بياخد مرتب كذا الزيادة بتعتة كذا
ولو بياخد مرتب كذا الزيادة بتعتة كذا
هنا بقا لازم استخدم هذة اللغة الاجرائية.

 

ثانيا : طريقة كتابة كود pl/sql

نتيجة بحث الصور عن ‪pl/sql‬‏
يتم كتابة كود pl/sql داخل بلوك Block
كل بلوك مسئول عن وظيفة معينة كالاتى :

Declare (optional )

هنا يتم تعريف اى شي سوف يتم استخدامة فى البرنامج
من متغيرات وهكذا وتكون اختيارية .

begin ( mandatory)

هنا يتم كتابة جمل sql وجمل pl/sql .

exception (optional )

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

end; (mandatory ).

وهى نهاية البلوك ولابد من كتابه end;

ثالثا: كتابة اول برنامج باستخدام pl/sql

هنا هوضح اذى هعرض output للمستخدم
اولا لازم اشغل عملية الطباعة باستخدام الامر

Set serveroutput on;

الامر السابق يسمح بالطباعة على الشاشة.
طب اية هو امر الطباعة

هو ; ( الرسالة ) DBMS_output.put_line
وهنا هنقف شوية
لو انا عاوز اعرض رسالة نصية او تاريخ يكتب بداخل single code ‘ ‘
طب لو عاوز اطبع رقم او معادلة حسابية مثلا 2*3+2 هيكون بدون single code .
بعض الملاحظات :
لو تم وضع المعادلة الحسابية بين single code تعامل كانها نص .
يمكن استخدام | | concatenation للدمج بين اكثر من نص او بين جزء نصى ورقمى او معادلة.

ملخص الدرس

ان كود pl يكتب داخل بلوك كالتالى

Set serveroutput on;

لتفعيل عمليات الطباعة
declare
لانشاء المتغيرات وغيرها
begin
لكتابة الاكواد المستخدمة فى البرنامج
exception
معالجة الاخطاء اثناء التشغيل
end;
نهاية البلوك

وفى نهاية الشرح هعرض عليكم سؤال مش انا الا هجاوبة لا دا للناس الا هتشوف البوست دا .
السؤال عاوزكم تكتبوا بلوك pl وبداخلة رسالة
تظهر كالتالى

the result 4*4 = 16

تحياتى للجميع
وبالتوفيق

 

Mysql أنواع البيانات في

عند إنشاء جدول في MySQL من المهم معرفة النوع الذي ترغب في استخدامه لكل سمة.

لنتعرف على أكثر أنواع البيانات المستخدمة :

1- INT UNSIGNED

تجعل العمود يأخذ عددًا صحيحًا كبيرًا بما يكفي لتخزين أكثر من 4 مليارات سجل في الجدول.

2- NOT NULL

نتيجة بحث الصور عن ‪NOT NULL‬‏
يضمن أن كل عمود له قيمة.
والعديد من المبرمجين يستخدمون NULL في الحقل للإشارة إلى أنه ليس له أي قيمة. ولكن هذا من شأنه أن يسمح بالتكرار ، مما ينتهك السبب الكامل لوجود هذا العمود. لذلك نحن لا نسمح بقيم NULL.

3- AUTO_INCREMENT

نتيجة بحث الصور عن ‪MySQL AUTO_INCREMENT‬‏
لتعيين قيمة فريدة لهذا العمود في كل صف، كل ما يهمنا هو أننا نضمن قيمة فريدة .

4- KEY

يفيد العمود فى الزيادة التلقائية كمفتاح لاننا فى هذا العمود نتجه للبحث سيكون لكل إدخال في العمود نوع بيانات
Auto-Incertment Auto (تخصيص تلقائي)
عددًا فريدًا من نوعه ، يبدأ أوله في 1 يعلى تدريجيا.

5- UNIQUE

نتيجة بحث الصور عن ‪MySQL UNIQUE‬‏
بمعنى فريد ، تُستخدم لتحديد أي الحقول فريدة

DDL أوامر

أوامر DDL  وهى أختصار Data Definition Language اتكلمنا فى الدرس الاول على كيفية انشاء قاعدة بيانات  وقمنا بانشاء قاعدة بيانات باسم firstdb
وذلك بالكود كالاتى

create database firstdb;

وعرفنا الكود الخاص بحذف قاعدة البيانات وهو

drop database firstdb;

النهاردة هنتكلم على كيفية انشاء الجدول :

لانشاء جدول ايضا نستخدم الامر create كالتالى :

يجب اولا تحديد العناصر التالية قبل البدء فى انشاء الجدول .
١_اسم الجدول table name واسم الجدول يجب الا يتكرر فى نفس قاعدة البيانات .

٢_اسماء الاعمدة columns name واسماء الاعمدة يجب الا تتكرر فى نفس الجدول .

٣_نوع البيانات data type  وهنا هنوضح بس اهم انواع البيانات
Varchar نوع البيانات نصى بس متغير بمعنى لوكان حجم  البيانات مثلا ١٠ بينما تم ادخال حجم بيانات ٥ يتم حجز ٥ فقط .

char : نوع البيانات نصى بس ثابت بمعنى لوكان حجم البيانات  ١٠ بينما تم ادخال حجم بيانات ٥ يتم حجز مساحة ١٠ بالكامل .

int : نوع البيانات رقمى  Float,double نوع البيانات عشرى

date :  نوع البيانات تاريخ

نتيجة بحث الصور عن ‪DDL‬‏

صيغة انشاء الجداول

create table tableName
( column1 data type (size),
column2 data type (size),

نلاحظ ان صيغة انشاء الجدول هى نفس عناصر الجدول السابق ذكرها .
نبداء بالامر create يليها نوع عنصر قاعدة البيانات المراد انشائة وهو هنا table ثم اسم الجدول وبعدة نفتح قوسين ونكتب بداخلهم عناصر الجدول وهى  اسماء الاعمدة ونوع البيانات وحجمها يفصلها coma .
وتنتهى عبارة الانشاء ب semicolon .

مثال : لو اردنا انشاء جدول الادارات departments يحتوى على حقل لرقم الادارة dept_no وحقل اسم الادارة dept_name

create table departments
(dept_no int (5),
dept_name varchar(20)
);

و عندما نريد عرض الهيكل الخاص بالجدول نستخدم الامر

describe tableName;
describe departments;

ولحذف الجدول نستخدم الامر

drop table tableName;
drop table departments;

الاتصال بماكينات ختم الدوام بكود سى شارب

الاتصال بأى ماكينه حضور وإنصراف سواء بالكارت أو بالبصمه فالتعامل ثابت لا يتغير (ملحوظه قاعده البيانات هي Server SQL)

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

 

للمزيد رابط الكتاب مرفق بالصورة في الأسفل

شرح ربط قاعدة بيانات أكسس مع السي شارب
درس عرض فلاش في برنامج بلغة سي شارب
C# 2010 و SQL Server 2008 برمجة قواعد البيانات باستخدام
موسوعة كودات السي شارب
C#.NET برمجة نظام موارد بشرية باستخدام
ما هو الخادم او السيرفر و ما هي انواعه
؟ IDE مـاهو ال
abstract class ما هو ال
AppStore اسباب رفض التطبيقات على
لماذا لا يمكن إستخدام مساحة التخزين الثابتة كذاكرة وصول عشوائية
اسرع كمبيوتر بالعالم
من هو بيل غيتس ؟
كيف تكتب محتوى جذاب ؟

واستخدامها في قواعد البيانات بلغة السي شارب LINQ تقنية

ما هو LINQ؟
LINQ (استعلام اللغة المتكامل) هو بناء جملة استعلام موحد في C # و VB.NET يستخدم لحفظ واسترجاع البيانات من مصادر مختلفة. يتم دمجها في C # أو VB ، وبالتالي القضاء على عدم التوافق بين لغات البرمجة وقواعد البيانات ، بالإضافة إلى توفير واجهة استعلام واحدة لأنواع مختلفة من مصادر البيانات.

على سبيل المثال ، SQL هي لغة الاستعلام الهيكلية المستخدمة لحفظ واسترداد البيانات من قاعدة البيانات. بالطريقة نفسها ، LINQ عبارة عن بناء استعلام مهيكل تم إنشاؤه في C # و VB.NET يستخدم لحفظ واسترجاع البيانات من أنواع مختلفة من مصادر البيانات مثل Object Collection أو SQL server database أو XML أو خدمة ويب إلخ.

تعمل LINQ دائمًا مع الكائنات بحيث يمكنك استخدام نفس أنماط التشفير الأساسية لاستعلام البيانات وتحويلها في مستندات XML وقواعد بيانات SQL ومجموعات بيانات ADO.NET ومجموعات .NET وأي تنسيق آخر يتوفر له موفر LINQ.

 

للمزيد رابط الكتاب مرفق بالصورة في الأسفل

Unity 3D كتاب تعلم برمجة الالعاب بأستخدام محرك الالعاب
C#.net كتاب سبيلك إلى تعلم لغة
قواعد البيانات في الفيجوال سي شارب 2010
درس في كيفية التعامل مع قواعد البيانات بشكل برمجي
برمجة مربعات النص بالسي شارب لقبول نصوص اللغة العربية فقط والتحويل مابين اللغات
نصائح في تعلم البرمجه
access modifier طرق الوصول للمتغيرات والدوال الموجودة داخل الكلاس
(DNS) تعرف علي الدومين
ما هو الانترنت ؟ وكيف يعمل ؟
ما هي دالة هاش التشفيرية ؟
استعادة النوافذ في متصفح الانترنت اذا اغلقته بالخطأ
أفضل خمسة برامج مجانية لأستعداة الملفات المحذوفة
canon ip7240 إعدادات الواي فاي في طابعة

درس في كيفية التعامل مع قواعد البيانات بشكل برمجي

 يمثل الحقل ConStr سطر الاتصال أو( String Connectionٌ) يحتوي هذا السطر على معلومات تخص مزود قواعد البيانات (Provider Base Data )لاحظ (0.4.OLEDB.Jet.Microsoft=Provider )و كذلك المسار إلى ملف قاعدة البيانات , ففي المثال المذكور اعلاه يقع ملف قاعدة البيانات و الملف التنفٌذي للبرنامج في مجلد واحد لذلك لا حاجة لذكر المسار ونكتفي بوضع اسم الملف فقط(mdb.MyData=Source Data )ولكن كون ملف قاعدة البيانات والملف التنفٌذي للبرنامج في مجلد واحد ؛ نضع ملف قاعدة البيانات داخل مجلد البرنامج ومن داخل مجلد البرنامج نجد المجلد Bin ثم المجلد Debug ونضع ملف قاعدة البيانات هناك.

 

للمزيد رابط الكتاب مرفق بالصورة في الأسفل

Application Console كتاب كورس
درس في كيفية التعامل مع قواعد البيانات بشكل برمجي
بلغة سي شارب Sql Server حفظ واسترجاع الصور في قاعدة البيانات
c#.net سبيلك المختصر لتعلم لغة
C# 2010 و SQL Server 2008 برمجة قواعد البيانات باستخدام
(FوJ) اسباب بروز بعض الحروف في الكيبورد
شركة أدوبي تعلن عن إتاحة برنامج أدوبي إكس دي بشكل مجاني
اهم 10 نصايح لأي مبرمج
كيفية صناعة المحتوى
أكثر تطبيقات الأندرويد إستهلاكاً للبطارية
(IT) كل ما تريد معرفته عن مجال عمل موظف تكنولوجيا المعلومات
من هو ستيفن هوكينج
ماهي لغات البرمجة وما هي انوعها و أمثلة عليها
error: Content is protected !!