Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa arti parameter TINYINT (parameter)?

Dari segi data, tinyint(1) , tinyint(2) , tinyint(3) dll semua persis sama. Semuanya dalam kisaran -128 hingga 127 untuk SIGNED atau 0-255 untuk UNSIGNED . Seperti yang dicatat oleh jawaban lain, angka dalam tanda kurung hanyalah petunjuk lebar tampilan.

Namun, Anda mungkin ingin mencatat bahwa aplikasi=bijaksana mungkin terlihat berbeda. Di sini, tinyint(1) dapat mengambil arti khusus. Misalnya, Konektor/J (konektor Java) memperlakukan tinyint(1) sebagai nilai boolean, dan alih-alih mengembalikan hasil numerik ke aplikasi, itu mengubah nilai menjadi true dan false . ini dapat diubah melalui tinyInt1isBit=false parameter koneksi.

Sebuah tinyint(1) dapat menyimpan angka dalam kisaran -128 hingga 127, karena tipe datanya adalah 8 bit (1 byte) - jelas sebuah tinyint yang tidak ditandatangani dapat menyimpan nilai 0-255.

Ini akan secara diam-diam memotong nilai rentang:

mysql> create table a
    -> (
    ->    ttt tinyint(1)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into a values ( 127 );
Query OK, 1 row affected (0.00 sec)

mysql> insert into a values ( -128 );
Query OK, 1 row affected (0.00 sec)

mysql> insert into a values ( 128 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into a values ( -129 );
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from a;
+------+
| ttt  |
+------+
|  127 |
| -128 |
|  127 |
| -128 |
+------+
4 rows in set (0.00 sec)

mysql>

... kecuali jika Anda mengubah sql_mode atau ubah konfigurasi server:

mysql> set sql_mode=STRICT_ALL_TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into a values ( -129 );
ERROR 1264 (22003): Out of range value for column 'ttt' at row 1
mysql>

Nilai yang digunakan dalam DDL untuk tipe data (misalnya:tinyint(1)), seperti yang Anda duga, adalah lebar tampilan. Namun, ini opsional dan klien tidak harus menggunakannya. Klien MySQL standar tidak menggunakannya, misalnya.

https://dev.mysql .com/doc/refman/5.1/en/integer-types.html

https://dev .mysql.com/doc/refman/5.0/en/numeric-type-overview.html

MySql:Tinyint (2 ) vs tinyint(1) - apa bedanya?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memposting data ke database menggunakan Fetch API di React.js

  2. Permintaan pencarian beberapa tag

  3. Hitung lembur per hari

  4. Ulangi hingga kode sandi unik

  5. Validasi Data MySQL saat Penyisipan