Ma'lumot turlari
Ma’lumot turi jadvalning har bir ustuni qanday turdagi qiymat qabul qilishini hal qiladi. Masalan: butun son, satr, sana, vaqt va hakoza.
SQL tilida ma’lumotlar bazasi jadvalining har bir ustunida nom va ma’lumot turi bo’lishi talab etiladi. Dasturchi jadval yaratayotganda har bir ustun qanday turdagi ma’lumot saqlashini hal qilishi kerak. Ma’lumot turi orqali SQL har bir ustun ichiga qanday ma’lumot kelishini vas hu ma’lumot bilan qanday aloqa qilishini aniqlab oladi.
Eslatma: SQL tilida ma’lumot turlari ma’lumotlar bazasini boshqarish tizimlariga qarab nomi yoki o’lchami bilan farqlanishi mumkin.
Quyida eng ko'p foydalaniladigan ma’lumotlar bazasini boshqarish tizimlaridan biri MYSQL da mavjud ma’lumot turlarini ko’rib chiqamiz.
Satrlar uchun ma'lumot turlari:
- CHAR(o’lcham) - O’rnatilgan o’lchamga ega satr (harflar, sonlar va maxsus belgilardan iborat bo’lishi mumkin). O’lchami 0 dan 255 gacha bo’lishi mumkin.
- VARCHAR(o’lcham) - O’zgaruvchan o’lchamga ega satr (harflar, sonlar va maxsus belgilardan iborat bo’lishi mumkin). O’lchami 0 dan 65535 gacha bo’lishi mumkin.
- BINARY(o’lcham) - CHAR bilan bir xil, faqat ikkilik satrlarni saqlaydi. O’lchami bitlarda ifodalanadi.
- VARBINARY(o’lcham) - VARCHAR bilan bir xil, faqat ikkilik satrlarni saqlaydi. O’lchami bitlarda ifodalanadi.
- TINYBLOB - BLOB (Binary Large Objects – Katta ikkilik obyektlar) uchun mo’ljallangan. Maksimum o’lchami 255.
- TINYTEXT - Maksimum 255 ta belgi qabul qiladi.
- TEXT(o’lcham) - 65535 ta belgigacha qabul qila oladigan katta matn.
- BLOB(o’lcham) - BLOB (Binary Large Objects – Katta ikkilik obyektlar) uchun mo’ljallangan. Maksimum o’lchami 65535.
- MEDIUMTEXT - 16777215 uzunlikdagi matnni qabul qiladi
- MEDIUMBLOB - 16777215 uzunlikdagi BLOB (Binary Large Objects – Katta ikkilik obyektlar)ni qabul qiladi
- LONGTEXT - 4294967295 uzunlikdagi matnni qabul qiladi
- LONGBLOB - 4294967295 BLOB (Binary Large Objects – Katta ikkilik obyektlar)ni qabul qiladi
- ENUM(val1, val2, ...) - Satr shaklidagi obyekt bo’lib, belgilangan ro’yxatdan faqat bitta qiymatni tanlab olinadi. Agar mavjud bo’lmagan qiymat kiritilsa, bo’sh qiymat qabul qiladi. ENUM ro’yxatida 65535 tagacha qiymatlar saqlash mumkin.
- SET(val1, val2, ...) - Belgilangan ro’yxatdan 0 yoki bir nechta qiymatlarni tanlab olish mumkin. SET ro’yxatida 64 tagacha qiymat saqlash mumkin.
Sonlar uchun ma'lumot turlari.
- BIT(o’lcham) - Bit qiymat turi. Qiymatdagi bitlar soni o’lchamni bildiradi. O’lcham 1 dan 64 gacha qiymat qabul qiladi.
- TINYINT(o’lcham) - Juda kichik butun son. -128 dan 127 gacha qiymat qabul qiladi. Musbat sonlarda 0 dan 255 gacha qiymat qabul qiladi.
- BOOL - 0 ni yolg’on qiymat, 0 dan boshqa qiymatlarni rost deb qabul qiladi.
- BOOLEAN - BOOL bilan bir xil
- SMALLINT(o’lcham) - Kichik butun son. -32768 dan 32767 gacha qiymat qabul qiladi. Musbat sonlarda 0 dan 65535 gacha qiymat qabul qiladi.
- MEDIUMINT(o’lcham) - O’rtacha butun son. -8388608 dan 8388607 gacha qiymat qabul qiladi. Musbat sonlarda 0 dan 16777215 gacha qiymat qabul qiladi.
- INT(o’lcham) - O’rtacha butun son. -2147483648 dan 2147483647 gacha qiymat qabul qiladi. Musbat sonlarda 0 dan 4294967295 gacha qiymat qabul qiladi.
- INTEGER(o’lcham) - INT bilan bir xil
- BIGINT(o’lcham) - Katta butun son. -9223372036854775808 dan 9223372036854775807 gacha qiymat qabul qiladi. Musbat sonlarda 0 dan 18446744073709551615 gacha qiymat qabul qiladi.
- FLOAT(o’lcham, d) - Haqiqiy kasr son. Barcha raqamlar soni o’lchamda beriladi. Nuqtadan keying raqamlar soni d bilan beriladi.
- DOUBLE(o’lcham, d) - Kattaroq o’lchamdagi haqiqiy kasr oson. Barcha raqamlar soni o’lchamda beriladi. Nuqtadan keying raqamlar soni d bilan beriladi.
- DECIMAL(o’lcham, d) - Belgilangan o’lchamdagi o’nli kasr son. Barcha raqamlar soni o’lchamda beriladi. Nuqtadan keying raqamlar soni d bilan beriladi. O’lcham 65 gacha, d 30 gacha qiymat qabul qiladi.
- DEC(o’lcham, d) - DECIMAL bilan bir xil.
Sana va vaqtlar uchun ma'lumot turlari.
- DATE - Sana qiymat qabul qiladi. Formati: YYYY-MM-DD. YYYY – yil, MM – oy, DD – kun. Oraliq: '1000-01-01' - '9999-12-31'
- DATETIME - Sana va vaqt qabul qiladi. Formati: YYYY-MM-DD hh:mm:ss. hh – soat, mm – daqiqa, ss – soniya. Oraliq: '1000-01-01 00:00:00' - '9999-12-31 23:59:59'.
- TIMESTAMP - Sana va vaqtni '1970-01-01 00:00:00' UTC dan qancha soniya o’tganini hisoblab, butun son ko’rinishida saqlab qo’yadi. Oraliq: '1970-01-01 00:00:01' UTC - '2038-01-09 03:14:07' UTC.
- TIME - Vaqt. Formati: hh:mm:ss. Oraliq: '-838:59:59' - '838:59:59'
- YEAR - Yilni 4 ta raqamda saqlab qo’yadi. Oraliq: 1901-2155 va 0000.