1. Utangulizi
MySQL ni mfumo maarufu wa usimamizi wa hifadhidata wa uhusiano unaotumika sana katika programu nyingi za wavuti na mifumo ya hifadhidata. Kati ya aina zake za data, aina ya INT ni moja ya zinazotumika zaidi kwa kushughulikia thamani za nambari. Makala hii inatoa maelezo ya kina kuhusu aina ya INT ya MySQL. Haswa, tutachunguza thamani za juu zinazoungwa mkono na aina ya INT na jinsi ya kuitumia kwa ufanisi. Kwa kusoma makala hii, utapata maarifa yanayohitajika kutumia kwa usahihi aina ya INT katika MySQL.
2. Maelezo ya Msingi ya Aina ya INT
Thamani za Juu na Chini za INT
Aina ya INT ya MySQL hutumia bajti 4 (bits 32) ya hifadhi, na safu ya thamani ambazo inaweza kuhifadhi ni kama ifuatavyo:
- Signed (SIGNED) :
- Thamani ya chini: -2,147,483,648
- Thamani ya juu: 2,147,483,647
- Unsigned (UNSIGNED) :
- Thamani ya chini: 0
- Thamani ya juu: 4,294,967,295
Ukubwa wa Hifadhi wa INT
Aina ya INT daima hutumia bajti 4 za hifadhi. Ukubwa huu unabaki thabiti bila kujali thamani iliyohifadhiwa. Kwa hivyo, ikiwa huna haja ya kushughulikia safu kubwa ya nambari, ni bora kuzingatia aina ndogo za data (kwa mfano, TINYINT au SMALLINT).
Matumizi ya INT
Aina ya INT hutumika mara nyingi katika hali zifuatazo:
- Thamani za kuongeza kiotomatiki (kwa mfano, vitambulisho vya watumiaji, nambari za maagizo)
- Data ya integer inayotumika katika mahesabu au usindikaji wa takwimu (kwa mfano, hesabu za hesabu, hesabu za mibofyo)
- Data inayowakilishwa ndani ya safu iliyowekwa (kwa mfano, umri au alama za mtihani)
Katika matumizi haya, ni muhimu kuzingatia safu ya nambari inayohitajika na ufanisi wa kumbukumbu.
3. M Inamaanisha Nini katika INT(M)?
Upana wa Kuonyesha (M) Ni Nini?
Katika MySQL, M katika INT(M) inawakilisha “upana wa kuonyesha.” Haina athari kwenye thamani halisi ya nambari iliyohifadhiwa katika hifadhidata; badala yake, inaelezea jinsi thamani inavyopangwa wakati wa kuonyeshwa. Kwa mfano, ikiwa imefafanuliwa kama INT(5), nambari itaonyeshwa kwa upana wa tarakimu 5.
Hata hivyo, upana wa kuonyesha M una maana tu katika hali ifuatayo:
- Wakati chaguo la ZEROFILL limewezeshwa
- Mfano: Kwa
INT(5) ZEROFILL, ikiwa thamani ni123, itaonyeshwa kama00123.
Vidokezo Muhimu Kuhusu ZEROFILL
Unapotumia chaguo la ZEROFILL, tabia zifuatazo zinatumika:
- Nambari za sifuri mwanzo zinaongezwa kiotomatiki upande wa kushoto.
- Sifa ya
UNSIGNEDinatumiwa kiotomatiki.
Kwa hiyo, ikiwa unahitaji kuhifadhi thamani hasi, huwezi kutumia ZEROFILL.
Kufafanua Uelewa wa Kawaida
Wanafunzi wengi wanaamini kimakosa kwamba M inazuia thamani ya juu inayoweza kuhifadhiwa. Hata hivyo, M inaathiri tu muundo wa kuonyesha na haina athari yoyote kwenye safu halisi ya hifadhi.
4. Ulinganisho na Aina Nyingine za Integer
Aina za Aina za Data za Integer na Safu Zao
MySQL hutoa aina zifuatazo za integer:
| Type Name | Bytes | Signed Range | Unsigned Range |
|---|---|---|---|
| TINYINT | 1 byte | -128 to 127 | 0 to 255 |
| SMALLINT | 2 bytes | -32,768 to 32,767 | 0 to 65,535 |
| MEDIUMINT | 3 bytes | -8,388,608 to 8,388,607 | 0 to 16,777,215 |
| INT | 4 bytes | -2,147,483,648 to 2,147,483,647 | 0 to 4,294,967,295 |
| BIGINT | 8 bytes | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0 to 18,446,744,073,709,551,615 |
Vigezo vya Uchaguzi
Tumia miongozo ifuatayo unapochagua aina sahihi ya data katika usanifu wa hifadhidata:
- Ikiwa safu ni ndogo: Tumia
TINYINTauSMALLINTili kuokoa kumbukumbu. - Ikiwa safu kubwa sana inahitajika: Tumia
BIGINT. - Ikiwa unataka matumizi ya jumla:
INTkawaida ni bora.
5. Mabadiliko Tangu MySQL 8.0.17
Kuondolewa kwa Upana wa Kuonyesha (M)
Kuanzia MySQL 8.0.17, “upana wa kuonyesha (M)” kwa aina za integer umeondolewa. Mabadiliko haya yalilekezwa pamoja na kuondolewa kwa chaguo la ZEROFILL, na yanaweza kuondolewa katika matoleo ya baadaye ya MySQL.
Sababu za kuondolewa kwa upana wa kuonyesha ni kama ifuatavyo:
- Imesababisha kutoelewana: * Watumiaji wengi walikosea kufahamu kwamba
Milihusisha thamani ya juu inayoweza kuhifadhiwa au idadi ya tarakimu. - Matumizi ya vitendo yaliyopunguzwa: * Kwa kuwa
Milidhibiti tu muundo wa kuonyesha, muundo sasa unashughulikiwa kwa kawaida upande wa programu, na kupunguza umuhimu wake.
Kuondolewa kwa ZEROFILL
The ZEROFILL option was also deprecated in the same version. Although ZEROFILL was convenient for padding numbers with leading zeros, it is no longer recommended for the following reasons:
- Widespread alternative approaches:
- Zero-padding can now be easily handled in the application or UI layer.
- Avoiding confusion:
- The automatic application of the
UNSIGNEDattribute when usingZEROFILLcaused confusion for beginner users.
Jinsi ya Kuendana na Kuwekwa Kwenye Hifadhi
In response to these deprecations, consider the following approaches in database design:
- Shughulikia muundo katika safu ya programu:
- Perform zero-padding and formatting in the application or presentation layer.
- Example: Implement zero-padding using PHP or JavaScript.
- Kubali muundo usiitegemea upana wa onyesho:
- Define the
INTtype without specifyingMand focus on data accuracy rather than display formatting.
6. Sehemu ya Maswali Yanayoulizwa Mara kwa Mara (FAQ) ya Kivitendo
Maswali Yanayoulizwa Mara kwa Mara
Q1. Nini kinatokea ikiwa nitahifadhi thamani inayozidi kiwango cha juu cha aina ya INT?
A. Katika MySQL, kujaribu kuhifadhi thamani nje ya safu ya INT kutaongeza kosa. Lazima uchague thamani ndani ya safu inayokubalika au ubadilishe kwa aina ya data yenye safu kubwa zaidi (kwa mfano, BIGINT).
Q2. Ni tofauti gani kati ya INT na BIGINT?
A. Aina ya BIGINT inatumia hifadhi mara mbili ya INT (baiti 8) na hutoa safu ya nambari pana zaidi. Kwa mfano, safu ya alama ya BIGINT inazidi ±9 quintillion, na hivyo inafaa kwa kushughulikia seti za data kubwa sana.
Q3. Baada ya ZEROFILL kufutwa, nitakuwaje kutekeleza onyesho la kujaza sifuri?
A. Inapendekezwa kushughulikia kujaza sifuri katika safu ya programu. Kwa mfano, katika PHP unaweza kutumia kazi ya str_pad(), na katika JavaScript unaweza kutumia njia ya padStart() kutekeleza kujaza sifuri.
Q4. Nitachagua vipi kati ya INT na aina nyingine za integer?
A. Chagua aina kulingana na safu ya data. Thamani ndogo za nambari (kwa mfano, umri au alama) zinafaa kwa TINYINT, data za kiwango cha kati (kwa mfano, vitambulisho vya watumiaji) zinafaa kwa INT, na thamani kubwa sana (kwa mfano, data za miamala ya kifedha) zinafaa kwa BIGINT.
7. Hitimisho
Katika makala hii, tulitoa maelezo ya kina kuhusu aina ya data ya MySQL INT. Vidokezo muhimu ni vifuatavyo:
- Understanding the differences between signed and unsigned maximum and minimum values of the
INTtype forms the foundation of proper data design. - It is important to understand alternative approaches to the deprecated “display width (M)” and “ZEROFILL” options and design databases that can adapt to future MySQL updates.
- Select the appropriate integer type based on data characteristics to build an efficient and maintainable database.
Use this article as a reference to optimize your use of the INT type and further improve efficiency in MySQL database design.


