أنواع البيانات في MYSQL لاستخدامها في قواعد البيانات

هل تتعلم عن مديري قواعد البيانات؟ في هذه الحالة ، تحتاج إلى إبلاغ نفسك عن أنواع البيانات في MySQL ، من افضل واكثر استخداما في العالم لا تفوت الفرصة!.

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

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

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

في حقول جداول MYSQL هذه ، لدينا إمكانية الاختيار بين ثلاثة أنواع من المحتوى ، وعلى الرغم من أنه يبدو واضحًا ، حدد مكان إرسال بياناتنا ، إلى أي نوع من المجموعات التي ستنتمي إليها وحدة التخزين ، وهنا لدينا مثال نضعه على أنفسنا في السياق: نعم ، نحن بحاجة إلى حقل يمكننا من خلاله تخزين عمر الشخص ، ثم يكون حقل بيانات رقميًا.

لكن قبل أن أواصل الشرح ، هل تعرف ما هي MySQL؟ يُعرف بأنه أحد أكثر مديري قواعد البيانات مفتوحة المصدر استخدامًا في العالم. حتى نتمكن من تكوين فكرة عن مدى شعبيتها ، سنخبرك أن: WordPress هو مدير أنواع مختلفة من المحتوى ، والتي كانت موجودة منذ عام 2003 ، وأن حوالي 55٪ إلى 60٪ من صفحات الويب موجودة ، صُنعت بفضل هذا ، وهي تستخدم MySQL كقاعدة بيانات ، وهذا يثبت مدى فائدتها ونطاقها.

تنتمي MySQL إلى شركة Oracle Corporation ، التي كانت مسؤولة عن شرائها في عام 2010. هذا المدير له استخدامات متعددة ، مثل: الممارسات ، وإجراء عمليات التثبيت ، وتعديل صفحات الويب ، وقراءة البيانات ، من بين أمور أخرى.

يمكن تنزيل برنامج التشغيل هذا بسهولة وله عدة إصدارات اعتمادًا على Windows الذي تستخدمه ، وبنفس الطريقة ، من السهل جدًا تثبيته.

يتم استخدام الغالبية العظمى من برامج تشغيل قواعد البيانات من خلال لغة برمجة. لنفترض على سبيل المثال ، أن المعلومات التي لدينا على أجهزة الكمبيوتر الخاصة بنا متوفرة في قاعدة البيانات ، ولكن عندما نحتاج إلى عرضها وإدارتها ، فإنها تستخدم لغة برمجة ؛ في حالة MySQL ، تكون مصحوبة بـ php ، والتي تُعرف باسم لغة تطوير الويب ، وهي نفس لغة WordPress التي تم تطويرها.

نفترض أنه يمكننا أن نوصي ، للسرعة ، بتنزيل أداة XAMPP ، المتوفرة لإصدارات مختلفة من Windows. يأتي XAMPP مع سلسلة من المكونات ، من بينها:

  • أباتشي: سيكون هذا خادم ويب.
  • PHP: لغة تطوير الويب.
  • فيليزيلا: هو المسؤول عن تعبئة الملفات.
  • Mercury: خادم البريد ، الذي يهدف إلى إجراء الاختبارات.
  • MySQL: كما ذكرنا سابقًا ، فهو خادم قاعدة البيانات.

بعد تثبيت XAMPP ، ستتمكن من الاستمتاع بكل هذه المكونات ، بما في ذلك MySQL ، والتي يمكنك البدء بها مباشرة والاتصال بالواجهة الرسومية ، وهذا هو السبب في أن XAMPP مفيد للغاية ، بالإضافة إلى وجود المكونات الأخرى.

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

ندعوك لمشاهدة دورة مكثفة حول أنواع البيانات في MySQL وكل ما تريد معرفته عنها في الفيديو أدناه. لا تفوت فرصة التعلم!

البيانات العددية

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

أعداد صحيحة

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

نقدم TINYINT ، وهو نوع بيانات يسمح لنا بتخزين الحد الأقصى لقيمة 127. لذلك إذا احتجنا إلى تحديد حقل لعمر مستخدمينا ، فهذا هو الحقل الذي يمكننا استخدامه ، لأن النطاق العمري العادي يقع ضمن هذا الرقم ، وما لم نكن نعيش في زمن العهد القديم الكتابي ، فلن يتجاوز أحد هذا العدد بيولوجيًا ؛ لذا لا ، هذا النوع من البيانات لا يسمح لنا بتخزين 567 ، على سبيل المثال ، ولا حتى 128 ، إذا كان الحد يصل إلى 127.

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

يمكننا استخدام شيء مثل SMALLINT الذي سيسمح لنا بترقيم ما يصل إلى 32,000 مقالة ، ولكن إذا قمنا بتغيير المثال وانتقلنا من سوق إلى حقل معرف يجب استخدامه لجدول عملاء لشركة هاتف بها 5 ملايين مستخدم ، فإننا لم يعد بإمكاننا الحصول على SMALLINT ، ولكن البعض الآخر مثل MEDIUMINT ، ونحن نواصل ، في حالة وجود 200 مليون عميل لشركتنا ، يجب أن نستخدم مجالًا من النوع INT. تتغير المشكلة في حالة التقلُّب والرغبة في تحديد مجال يحدد كل من البشر الذين يعيشون على كوكب الأرض ، ثم يجب أن نطلب المساعدة من حقل BIGNIT ، لأن نوع INT يسمح فقط بما يصل إلى ألفي مليون من أجزاء مختلفة من البيانات ، ومن الواضح أن ذلك لن يصل إلينا.

نريد أيضًا تأكيد وجود القيم السالبة ، والتي يمكن أن نجدها عند الرغبة في حفظ نتيجة لعبة ، أو العلامة تحت الصفر التي يمكن أن تحدد الجدول ، من بين أشياء أخرى.

القيم غير الموقعة

لننظر إلى الأمر بهذه الطريقة: إن وجود عمر سلبي لن يكون له أي معنى على الإطلاق. إذا كانت هناك إمكانية لمضاعفة الحد الأقصى للقيمة الإيجابية لكل بيانات مما يلغي إمكانية تخزين هذا الحقل للقيم السالبة ، فسنضاعف الحد الإيجابي للتخزين ، ومجال النوع TINYINT الذي يسمح عادةً بتخزين القيم من 127 ، سيتيح لك الآن تخزين القيم من 0 إلى 255.

وكيف نحدد الحقل الذي ليس له علامة؟ من خلال معدِّل UNSIGNED يمكننا تحديد حقل رقمي. باستخدام هذا ، يجب أن نجد عمودًا يقرأ السمات وقيمة UNSIGNED ولم يعد هذا الحقل يحتوي على قيم سالبة ، وبالتالي مضاعفة سعته التخزينية.

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

الأعداد ذات الكسور العشرية

الأسعار والرواتب ومبالغ الحسابات المصرفية ، من بين أمور أخرى ، انتقلنا إلى القيم العددية ذات الكسور العشرية وتركنا أعدادًا صحيحة وراءنا ، وعلى الرغم من حقيقة أن هذه الأنواع من البيانات تسمى "الفاصلة العائمة" لأن الفاصلة تفصل العدد الصحيح للجزء والجزء العشري ، الواقع بين أنواع بيانات MySQL ، يخزنهم ويفصلهم بنقطة ؛ من هنا سيكون لدينا ثلاثة أنواع من البيانات: عائمة ومزدوجة وعشرية.

سوف يسمح لنا FLOAT بتخزين ما لا يقل عن القيمة -999.99 و 999.99 على الأكثر. ضع في اعتبارك أن العلامة - لا تحسب ، ولكن النقطة التي تفصل بينها ، أي الفاصلة العشرية ، نعم ، لهذا السبب سيكون مجموعها ستة أرقام ، على الرغم من أننا نلاحظ أن اثنين منهم عبارة عن أرقام عشرية ؛ لكن لدينا ما يسمى نطاق الدقة البسيط ، والذي يجبرنا على الحصول على كميات عشرية بين 0 و 24.

من ناحية أخرى ، فإن DOUBLE ، نظرًا لكونها ضعف الدقة ، تسمح فقط بتعريف عدد المنازل العشرية بين 25 و 23. استخدام FLOAT ، وهي دقة بسيطة ، يمكن أن يتسبب في مشاكل التقريب وفقدان المنازل العشرية المتبقية. الشيء الذي لا يزال يتعين شرحه هو DECIMAL ، وهو الأفضل لتخزين القيم النقدية حيث يكون الطول المطلوب أقل ولكن الدقة القصوى ، وبدون التقريب ، يخصص هذا النوع من البيانات عرضًا ثابتًا للرقم المراد تخزينه. الحد الأقصى لإجمالي الأرقام لهذا النوع من البيانات هو 64 ، منها 30 هو الحد الأقصى لعدد المنازل العشرية المسموح بها ، وهي أكثر من كافية لتخزين الأسعار والأجور والعملات.

عشري فاصلة 1

بيانات أبجدية رقمية

أخيرًا نترك فئة البيانات الرقمية لإدخال فئة جديدة. هنا سنتحدث عن تخزين سلاسل الأحرف ، لشرحها بطريقة أفضل ، ومن بين أنواع البيانات في MySQL لدينا ما يلي: CHAR ، VARCHAR ، BINARY ، VARBINARY ، TINYBLOB ، TINYTEXT ، BLOB ، TEXT ، MEDIUMBLOB ، MEDIUMTEXT ، LONGBLOB و LONGTEXT و ENUM و SET ، كل واحدة لها خصائصها ومزاياها الخاصة اعتمادًا على البيانات التي نريد تخزينها.

بيانات التاريخ والوقت

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

تاريخ

يسمح لنا هذا النوع من البيانات في MySQL بتخزين التواريخ حيث تنتمي الأرقام الأربعة الأولى إلى العام ، والرقمان التاليان للشهر والأخران لليوم ، على الرغم من أننا في البلدان الناطقة بالإسبانية اعتدنا على طلب التواريخ أولاً عن طريق اليوم ، ثم للشهر ، ثم للسنة ، بالنسبة لـ MYSQL ، العكس تمامًا.

من المهم معرفة أنه عند قراءة حقل التاريخ ، على الرغم من ظهوره بشرطة تفصل السنة عن الشهر والشهر عن اليوم ، عند إدخال هذه البيانات ، فإنه يتيح لنا القيام بكل شيء بشكل مستمر ، على سبيل المثال ، يمكننا رؤيته مثل هذا: 2018-06-04 وأدخله على هذا النحو 20180604. النطاق الزمني الذي يسمح لنا DATE بمعالجته هو 1000-01-01 وحتى 9999-12-31.

ما لم يكن لدينا علاقة بحدث وقع قبل ألفي عام ونحتاج إلى كشفه ، فلن نواجه مشاكل مع هذا الشكل ؛ من ناحية أخرى ، من أجل المستقبل ، لدينا المزيد من الفرص ، لأننا بهذا الشكل وصلنا تقريبًا إلى عام 10,000.

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

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

  • YYYY- MM- DD HH: MM: SS

يحتوي جزء التاريخ على نطاق مشابه لذلك الخاص بنوع التاريخ (10,000 سنة) ، أي من 1000-01-01 إلى 9999-12-31. سيكون الجزء من الجدول على النحو التالي: من 00:00:00 إلى 23:53:53. سيبدو كل شيء مكتمل كما يلي: 1000-01-01 00:00:00 إلى 9999-12-31 23:59:59.

الوقت

هنا يُسمح لنا بتخزين الساعات والدقائق والثواني ، ونعم ، نوع البيانات السابق فعل ذلك أيضًا ، ولكن مع TIME لدينا نطاق مسموح به يتراوح من: -839: 59: 59 إلى 839: 59: 59 ؛ سيستغرق هذا حوالي 35 يومًا ذهابًا وإيابًا في التاريخ الحالي. هذا النوع من البيانات مثالي لحساب الأوقات المنقضية بين لحظتين قريبتين.

الطابع الزمني

لدينا هنا نوع بيانات يمكن أن يكون مشابهًا جدًا لـ DATETIME ولكن تنسيقه ونطاقه مختلفان ، على الرغم من أنه لا يزال مفيدًا لتخزين التاريخ والوقت. مع حقل هذا التنسيق ، يمكن تقديم ثلاثة خيارات لنا ، الأول هو: YYYY-MM-DD HH: MM: SS ، والثاني هو: YYYY-MM-DD ، والثالث أبسط: YY-MM- DD.

هنا لدينا إمكانية الحصول على طول ممكن من 14 أو 8 أو 6 أرقام ، كل هذا يتوقف على المعلومات التي نقدمها. هذا التنسيق ليس تاريخيًا ولا مستقبليًا مثل الآخرين ، نظرًا لأن النطاق الذي يتعامل معه هذا المجال ينتقل فقط من 1970-01-01 إلى عام 2037.

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

إذا أردنا تحديد هذا من phpMyAdmin ، فكل ما يتعين علينا القيام به هو تحديد الخيار في السمات "عند التحديث" CURRENT_TIMESTAMP ، وكقيمة افتراضية CURRENT_TIMESTAMP. الحقل الذي يمكن تحديث قيمته تلقائيًا عند إدراج سجل أو تعديله.

YEAR

في حالة احتياجنا إلى تحديد حقل على أنه YEAR ، يمكننا تخزين عام باستخدام كل من رقمين وأربعة أرقام. في حالة قيامنا بذلك في رقمين ، من 70 إلى 99 (من 70 إلى 99 ، سوف نفهم أن هذه تتوافق مع نطاق السنوات من 1970 إلى 1999 ، وإذا كانت لدينا الأرقام من 00 إلى 69 ، فيمكننا فهم التي تشير إلى السنوات من 2000 إلى 2069) ، في مثل هذه الحالة من توفير أربعة أرقام ، سنجد أن النطاق المحتمل سيتوسع ، ثم ينتقل من 1901 إلى 2155.

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

على أي حال ، يمكننا تخزين هذه القيمة في حقل INT مكون من 10 أرقام ، وبهذه الطريقة ، سيكون من السهل جدًا طلب قيم حقلنا (يمكننا وضع تاريخ عنصر الأخبار كمثال) ثم نقوم يمكن إظهار ذلك التاريخ عن طريق تحويل الطابع الزمني للقيمة إلى شيء يمكننا جعله قابلاً للقراءة باستخدام وظائف معالجة التاريخ الخاصة بـ PHP.

التاريخ والوقت -1

آمل أنه من خلال هذه المقالة حول أنواع البيانات في MySQL ، تمكنا من جعل كل ما أردنا شرحه واضحًا بشكل كافٍ وأنك تعلمت كيفية إنشاء قاعدة بيانات وجدول وفقًا لجميع معلوماتنا ، وتحديد حقولهم بدقة تامة استخدامها كأنواع بيانات وسمات ، وبالتالي ، في القدرة ، أو في الظروف ، لبدء البرمجة بشكل صحيح ، ولدينا الآن فكرة واضحة عن التنسيق الذي سنحتاجه بالضبط ، والذي يناسب حاجتنا وفقًا لما نحن يجب أن تبرمج.

ندعوك للاستمتاع بمقالاتنا الأخرى المتعلقة بالبرمجة: تعدد الأشكال في البرمجة الشيئية.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: مدونة Actualidad
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.