MySQL'de `` unsigned '' ne demektir ve ne zaman kullanılır?


278

MySQL'de "imzasız" ne anlama geliyor ve ne zaman kullanmalıyım?

Yanıtlar:


527

MySQL diyor ki:

Tüm tamsayı türlerinin isteğe bağlı (standart dışı) UNSIGNED özelliği olabilir. İmzasız tür, bir sütundaki yalnızca negatif olmayan sayılara izin vermek için veya sütun için daha büyük bir üst sayısal aralığa ihtiyacınız olduğunda kullanılabilir . Örneğin, bir INT sütunu UNSIGNED ise, sütunun aralığının boyutu aynıdır, ancak uç noktaları -2147483648 ve 2147483647'den 0 ve 4294967295'e kayar.

Ne zaman kullanırım?

Kendinize şu soruyu sorun: Bu alan hiç negatif bir değer içerecek mi?
Yanıt hayırsa, bir UNSIGNEDveri türü istersiniz .

Yaygın bir hata, sıfırdanINT başlayan bir otomatik artış olan birincil anahtar kullanmaktır , ancak tür, bu durumda negatif sayıların hiçbirine asla dokunmazsınız ve olası kimliklerin aralığını yarıya düşürürsünüz.SIGNED


8
bir siparişteki belirli bir öğenin miktarı veya iki konum arasındaki mesafe gibi şeylerin 'boyutlarını' temsil eden değerler genellikle imzasız olur
SingleNegationElimination

31
Büyük cevap, mysql otomatik olarak artan kimlikler olduğunda tamsayı imzasız varsayılan olmaz garip görünüyor?
kablolu00

3
Daha net bir cevap istiyorsanız, bu stackoverflow.com/a/11515613/6335029
NaveenDA

Gerçekten de bir positiveözellik olmasını diliyorum , çünkü sadece pozitif, sıfır olmayan sayılarla çalışmak istediğiniz daha da yaygın görünüyor.
still_dreaming_1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.