SQL ma’lumot tiplari
SQL Ma’lumotlar turlari
Ustunning ma’lumot turi unda qanday qiymatlar saqlanishi mumkinligini belgilaydi: butun son, belgilar, pul birligi, sana va vaqt, binar ma’lumotlar va h.k.
Ma’lumotlar bazasi jadvalidagi har bir ustun o‘z nomiga va ma’lumot turiga ega bo‘lishi shart.
SQL dasturchisi jadval yaratishda har bir ustunda qanday turdagi ma’lumotlar saqlanishini hal qilishi kerak. Ma’lumotlar turi SQL uchun har bir ustun ichida qanday turdagi ma’lumotlar kutilishini tushunish uchun ko‘rsatma bo‘lib, SQL saqlangan ma’lumotlar bilan qanday o‘zaro ta’sir qilishini ham aniqlaydi.
Har doim hujjatlarni tekshiring! Turli ma’lumotlar bazalarida ma’lumotlar turlari turli nomlarga ega bo‘lishi mumkin. Nomi bir xil bo‘lsa ham, hajmi va boshqa tafsilotlari boshqacha bo‘lishi mumkin!
MySQL ma’lumot tiplari (8.4-versiya)
MySQL’da uchta asosiy ma’lumot turi mavjud: matnli (string), sonli (numeric) hamda sana va vaqt.
Matnli ma’lumot turlari (String)
| Ma’lumot turi | Tavsif |
|---|---|
| CHAR(size) | Qat’iy uzunlikdagi string (harflar, raqamlar va maxsus belgilarni o‘z ichiga olishi mumkin). size ustun uzunligini belgilarda, 0 dan 255 gacha belgilaydi. Standart size qiymati 1 |
| VARCHAR(size) | O‘zgaruvchan uzunlikdagi string (harflar, raqamlar va maxsus belgilarni o‘z ichiga olishi mumkin). size ustunning maksimal uzunligini belgilarda, 0 dan 65535 gacha belgilaydi |
| BINARY(size) | CHAR() ga o‘xshaydi, lekin ikkilik bayt stringlarini saqlaydi. size ustun uzunligini baytlarda belgilaydi. Standart size qiymati 1 |
| VARBINARY(size) | VARCHAR() ga o‘xshaydi, lekin ikkilik bayt stringlarini saqlaydi. size ustunning maksimal uzunligini baytlarda belgilaydi. |
| BLOB(size) | Maksimal uzunligi 65535 bayt bo‘lgan BLOB ustuni |
| TINYBLOB | Maksimal uzunligi 255 bayt bo‘lgan BLOB ustuni |
| MEDIUMBLOB | Maksimal uzunligi 16777215 bayt bo‘lgan BLOB ustuni |
| LONGBLOB | Maksimal uzunligi 4294967295 yoki 4 GB bayt bo‘lgan BLOB ustuni |
| TEXT(size) | Maksimal uzunligi 65535 bayt bo‘lgan stringni saqlaydi |
| TINYTEXT | Maksimal uzunligi 255 belgi bo‘lgan TEXT ustuni |
| MEDIUMTEXT | Maksimal uzunligi 16777215 belgi bo‘lgan TEXT ustuni |
| LONGTEXT | Maksimal uzunligi 4294967295 yoki 4 GB bayt bo‘lgan TEXT ustuni |
| ENUM(val1, val2, val3, ...) | Mumkin bo‘lgan qiymatlar ro‘yxatidan (val1, val2, val3,..) tanlangan faqat bitta qiymatga ega bo‘la oladigan string obyekti. Ro‘yxatda 65535 tagacha qiymat ko‘rsatish mumkin. Agar ro‘yxatda bo‘lmagan qiymat qo‘shilsa, bo‘sh qiymat qo‘shiladi |
| SET(val1, val2, val3, ...) | Mumkin bo‘lgan qiymatlar ro‘yxatidan (val1, val2, val3,..) tanlangan nol yoki undan ortiq qiymatga ega bo‘la oladigan string obyekti. Ro‘yxatda 64 tagacha qiymat ko‘rsatish mumkin |
Sonli ma’lumot turlari (Numeric)
| Ma’lumot turi | Tavsif |
|---|---|
| BIT(size) | Bit-qiymat turi. size har bir qiymatdagi bitlar sonini bildiradi, 1 dan 64 gacha. size uchun standart qiymat 1. |
| TINYINT(size) | Juda kichik butun son. Ishorali diapazon -128 dan 127 gacha. Ishorasiz diapazon 0 dan 255 gacha. size minimal ko‘rsatish kengligini belgilaydi (maksimal ko‘rsatish kengligi 255) |
| BOOL | Nol qiymati noto‘g‘ri, nolga teng bo‘lmagan qiymatlar rost deb hisoblanadi. |
| BOOLEAN | BOOL bilan bir xil |
| SMALLINT(size) | Kichik butun son. Ishorali diapazon -32768 dan 32767 gacha. Ishorasiz diapazon 0 dan 65535 gacha. size minimal ko‘rsatish kengligini belgilaydi (maksimal ko‘rsatish kengligi 255) |
| MEDIUMINT(size) | O‘rtacha kattalikdagi butun son. Ishorali diapazon -8388608 dan 8388607 gacha. Ishorasiz diapazon 0 dan 16777215 gacha. size minimal ko‘rsatish kengligini belgilaydi (maksimal ko‘rsatish kengligi 255) |
| INT(size) | Oddiy kattalikdagi butun son. Ishorali diapazon -2147483648 dan 2147483647 gacha. Ishorasiz diapazon 0 dan 4294967295 gacha. size minimal ko‘rsatish kengligini belgilaydi (maksimal ko‘rsatish kengligi 255) |
| INTEGER(size) | INT(size) bilan bir xil (sinonim) |
| BIGINT(size) | Katta butun son. Ishorali diapazon -9223372036854775808 dan 9223372036854775807 gacha. Ishorasiz diapazon 0 dan 18446744073709551615 gacha. size minimal ko‘rsatish kengligini belgilaydi (maksimal ko‘rsatish kengligi 255) |
| DECIMAL(size, d) | Aniq, qat’iy nuqtali son. size raqamlarning umumiy sonini bildiradi (maksimal 65). d o‘nlik nuqtadan keyingi raqamlar sonini bildiradi (maksimal 30). size uchun standart qiymat 10. d uchun standart qiymat 0. |
| DEC(size, d) | DECIMAL(size, d) bilan bir xil (sinonim) |
| FLOAT(size, d) | Kichik o‘nlik kasr (floating-point) son. FLOAT(size, d) MySQL 8.0.17 da eskirgan deb belgilangan va MySQL’ning kelgusi versiyalarida olib tashlanadi |
| FLOAT(p) | O‘nlik kasr (floating-point) son. p qiymati olingan ma’lumotlar turi uchun FLOAT yoki DOUBLE dan foydalanishni aniqlaydi. Agar p 0 dan 24 gacha bo‘lsa, ma’lumotlar turi FLOAT bo‘ladi. Agar p 25 dan 53 gacha bo‘lsa, ma’lumotlar turi DOUBLE bo‘ladi |
| DOUBLE(size, d) | Oddiy o‘lchamdagi o‘nlik kasr (floating-point) son. Ruxsat etilgan qiymatlar: -1.7976931348623157E+308 dan -2.2250738585072014E-308 gacha, 0 hamda 2.2250738585072014E-308 dan 1.7976931348623157E+308 gacha. Raqamlarning umumiy soni size parametrida, o‘nlik nuqtadan keyingi raqamlar soni esa d parametrida ko‘rsatiladi |
| DOUBLE PRECISION(size, d) | DOUBLE(size, d) bilan bir xil (sinonim) |
Sana va vaqt ma’lumot turlari (Date and Time)
| Ma’lumot turi | Tavsif |
|---|---|
| DATE | Sana. Format: YYYY-MM-DD. Qo‘llab-quvvatlanadigan diapazon: "1000-01-01" dan "9999-12-31" gacha |
| DATETIME(fsp) | Sana va vaqt kombinatsiyasi. Format: YYYY-MM-DD hh:mm:ss. Qo‘llab-quvvatlanadigan diapazon “1000-01-01 00:00:00” dan “9999-12-31 23:59:59” gacha. Joriy sana va vaqt bilan avtomatik initsializatsiya va yangilash uchun ustun ta’rifiga DEFAULT va ON UPDATE qo‘shiladi |
| TIMESTAMP(fsp) | Vaqt tamg‘asi. Format: YYYY-MM-DD hh:mm:ss. TIMESTAMP qiymatlari Unix davridan keyingi soniyalar soni sifatida saqlanadi ('1970-01-01 00:00:00' UTC). Qo‘llab-quvvatlanadigan diapazon: “1970-01-01 00:00:01” UTC dan “2038-01-09 03:14:07” UTC gacha. Joriy sana va vaqt bilan avtomatik initsializatsiya va yangilash ustun ta’rifida DEFAULT CURRENT_TIMESTAMP va ON UPDATE CURRENT_TIMESTAMP yordamida belgilanishi mumkin. |
| TIME(fsp) | Vaqt. Format: hh:mm:ss. Qo‘llab-quvvatlanadigan diapazon "-838:59:59" dan "838:59:59" gacha |
| YEAR | To‘rt xonali formatda bir yil (YYYY). To‘rt xonali formatda ruxsat etilgan qiymatlar: 1901 dan 2155 gacha va 0000. |
SQL Server ma’lumotlar turlari
SQL Server’da uchta asosiy ma’lumot turi mavjud: matnli (string), sonli (numeric) hamda sana va vaqt.
Matnli ma’lumot turlari (String)
| Ma’lumot turi | Tavsif | Maks. belgilar uzunligi | Xotira hajmi |
|---|---|---|---|
| char(n) | Qat’iy uzunlikdagi Unicode bo‘lmagan belgili ma’lumotlar (n 1 dan 8000 gacha bo‘lishi shart) | 8,000 | n bayt (har bir belgi uchun bir bayt ishlatadi) |
| varchar(n) | O‘zgaruvchan uzunlikdagi Unicode bo‘lmagan belgili ma’lumotlar (n 1 dan 8000 gacha bo‘lishi shart) | 8,000 | n bayt + 2 bayt |
| varchar(max) | O‘zgaruvchan uzunlikdagi Unicode bo‘lmagan belgili ma’lumotlar | 2 GB gacha | |
| nchar(n) | Qat’iy uzunlikdagi Unicode belgili ma’lumotlar (n 1 dan 4000 gacha bo‘lishi shart) | 4,000 | 2 * n bayt (har bir belgi uchun ikki bayt ishlatadi) |
| nvarchar(n) | O‘zgaruvchan uzunlikdagi Unicode belgili ma’lumotlar (n 1 dan 4000 gacha bo‘lishi shart) | 4,000 | 2 * n bayt + 2 bayt (har bir belgi uchun ikki bayt ishlatadi) |
| nvarchar(max) | O‘zgaruvchan uzunlikdagi Unicode belgili ma’lumotlar | 2 GB gacha | |
| binary(n) | Qat’iy uzunlikdagi ikkilik ma’lumotlar (n 1 dan 8000 gacha bo‘lishi shart) | 8,000 | n bayt |
| varbinary(n) | O‘zgaruvchan uzunlikdagi ikkilik ma’lumotlar (n 1 dan 8000 gacha bo‘lishi shart) | 8,000 | kiritilgan ma’lumotlarning haqiqiy uzunligi + 2 bayt |
| varbinary(max) | O‘zgaruvchan uzunlikdagi ikkilik ma’lumotlar | 2GB |
Sonli ma’lumot turlari (Numeric)
| Ma’lumot turi | Tavsif | Xotira hajmi |
|---|---|---|
| bit | 0, 1 yoki NULL bo‘lishi mumkin bo‘lgan butun son | |
| tinyint | 0 dan 255 gacha bo‘lgan butun sonlarga ruxsat beradi | 1 bayt |
| smallint | -32,768 dan 32,767 gacha bo‘lgan butun sonlarga ruxsat beradi | 2 bayt |
| int | -2,147,483,648 dan 2,147,483,647 gacha bo‘lgan butun sonlarga ruxsat beradi | 4 bayt |
| bigint | -9,223,372,036,854,775,808 dan 9,223,372,036,854,775,807 gacha bo‘lgan butun sonlarga ruxsat beradi | 8 bayt |
| decimal(p,s) | Aniqligi (precision) va masshtabi (scale) qat’iy belgilangan sonlar.
-10^38 +1 dan 10^38 –1 gacha sonlarga ruxsat beradi. p parametri saqlanishi mumkin bo‘lgan raqamlarning maksimal umumiy sonini (o‘nlik nuqtaning ham chap, ham o‘ng tomonidagi) bildiradi. p 1 dan 38 gacha bo‘lgan qiymat bo‘lishi shart. Standart qiymat 18. s parametri o‘nli kasrning o‘ng tomonida saqlanadigan raqamlarning maksimal sonini ko‘rsatadi. s 0 dan p gacha bo‘lgan qiymat bo‘lishi kerak. Standart qiymat 0 |
5-17 bayt |
| numeric(p,s) | Aniqligi (precision) va masshtabi (scale) qat’iy belgilangan sonlar.
-10^38 +1 dan 10^38 –1 gacha sonlarga ruxsat beradi. p parametri saqlanishi mumkin bo‘lgan raqamlarning maksimal umumiy sonini (o‘nlik nuqtaning ham chap, ham o‘ng tomonidagi) bildiradi. p 1 dan 38 gacha bo‘lgan qiymat bo‘lishi shart. Standart qiymat 18. s parametri o‘nli kasrning o‘ng tomonida saqlanadigan raqamlarning maksimal sonini ko‘rsatadi. s 0 dan p gacha bo‘lgan qiymat bo‘lishi kerak. Standart qiymat 0 |
5-17 bayt |
| smallmoney | -214,748.3648 dan 214,748.3647 gacha bo‘lgan pul ma’lumotlari | 4 bayt |
| money | -922,337,203,685,477.5808 dan 922,337,203,685,477.5807 gacha bo‘lgan pul ma’lumotlari | 8 bayt |
| float(n) | -1.79E + 308 dan 1.79E + 308 gacha bo‘lgan o‘nlik kasr aniqlikdagi sonli ma’lumotlar. n parametri maydon 4 yoki 8 bayt saqlashi kerakligini bildiradi. float(24) 4 baytli maydonni, float(53) esa 8 baytli maydonni saqlaydi. n ning standart qiymati 53. |
4 yoki 8 bayt |
| real | -3.40E + 38 dan 3.40E + 38 gacha bo‘lgan o‘nlik kasr aniqlikdagi sonli ma’lumotlar | 4 bayt |
Sana va vaqt ma’lumot turlari (Date and Time)
| Ma’lumot turi | Tavsif | Xotira hajmi |
|---|---|---|
| date | Faqat sanani saqlaydi. 0001-yil 1-yanvardan 9999-yil 31-dekabrgacha | 3 bayt |
| time | Faqat vaqtni saqlaydi, 100 nanosoniya aniqlik bilan | 3-5 bayt |
| datetime | 1753-yil 1-yanvardan 9999-yil 31-dekabrgacha, 3.33 millisoniya aniqlik bilan | 8 bayt |
| datetime2 | 0001-yil 1-yanvardan 9999-yil 31-dekabrgacha, 100 nanosoniya aniqlik bilan | 6-8 bayt |
| smalldatetime | 1900-yil 1-yanvardan 2079-yil 6-iyungacha, 1 daqiqa aniqlik bilan | 4 bayt |
| datetimeoffset | Vaqt mintaqasi ofsetini qo‘shish bilan datetime2 bilan bir xil | 8-10 bayt |
| timestamp | Har safar qator yaratilganda yoki o‘zgartirilganda yangilanadigan noyob raqamni saqlaydi. Vaqt tamg‘asi qiymati ichki soatga asoslangan va real vaqtga mos kelmaydi. Har bir jadvalda faqat bitta vaqt tamg‘asi o‘zgaruvchisi bo‘lishi mumkin |
Boshqa ma’lumotlar turlari
| Ma’lumot turi | Tavsif |
|---|---|
| sql_variant | text, ntext va timestamp’dan tashqari turli ma’lumot turlaridagi 8,000 baytgacha ma’lumotni saqlaydi |
| uniqueidentifier | Global noyob identifikatorni (GUID) saqlaydi |
| xml | XML formatidagi ma’lumotlarni saqlaydi. Maksimal 2GB |
| cursor | Ma’lumotlar bazasi amallari uchun ishlatiladigan kursorga havolani saqlaydi |
| table | Keyinchalik qayta ishlash uchun natijalar to‘plamini (result-set) saqlaydi |
MS Access ma’lumotlar turlari
| Ma’lumot turi | Tavsif | Xotira hajmi |
|---|---|---|
| Text | Matn yoki matn va raqamlar kombinatsiyasi uchun foydalaning. Maksimal 255 belgi | |
| Memo | Memo katta hajmdagi matnlar uchun ishlatiladi. 65 536 belgigacha saqlaydi. Eslatma: Memo maydonini saralab bo‘lmaydi. Biroq, ularni qidirish mumkin | |
| Byte | 0 dan 255 gacha bo‘lgan butun sonlarga ruxsat beradi | 1 bayt |
| Integer | -32,768 dan 32,767 gacha bo‘lgan butun sonlarga ruxsat beradi | 2 bayt |
| Long | -2,147,483,648 dan 2,147,483,647 gacha bo‘lgan butun sonlarga ruxsat beradi | 4 bayt |
| Single | Yagona aniqlikdagi o‘nlik kasr (floating-point) son. Ko‘pchilik o‘nlik sonlarni saqlay oladi | 4 bayt |
| Double | Ikki karra aniqlikdagi o‘nlik kasr (floating-point) son. Ko‘pchilik o‘nlik sonlarni saqlay oladi | 8 bayt |
| Currency | Valyuta uchun foydalaning. Butun dollarning 15 tagacha raqamini, shuningdek, 4 ta kasrni o‘z ichiga oladi. Maslahat: Siz qaysi davlat valyutasidan foydalanishni tanlashingiz mumkin | 8 bayt |
| AutoNumber | AutoNumber maydonlari avtomatik ravishda har bir yozuvga o‘z raqamini beradi, odatda 1 dan boshlanadi | 4 bayt |
| Date/Time | Sanalar va vaqtlar uchun foydalaning | 8 bayt |
| Yes/No | Mantiqiy maydon Ha/Yo‘q, rost/noto‘g‘ri yoki Yoqish/O‘chirish sifatida ko‘rsatilishi mumkin. Kodda True va False konstantalaridan foydalaning (-1 va 0 ga teng). Eslatma: Ha/Yo‘q maydonlarida null qiymatlarga ruxsat berilmaydi | 1 bit |
| Ole Object | Rasmlar, audio, video yoki boshqa BLOB’larni (Binary Large Objects) saqlashi mumkin | 1GB gacha |
| Hyperlink | Boshqa fayllarga, jumladan veb-sahifalarga havolalarni o‘z ichiga oladi | |
| Lookup Wizard | Variantlar ro‘yxatini kiritish imkonini beradi, so‘ngra ular ochiluvchi ro‘yxatdan tanlanadi | 4 bayt |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
