English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تحديد نوع حقل البيانات في MySQL مهم جدًا لتحسين قاعدة بياناتك.
MySQL يدعم أنواع متعددة، يمكن تقسيمها بشكل عام إلى ثلاثة أنواع: النصوص العددية، التواريخ والوقت والنصوص (الصور).
يدعم MySQL جميع أنواع البيانات العددية المعيارية SQL.
تتضمن هذه الأنواع أنواع البيانات العددية الصحيحة (INTEGER،SMALLINT،DECIMAL وNUMERIC)، وأنواع البيانات العددية تقريبية (FLOAT،REAL وDOUBLE PRECISION).
هو كلمة مفتاحية INT هو اسم نفسه INTEGER،كلمة مفتاحية DEC هو نفسها DECIMAL.
يحفظ نوع البيانات BIT قيم حقل البت، يدعم جداول MyISAM،MEMORY،InnoDB و BDB.
كإضافة إلى معيار SQL، يدعم MySQL أنواع العدد الصحيح TINYINT،MEDIUMINT وBIGINT. يظهر الجدول التالي التخزين والمجالات المطلوبة لكل نوع عدد صحيح.
النوع | الحجم | مدى (مدخل) | مدى (غير مدخل) | الاستخدام |
---|---|---|---|---|
TINYINT | 1 byte | (-128،127) | (0،255) | قيمة عددية صغيرة |
SMALLINT | 2 bytes | (-32 768،32 767) | (0،65 535) | قيمة عددية كبيرة |
MEDIUMINT | 3 bytes | (-8 388 608،8 388 607) | (0،16 777 215) | قيمة عددية كبيرة |
INT أو INTEGER | 4 bytes | (-2 147 483 648،2 147 483 647) | (0،4 294 967 295) | قيمة عددية كبيرة |
BIGINT | 8 bytes | (-9,223,372,036,854,775,808،9 223 372 036 854 775 807) | (0،18 446 744 073 709 551 615) | قيمة عددية كبيرة |
FLOAT | 4 bytes | (-3.402 823 466 E+38،-1.175 494 351 E-38),0،(1.175 494 351 E-38،3.402 823 466 351 E+38) | 0،(1.175 494 351 E-38،3.402 823 466 E+38) | مستطيلات واحدة القيم العددية العائمة |
DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 E+308،-2.225 073 858 507 201 4 E-308)،0،(2.225 073 858 507 201 4 E-308،1.797 693 134 862 315 7 E+308) | 0،(2.225 073 858 507 201 4 E-308،1.797 693 134 862 315 7 E+308) | دقة عالية القيم العددية العائمة |
DECIMAL | للDECIMAL(M,D) إذا كان M>D،则为 M+2 وإلا则为 D+2 | تعتمد على قيم M و D | تعتمد على قيم M و D | القيم العددية |
أنواع التاريخ والوقت التي تمثل قيم الوقت هي DATETIME،DATE،TIMESTAMP،TIME وYEAR.
للكل نوع وقتي نطاق قيمة معين و قيمة "صفر"، تستخدم القيمة الصفر عند تحديد قيمة غير قانونية لا يمكن تمثيلها في MySQL.
نوع TIMESTAMP له خاصية تحديث تلقائي مخصص، سيتم شرحها لاحقًا.
النوع | الحجم (bytes) | النطاق | التنسيق | الاستخدام |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | قيمة التاريخ |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | قيمة الوقت أو المدة |
YEAR | 1 | 1901/2155 | YYYY | قيمة السنة |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | قيم تاريخية زمنية مختلطة |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 الوقت النهائي هو في 2147483647 الساعة،في التوقيت الشامل الشمالي (CST) 2038-1-19 11:14:07،في التوقيت العالمي المعياري (GMT) 19 يناير 2038 الساعة 03:14:07 صباحًا | YYYYMMDD HHMMSS | قيم تاريخية زمنية مختلطة، علامة زمنية |
نوع النص يشمل CHAR،VARCHAR،BINARY،VARBINARY،BLOB،TEXT،ENUM وSET. يصف هذا الفصل كيف تعمل هذه الأنواع وكيف تستخدمها في الاستعلامات.
النوع | الحجم | الاستخدام |
---|---|---|
CHAR | 0-255 بايت | قيمة نصية ثابتة الطول |
VARCHAR | 0-65535 بايت | قيمة نصية متغيرة الطول |
TINYBLOB | 0-255 بايت | قيمة نصية ثنائية قصيرة لا تزيد على 255 حرف |
TINYTEXT | 0-255 بايت | قيمة نصية قصيرة |
BLOB | 0-65 535 بايت | معلومات نصية طويلة في شكل ثنائي |
TEXT | 0-65 535 بايت | معلومات نصية طويلة |
MEDIUMBLOB | 0-16 777 215 بايت | معلومات نصية متوسطة الطول في شكل ثنائي |
MEDIUMTEXT | 0-16 777 215 بايت | معلومات نصية متوسطة الطول |
LONGBLOB | 0-4 294 967 295 bytes | معلومات نصية كبيرة في شكل ثنائي |
LONGTEXT | 0-4 294 967 295 bytes | بيانات النص الكبيرة |
ملاحظةفي char(n) و varchar(n)، الرقم n في الأسقاطة يمثل عدد الأحرف وليس عدد الأحرف الثنائية، مثل CHAR(30) يمكنه تخزين 30 حرفًا.
CHAR و VARCHAR مشابهان، ولكنهم يحفظون ويسترجعون بطرق مختلفة. طولهم القصوى ووجود الفراغات الزائدة في نهاية النصوص مختلفة. لا يتم إجراء تحويلات لحالة الحروف أثناء التخزين أو الاسترجاع.
BINARY و VARBINARY مشابهان لـ CHAR و VARCHAR، ولكنهم يحتويان على 字符 النص الثنائي وليس النص غير الثنائي. أي أنهم يحتويون على سلسلة من الأحرف الثنائية وليس الأحرف. هذا يعني أنهم ليس لديهم مجموعة حروف، وأن الترتيب والتحقق يحدث بناءً على القيمة النسبية للأحرف الثنائية في العمود.
BLOB هو عنصر كبير من البيانات الثنائية يمكنه استيعاب كمية غير محددة من البيانات. هناك 4 أنواع BLOB: TINYBLOB، BLOB، MEDIUMBLOB و LONGBLOB. الفرق بينها هو نطاق التخزين المختلف.
هناك 4 أنواع TEXT: TINYTEXT، TEXT، MEDIUMTEXT و LONGTEXT. هناك 4 أنواع BLOB المترادفة، والطول القصوى المختلفة، يمكن اختيارها بناءً على الحالة الفعلية.