الجزء الأول
عنوان الدرس: أنواع الأعمدة و الجداول في MySQL - الجزء الأول.
تعلمنا في الدرس السابق كيفية بناء جدول في MySQL , و كنا قد شرحنا السمات الخاصة بكل عمود و الآن سنشرح بمشيئة الله أنواع الأعمدة في MySQL , لنبدأ على بركة الله.
أنواع الأعمدة:
هناك ثلاث أنواع رئيسية للأعمدة في MySQL و هي:
1. الأعمدة النصية.
2. الأعمدة الرقمية.
3. أعمدة التاريخ و الوقت.
1. الأعمدة النصية:
تستخدم الأعمدة النصية لإدراج بيانات محرفية أو خليط من البيانات المحرفية و الرقمية, و هناك عدة أنواع للأعمدة النصية:
1. char :
لهذا النوع من الأعمدة طول أعظمي يبلغ 255 محرف.
و يكون استخدامه كالتالي:
col_name char(size)
و هذا النوع من الأعمدة هو عمود ذو طول ثابت أي إذا تم إدراج قيمة ما, عدد محارفها أقل من العدد الأعظمي للعمود, فسيتم حشو باقي الحقل بفراغات من اليمين, فمثلا إذا قمت بتعريف عمود من النوع char(15) و قمت بتخزين القيمة Die Hard فإن MySQL ستقوم عمليا بتخزين تلك القيمة متبوعة بسبع فراغات.
و عيب هذا النوع من الأعمدة هو أنه يقوم بحجز مساحات كبيرة في قاعدة البيانات و معظمها يكون عبارة عن فراغات.
أما أهميته فهو أنه مفيد لإنشاء أعمدة كلمات المرور Pass Words.
2. varchar :
الطول الأعظمي: 255 محرف.
و عيب هذا النوع من الأعمدة هو أنه يقوم بحجز مساحات كبيرة في قاعدة البيانات و معظمها يكون عبارة عن فراغات.
أما أهميته فهو أنه مفيد لإنشاء أعمدة كلمات المرور Pass Words.
2. varchar :
الطول الأعظمي: 255 محرف.
الاستخدام: col_name varchar(size)
و يتميز هذا النوع بأنه ذو طول متغير أي إذا قمت بتعريف عمود من النوع varchar(15) و خزنت القيمة Die Hard فيه فلن يتم حشر فراغات إلى يمين القيمة المخزنة بل يقوم بإزالة الفراغات من نهاية السلسلة المحرفية, و لكن MySQL تضيف محرفا واحدا إلى كل عمود من النوع varchar حيث يتم فيه تخزين طول الحقل.
3. text :
الطول الأعظمي هو : 65535
3. text :
الطول الأعظمي هو : 65535
الاستخدام : col_name text
أيضا هو من النوع متغير الطول, يمكن أن يتم إنشاء فهارس على أول 255 محرف من العمود الذي من النوع text كما يمكن أن يتم استخدام الفهارس من النوع FULLTEXT , سيتم بإذن الله شرح الفهارس لاحقا.
4. enum :
يستخدم هذا النوع من الأعمدة من أجل تحديد خيار واحد من بين عدة خيارات موجودة, و يسمح هذا النوع من الأعمدة باستخدام 65535 قيمة.
4. enum :
يستخدم هذا النوع من الأعمدة من أجل تحديد خيار واحد من بين عدة خيارات موجودة, و يسمح هذا النوع من الأعمدة باستخدام 65535 قيمة.
الاستخدام : col_name enum('val_1' , 'val_2' , … ) default 'val_1'
و لنأخذ المثال التالي:
create table temp(
id int auto_incement primary key,
name varchar(30) not null,
gender enum('male' , 'female' ) default 'male' );
و هناك أنواع أخرى من الأعمدة النصية سأذكرها فقط من باب العلم بالشيء, و هي:
tinytext , mediumtext , longtext , set
2. الأعمدة الرقمية:
يستخدم هذا النوع من أجل إدراج بيانات رقمية أو عددية, و أهم أنواعها:
1. int/integer :
tinytext , mediumtext , longtext , set
2. الأعمدة الرقمية:
يستخدم هذا النوع من أجل إدراج بيانات رقمية أو عددية, و أهم أنواعها:
1. int/integer :
الاستخدام : col_name integer(size) [zerofill] [unsigned]
إن الأقواس التي باللون الأخضر تعبر عن أن التعليمة الموضوعة داخل القوسين هي تعليمة اختيارية, حيث أن الخيار zerofill يستخدم من أجل إدراج أصفارا إلى يسار القيمة المدخلة, و الخيار unsigned يستخدم لتخزين الأرقام الصحيحة من 0 و حتى 4294967295 أما إذا اخترت signed فيصبح بمقدورك تخزين أرقاما من (سالب 2147485648 إلى موجب 2147483647)
و يستخدم هذا النوع من الأعمدة غالبا من أجل أعمدة الترقيم التلقائي, كما في المثال التالي:
و يستخدم هذا النوع من الأعمدة غالبا من أجل أعمدة الترقيم التلقائي, كما في المثال التالي:
create table new_table(
id int unsigned auto_increment primary key,
col_2 text);
2. float :
الاستخدام: col_name float(M,D) [zerofill]
حيث M هي عدد الخانات التي سيتم حجزها, و D هو عدد الفواصل التي ستحدد من هذه الخانات.
و هذا النوع لا يمكن أن يكون بدون إشارة, و يستخدم كما يلي:
و هذا النوع لا يمكن أن يكون بدون إشارة, و يستخدم كما يلي:
column_name float(7,3)
أي أن العمود الذي اسمه column_name نوعه float و عدد خاناته 7 و منها 3 للفاصلة, أي أن أكبر رقم يمكن أن يخزن به هو 9999.999
و هناك أنواع أخرى للأعمدة ذات النوع الرقمي و هي:
tinyint , mediumint , bigint , double , real , decimal
بقي لدينا الآن لنكمل الدرس فقرتين هما (أعمدة التاريخ و الوقت) و (أنواع الجداول), سنكملها إن شاء الله في الجزء الثاني من هذا الدرس.
و آخر دعوانا أن الحمد لله رب العالمين
و هناك أنواع أخرى للأعمدة ذات النوع الرقمي و هي:
tinyint , mediumint , bigint , double , real , decimal
بقي لدينا الآن لنكمل الدرس فقرتين هما (أعمدة التاريخ و الوقت) و (أنواع الجداول), سنكملها إن شاء الله في الجزء الثاني من هذا الدرس.
و آخر دعوانا أن الحمد لله رب العالمين