منتدى العرب التعليمى
أهلاً وسهلاً بأخي


أسعدنا تواجدك بيننا على أمل أن تستمتع وتستفيد
وننتظر مشاركاتك وتفاعلك
فمرحباً بك بين إخوانك وأخواتك
ونسأل الله لك التوفيق والنجاح والتميز
الــــــــــفـــــــــــر عــــــــــــــون الـــمــــصــــــر ى
منتدى العرب التعليمى
أهلاً وسهلاً بأخي


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

منتدى العرب التعليمى

منتدى العرب التعليمى تعليمى شامل
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL

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


عدد المساهمات : 434
تاريخ التسجيل : 14/11/2010
العمر : 37

ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL  Empty
مُساهمةموضوع: ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL    ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL  Emptyالأحد نوفمبر 21, 2010 12:26 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]



فى هذا الدرس بإذن الله سنشرح كل مايلى

* اختيار ترميز قاعدة البيانات المناسب
* إنشاء قواعد البيانات
* إنشاء الجداول



نبدأ على بركة الله.

بجانب اختيار محرك الحفظ المناسب للجدول.

يجب ايضا تحديد الترميز. الترميز هو مصطلح يصعب شرحه بدقة.

لكنه ببساطة هو الوسيلة التى تخبر بها الـ MySql
بالطريقة المناسبة التى ستتعامل بها مع حروف اللغة التى ستستخدم فى البيانات التى يتم حفظها بقاعدة البيانات.

وايضا يمكن ان نعرف مصطلح الترميز على انه محتوى الحرف, والرموز (الخاصة بلغة البيانات التى يتم ادخالها, اذا كان عربية, يبانية, عبرية, الخ) وعملية الترميز تطبق فقط على الحقول النصية, لكن الأرقام فـ الترميز لن يشكل فرق معها.

يمكنك تعريف ترميز اى حقل من حقول الجداول ببساطة بإضافة


كود :

CHARACTER SET setname

الى كود انشاء الحقل (وسوف نناقش كل شئ بالتفصيل فى وقته)
بحيث يكون الـ setname هو اسم الترميز الذى نرغب فى استخدامه.

كما يمكنك ان تعرف مختلف الترميزات المتوفر لدى اصدار MySql الذى تستخدمه
بإجراء الإستعلام التالى داخل الـ MySql Console


كود :

SHOW CHARACTER SET;


الترميز الإفتراضى هو latin1 والذى يصلح مع اللغة الإنجليزية وبعض لغات الغرب.

لكن هناك ترميزات اخرى تصلح مع لغات كثيرة جدا, العربية, اليونانية, العبرية, الصينية, الخ. يوجد (فى الوقت الذى اكتب فيه هذا المقال) مايزيد عن 70 ترميز.

شئ اخر من بعد الترميز وهو المقارنات او مايعرف بالمسمى Collation
والذى يحدد عن طريقه كيف سيتم مقارنة الأحرف, هل الأحرف الكبيرة ستعامل مثلها مثل الصغيرة, ترميزات اخرى تحدد كيف سيتم ترتيب الأحرف. (صراحة اشياء لا اريد ان اتعمق بها كثيرا الأن حتى لا اشوش تفكيرك)

لكل ترميز هناك مايقرب من حوالى 30 Collation له.

مايهمك كامطور عربى, هو
1. الترميز العالمى utf8 (انا شخصيا افضل هذا الترميز حيث ان انتشاره يتزايد يوم بعد يوم)
2. الترميز cp1256 والخاص فقط بحروف اللغة العربية

الترميز utf-8 الـ collation الإفتراضى له هو utf8_general_ci
ولن تحتاج لإستخدام شئ غيره حيث انه صالح مع كل احرف ورموز اللغة العربية

والترميز الثانى cp1256 ايضا الـ collation الإفتراضى له هو cp1256_general_ci
والذى لن تحتاج لتغيره.

تفاصيل اكثر لإختيار الترميز والـ collation الذى يناسبك


1. قم بفتح الـ MySQL Console لمعرفة الإختيارات المتاحة لك, كما فعلنا مع اختيار محرك حفظ البيانات.
2. ابدأ بالتأكد من المحركات المتوفرة لك بإستخدام الإستعلام التالى


كود :

SHOW CHARACTER SET;

# ثم قرر اى ترميز الذى يناسب اللغة التى ستستخدمها.
كما اود ان اخبرك انه يمكنك ان تختر لكل حقل داخل الجدول ترميز غير الأخر.
بمعنى لدينا حقل نصى مثلا يستخدم اللغة الإنجليزية نختر له الترميز latin1
وحقل اخر نصى يحتوى على اللغة العربية نختر له الترميز utf8 او cp1256

# لإستعراض الـ collation المتوفر (كامثال للترميز utf8) وايضا معرفة اى collation الإفتراضى.
قم بإجراء الإستعلام التالى


كود :

SHOW COLLATION LIKE '%utf8%';



ملحوظات اضافية.

- كل من الترميز او الـ collation يمكن وضعهم على الخادم (ونحن لن نشرح حالة إعداد الخادم), او قاعدة البيانات, او احد الجداول, او حتى احد الحقول.
على سبيل المثال, ان لم تحدد ترميز قاعدة البيانات, سيتم وضع الترميز الإفتراضى الذى تم وضعه على الخادم نفسه.
ان لم تحدد ترميز احد الجداول, سيتم استخدام الإفتراضى الذى تم وضعه بقاعدة البيانات نفسها.
ان لم تحدد ترميز احد حقول الجدول, سيتم استخدام الإفتراضى الذى تم وضعه للجدول نفسه.
- يمكنك ايضا تحديد ترميز الإتصال بين الـ MySQL Console (او الإسكريبت الذى تبرمجه بأى لغة برمجة و يقوم بإدخال واستخراج بيانات من قاعدة البيانات)
عن طريق الإستعلام


كود :

SET NAMES 'utf8';

* وكما ترى بهذا المثال استخدمت الترميز utf8 ويمكن استبدالها بأى ترميز اخر
(تذكر ان هذا الإستعلام ضرورى جدا عند استخراج او ادخال البيانات باللغة العربية ويجب ان يتم فورا بعد انشاء الإتصال مع قاعدة بإستخدام لغة البرمجة التى تبرمج بها)



ندخل بالجزء الثانى من الدرس
وهو انشاء قاعدة البيانات (وبالطبع لن تتمكن من هذا الا اذا كنت قمت بتسجيل الدخول بإستخدام مستخدم لديه صلاحيات إنشاء قواعد البيانات, وهذا طبيعى اذا كنت تعمل على السيرفر المحلى, لكن الإستضافات لا تعطيك هذه الصلاحيات, لكنها تمكنك من انشاء قواعد البيانات بإستخدام لوحة تحكم الموقع الخاصة بك)

لإنشاء قاعدة بيانات جديدة تجرى الإستعلام التالى.


كود :

CREATE DATABASE dbname;


لكن ماذا عن الخصائص الإضافية لقاعدة البيانات مثل الترميز والـ Collation؟

يمكنك اضافة هذه الخصائص اثناء إنشاء قاعدة البيانات بالشكل التالى


كود :

CREATE DATABASE dbname CHARACTER SET utf8 COLLATE 'utf8_general_ci';


فى الكود أعلاه اسم قاعدة البيانات هو dbname وترميزها هو utf8
والـ collation لها هو utf8_general_ci

للتأكد ان قاعدة البيانات تم إنشائها يمكنك إجراء الإستعلام التالى


كود :

SHOW DATABASES;

كما يمكنك ايضا ان تعرف خصائص احد قواعد البيانات بالكود التالى


كود :

SHOW CREATE DATABASE dbname;


هذا الإستعلام سوف يوضح لك الترميز الذى تستخدمه قاعدة البيانات.

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

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

اول شئ نقوم بإخبار الـ MYSQL عن القاعدة التى سنستخدمها, ولنفترض اننا انشأنا القاعدة dbname
نجرى الإستعلام التالى


كود :

USE dbname;


بعد ذلك نبدأ بإنشاء الجداول.

بالشكل التالى (الكود التالى ليس الا توضيح ولا يمكن استخدامه)

كود :

CREATE TABLE table_name(
column_1_name column_1_characteristics,
column_2_name column_2_characteristics
);


حيث
table_name هو اسم الجدول و
column_1_name
هو اسم الحقل الأول
و column_2_characteristics
هى خصائص هذا الحقل (نوعه مثلا INT(10) و NOT NULL الخ)
وكما تلاحظ يجب الفصل بين كل حقل والأخر بعلامة ,

ماذا اذا اردنا تحديد محرك حفظ معين لهذا الجدول؟ يتم هذا بالشكل التالى

كود :

CREATE TABLE table_name(
column_1_name column_1_characteristics,
column_2_name column_2_characteristics
)
ENGINE = INNODB;

ولقد حددت فى الكود اعلاه المحرك InnoDB
(نسخ mysql الأقدم من 4.0.18 يتم استخدام الكلمة TYPE بدلا من ENGINE )

كما اريد الإشارة اذا لم تقم بتحديد محرك الجدول سيتم تعيين المحرك InnoDB اذا كان نظام التشغيل للخادم هو الويندوز, او MyISAM اذا كان نظام التشغيل من عائلة يونكس.

ماذا اذا اردنا تحديد ترميز و Collation معين لهذا الجدول؟ يتم الأمر بالشكل التالى


كود :

CREATE TABLE table_name(
column_1_name column_1_characteristics,
column_2_name column_2_characteristics
)
ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

لا اظن ان الكود به شئ يحتاج للشرح.

ما رأيك بأن نقوم بإنشاء جدول صغير يحتوي على التالى

- user_id حقل هوية المستخدم وسيكون نوعه INT والحد الأقصى له هو 10 ارقام وله الخصائص NOT NULL و AUTO_INCREMENT و UNSIGNED وايضا سيكون هو الـ PK
- username حقل اسم المستخدم من النوع VARCHAR و الحد الأقصى لإسم المستخدم هو 60 حرف, وخصائصه NOT NULL ويجب ان يكون UNIQUE يعنى لا يمكن تكراره
- email وسيكون ايضا من النوع VARCHAR والحد الأقصى له هو 100 حرف.
ويجب ان يكون NOT NULL ايضا.



سيتم ماشرحناه بالكود التالى

كود :

CREATE TABLE members(
user_id INT(10) NOT NULL UNSIGNED AUTO_INCREMENT,
username VARCHAR(60) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY(user_id),
UNIQUE(username)
);


لاحظ كيف وضعنا الخصائص لكل جدول

كما يمكنك بعد ان تقوم بإجراء استعلام اختيار قاعدة البيانات


كود :

USE dbname;

ان تستعرض الجداول الموجودة بها بالإستعلام التالى


كود :

SHOW TABLES;

كما يمكنك ايضا استعراض حقول (وكل بيانات الحقول) احد الجداول بالإستعلام التالى

كود :

SHOW COLUMNS FROM table_name;


حيث table_name هو اسم الجدول

ويمكنك فعل نفس الشئ بإستخدام الكود التالى


كود :

DESCRIBE table_name;

كما يمكنك إجراء الإستعلام التالى


كود :

SHOW CREATE TABLE table_name

لترى كيف تم انشاء هذا الجدول (القيام بهذا على جداول بها إعدادات لا تعرف كيف تقوم بصياغتها يساعدك فى التعلم الذاتى)
اعرف ان درس اليوم كان كبير نوعا ما, الا اننا بدأنا ندخل على الخطوات العملية شئ بشئ.

كما اتمنى ان يكون الدرس بكل جوانبه واضح بإذن الله.
مع خالص التمنيات بالتوفيق بإذن الله.

المصدر: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://egypt1.forumegypt.net
 
ترميز قاعدة البيانات وانشائها وانشاء الجداول MySQL
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» التعامل مع الجداول التى تم إنشائها مسبقا فى MySql
» التخطيط لتصميم قاعدة البيانات Database Design
» معنى المفاتيح Keys والعلاقات بين جداول قاعدة البيانات
» ادخال البيانات INSERT in MySql
» استخراج البيانات من القاعدة SELECT in MySql

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى العرب التعليمى :: منتدى البرمجة والتصميم والتطوير :: قسم قواعد البيانات :: قسم دورة Microsoft my SQL-
انتقل الى: