هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.



 
الرئيسيةالتسجيلأحدث الصوردخول

 

 مقدمة فى MYSQL

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
shady_science
مشرف
مشرف
shady_science


ذكر
عدد الرسائل : 247
العمر : 36
تاريخ التسجيل : 24/10/2007

مقدمة فى   MYSQL Empty
مُساهمةموضوع: مقدمة فى MYSQL   مقدمة فى   MYSQL Icon_minitimeالثلاثاء مارس 10, 2009 8:49 pm

مقدمه فى قاعده البيانات mysql


1- فهم قواعد البيانات Mysql
2- عرض البيانات بأستخدام Mysql
3- ربط قواعد البيانات من موقعك الشخصي
4- وضع البيانات في قاعدة البيانات من خلال موقعك الشخصي

لنأخذ خلفية بسيطة عن قواعد البيانات وطريقة كتابة اكوادها وبنية قواعد البيانات mysql :

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

أوامر الـMySql : يمكنك كتابتها بالعديد من الطرق ومنها Prompt اي من خلال الـDos .

بنية الـMySql البنية الاساسية لقواعد البيانات تكون على شكل :
* Tables : جداول
* Fields :حقول

لأن الـMySql نظام علاقات بين قواعد البيانات فأنها تسمح لك بوضع المعلومات بداخل الجداول
او مساحات متصله بشكل وثيق لتخزين المعلومات بها,على سبيل المثال الحقل الاول نضع به الاسم الاول
وحقل اخر نضع به الاسم الاخير والحقول يمكنها تخزين انواع متعددة من البيانات مثلا نصوص او ارقام والكثير

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

لنتعرف الان على انواع تخزين المعلومات في قواعد البيانات:
الانواع الرقميه :

TINYINT يحتوي على 255 رقم وليس خانة (-128 الى 127)

SMALLINT يحتوي على 65535 رقم وليس خانة (-32768 الى 32767)

MEDUIMINT
(-838608 الى 838607)


INT الرقم كبير جدا

INTEGER

BIGINT الرقم كبير جدا

الانواع العشريه :

FLOAT

DOUBLE

REAL

DECIMAL

NUMERIC

الوقت والتاريخ :

DATE
YYYY-MM-DD

TIME
HH-MM-SS

DATETIME

TIMESTAMP

YEAR

النصوص العاديه :

CHAR وهو لحجز 255 حرف يبدا من 0 وينتهي بـ 255

VARCHAR خاصيتها تقوم بحجز الاحرف التي يقوم بأستهلاكها المستخدم وتتسع لـ 255 حرف ايضا

الكتابات و ( BLOB ) :

TINYBLOB

TINYTEXT


BLOB مثل الTEXT ولكنه حساس لحالة الاحرف

TEXT يمكنه استيعاب ما يقارب 65535 حرف

MEDUIMBLOB

MEDUIMTEXT يمكنه استيعاب ما يقارب16.777.216 حرف

LONGBLOB

LONGTEXT
يمكنه استيعاب ما يقارب 4.294.967.295 حرف

الخيارات والتعدديه:

ENUM
حالة من قيمتين مثل الجمل الشرطية جوابها TRUE او FALES


رمز PHP:
enum('male','female') SET





الان لننتقل الى كيف يمكننا استخدام هذه الانواع وكيف نختار نوع الحقل الصحيح:

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

لنقم الان بالتعرف على صفات الحقول في قواعد البيانات ونبدأ بـ

1-نوع البيانات المدخلة للحقل

1- هل الحقل سيحتوي على احرف وارقام ؟
الجواب : اذا كان الجواب نعم,سنحتاج الى احد الانواع التالية:
char,varchar,text,tinytext,mediumtext,longtext,
blob,tinyblob,mediumblob,longblob

2- كم عدد الاحرف التي نحتاجها؟
- 0-255 : استخدم varchar اذا كنت تريد ان تحذف المسافات بين الاحرف او وضع قيمة افتراضية
استخدم tinytext اذا كنت لاتهتم الى المسافات او القيم الافتراضية او ان النص التي تريده
لا يتحسس الى حالة الاحرف اذا كانت كبيرة او صغيره.
استخدم tinyblob اذا كنت لا تهتم في المسافات او القيم الافتراضية او حالة الاحرف.

- 256-65536 : استخدم text اذا كان النص لا يهتم الى حالة الاحرف
استخدم blob اذا كان يهتم بحالة الاحرف

- 65537-1677215 : استخدم meduimtext حالة الاحرف غير مهمه
استخدم mediumblob حالة الاحرف مهمه

اكبر من ذلك استخدم longtext او longblob

واذا كان الجواب على سؤالك الاول بـ لأ
- اذا كنت تريد تخزين الوقت و / او التاريخ استخدم timestamp
- اذا كنت تريد تخزين الوقت فقط استخدم time
- اذا كنت تريد تخزين التاريخ فقط استخدم date
- اذا كنت تريد تخزين السنة فقط استخدم year

واذا كان جوابك هو لا ولكنك تريد تخزين الارقام استخدم احد التالية :

- tinyint
(-127 الى 127 )
-smallint
(-32768 الى 32767)
-mediumint
(-8388608 الى 8388607)
اذا كان العدد اكبر من ذلك استخدم int او bigint

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

لنكمل مسيرتنا في التعرف على انواع الحقول ولنذهب الى ..

2- null/not null فارغ او غير فارغ

السيرفر الخاص بـMySql يحتاج الى معرفة هل هذا الحقل الذي ستضع به المعلومات هل سيكون فارغا ام لا.
وبامكانه تعريفة ذلك عن طريق كلمة null او كلمة not null
وعليك معرفة بأن القيمة صفر تختلف عن null وذلك يعني انه اذا وضعت القيمة صفر انه لا يساوي القيمة null

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

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

Indexes : تستخدم الادلة او الفهارس لتسريع البحث عن المعلومات في الاعمدة المخصصة بها.
كيفية استخدامها وتتم على النحو التالي:
تخيل بأن لديك غرفة بها اكوام والعديد من الاكوام من الايصالات التي تحفظ بها معلومات الشراء
الذي قمت بها في حياتك كاملة .
وانك تريد البحث عن وصل بداخل هذه الاكوام المكومة يعود تاريخة الى سنة 2000
ستريد الى العديد من الايام للبحث عن هذا الوصل حتى تستطيع ايجاده.
حسنا لماذا لا نقوم بترتيب هذه الوصولات حسب السنوات فكل مجموعه من الوصولات ترتب حسب السنة
مثلا سنة 2000 لوحدها وسنة 2001 لوحدها حسنا لنرى الان اذا كنا نستطيع ترتيب الوصلات حسب المحلات
فهذا سيجعل عثورك على الوصل المراد سهلا جدا في المره القادمة اليس ذلك صحيحا ؟..

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

بأستخدام MySql يمكننا البحث عن ما نريده بسرعه عالية وهذا هو استخدام الفهارس indexes او المفاتيح

في المثال السابق قمت بترتيب الوصولات حسب السنة لو قمت بتخزينها في قاعدة البيانات الـ indexes سيكون
year والمفتاح الاخر الذي هو خاص بالمحلات سيكون مثلا category .

MySql يتطلب على الاقل index واحد في كل جدول وعادتا ما نستخدم الPrimary Key او Unique
(انتظر لا تتفاجأ من هذه المصطلحات فهي سهلة للغاية) وهذا سيساعد على ابقاء المعلومات منفصلة
وهذا الحقل يجب ان يكون not null وunique (معناها فريد اي لايوجد منه سوا واحد) على سبيل المثال
(رقم الزبون ID ) لأبقاء كل زبائننا منفصلة عن الزبائن الاخرى وايضا مثل الارقام الجامعية.
مثلا لو كان لدينا شخصين بأسم محمد فالذي سيجعلهما مختلفين هو الرقم الخاص بهم .

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

لنتعرف الى
Unique : معناها بالعربي (فريد من نوعة) وعند اختيار هذه الخاصية لأحد الحقول فتأكد بأنه لن يكون هناك
اي تشابه مطلقا حتى لو كان هنالك حقل اخر يشابه هذا الحقل مثل رقم الزبون

Auto Increment : لنقل بأن لديك حقل وتريده ان يتزايد بشكل تلقائي عندما تقوم بوضع قيمه جديده به
مثل رقم الزبون ايضا فهذه الخاصية تقوم بأضافة واحد الى اخر رقم وصل اليه العد
او مثلا ارقام عضويات الاعضاء في المنتديات فكل عضو يحمل رقم يختلف عن العضو الاخر ^^

يكفي الى هذا الحد من الكلام المطول عن قواعد البيانات mysql وماهيتها واستخداماتها وانواع الحقول بها

انتهى درسنا لهذا اليوم وكن واثقا انه اذا فهمت هذا الدرس جيدا ستسهل عليك امور كثيره جدا


وشكرا جزيلا للأخ REDCAR
الرجوع الى أعلى الصفحة اذهب الى الأسفل
زائر الليل
ادارة IT CLUB
ادارة IT CLUB
زائر الليل


ذكر
عدد الرسائل : 1022
العمر : 36
تاريخ التسجيل : 20/10/2007

مقدمة فى   MYSQL Empty
مُساهمةموضوع: رد: مقدمة فى MYSQL   مقدمة فى   MYSQL Icon_minitimeالأربعاء مارس 11, 2009 7:23 am

جزاك الله خيرا اخي شادى

منتظرينك دائما
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
مقدمة فى MYSQL
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» PHP and MySQL for Dummies

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
 :: الكمبيوتر والإنترنت :: قواعد البيانات :: MY SQL-
انتقل الى: