BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Sabtu, 21 Mei 2011

Sabtu, 09 April 2011
NUMERIC

TENTANG NUMERIC

MySQL mendukung semua tipe data angka standar SQL. Jenis ini termasuk tipe numerik yang tepat data (INTEGER, SMALLINT, DECIMAL, dan NUMERIC), serta angka perkiraan tipe data (FLOAT, REAL, dan KETEPATAN DOUBLE). The INT kata kunci adalah sinonim untuk INTEGER, dan kata kunci DEC dan TETAP adalah sinonim untuk DECIMAL. MySQL memperlakukan DOUBLE sebagai sinonim untuk DOUBLE KETEPATAN (perpanjangan tidak standar). MySQL juga memperlakukan REAL sebagai sinonim untuk DOUBLE KETEPATAN (sebuah variasi tidak standar), kecuali jika REAL_AS_FLOAT SQL modus diaktifkan.

Pada MySQL 5.0.3, sebuah BIT tipe data yang tersedia untuk menyimpan nilai bit-lapangan. (Sebelum 5.0.3, MySQL menafsirkan BIT sebagai TINYINT (1).) Dalam MySQL 5.0.3, BIT hanya didukung untuk MyISAM. MySQL 5.0.5 memperluas dukungan BIT untuk MEMORY, InnoDB, BDB, dan NDBCLUSTER.

Untuk informasi mengenai persyaratan penyimpanan tipe numerik, lihat Bagian 10.5, "Tipe Data Storage Persyaratan".

Jenis data yang digunakan untuk hasil dari perhitungan numerik operan tergantung pada jenis dari operan dan operasi yang dilakukan pada mereka. Untuk informasi lebih lanjut, lihat Bagian 11.6.1, "Arithmetic Operator".

Untuk informasi mengenai bagaimana menangani penugasan MySQL out-of-range nilai untuk kolom dan meluap selama evaluasi ekspresi, lihat Bagian 10.6, "Out-of-Range dan Penanganan Overflow".
Integer Jenis

MySQL mendukung SQL INTEGER integer jenis standar (atau INT) dan SMALLINT. Sebagai perpanjangan dengan standar, MySQL juga mendukung jenis integer TINYINT, MEDIUMINT, dan BIGINT. Tabel berikut ini menunjukkan penyimpanan yang diperlukan dan jangkauan untuk setiap tipe integer.
Jenis Penyimpanan Nilai Maksimum Nilai Minimum
(Bytes) (Ditandatangani / Unsigned) Penandatanganan / Unsigned)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32.768 32.767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615
Floating-Point (Perkiraan-Nilai) Jenis

Para FLOAT dan DOUBLE jenis merupakan nilai perkiraan data numerik. MySQL menggunakan empat byte untuk nilai tunggal-presisi dan delapan byte untuk nilai ganda-presisi.

Untuk FLOAT, standar SQL ijin spesifikasi opsional dari presisi (tetapi tidak kisaran eksponen) dalam bit mengikuti FLOAT kata kunci dalam tanda kurung. MySQL juga mendukung spesifikasi presisi ini opsional, namun nilai presisi hanya digunakan untuk menentukan ukuran penyimpanan. Sebuah presisi dari 0 sampai 23 hasil dalam satu kolom-presisi empat-byte FLOAT. Sebuah presisi 24-53 hasil dalam kolom ganda presisi delapan-byte DOUBLE.

MySQL izin sintaks yang tidak standar: FLOAT (M, D) atau REAL (M, D) atau DOUBLE KETEPATAN (M, D). Di sini, "(M, D)" berarti daripada nilai dapat disimpan dengan sampai digit M secara total, dimana D digit mungkin setelah titik desimal. Sebagai contoh, kolom didefinisikan sebagai FLOAT (7,4) akan terlihat seperti -999,9999 ketika ditampilkan. MySQL melakukan pembulatan saat menyimpan nilai-nilai, jadi jika Anda menyisipkan 999,00009 ke dalam kolom (7,4) FLOAT, hasil perkiraan adalah 999,0001.

Karena nilai floating-point adalah perkiraan dan tidak disimpan sebagai nilai yang tepat, upaya untuk memperlakukan mereka sama persis dalam perbandingan dapat mengakibatkan masalah. Mereka juga tunduk pada dependensi platform atau implementasi. Untuk informasi lebih lanjut, lihat C.5.5.8 Bagian, "Masalah dengan Floating-Point Nilai"

Untuk portabilitas maksimal, kode membutuhkan penyimpanan perkiraan nilai data numerik harus menggunakan KETEPATAN FLOAT atau DOUBLE tanpa spesifikasi presisi atau jumlah digit.
Fixed-Point (Exact-Nilai) Jenis

Para DECIMAL dan jenis NUMERIC menyimpan nilai data angka yang tepat. Jenis ini digunakan ketika itu adalah penting untuk menjaga presisi yang tepat, misalnya dengan data moneter. Di MySQL, NUMERIC diimplementasikan sebagai DECIMAL, sehingga pernyataan berikut tentang DECIMAL berlaku untuk NUMERIC.

Pada MySQL 5.0.3, nilai DECIMAL disimpan dalam format biner. Sebelumnya, mereka disimpan sebagai string, dengan satu karakter yang digunakan untuk setiap digit nilai, titik desimal (jika skala lebih besar dari 0), dan tanda - (untuk angka negatif) "". Lihat Bagian 11.17, "Precision Matematika".

Dalam deklarasi kolom DECIMAL, ketepatan dan skala dapat (dan biasanya) yang ditentukan, misalnya:

gaji DECIMAL (5,2)

Dalam contoh ini, 5 adalah presisi dan 2 adalah skala. presisi tersebut merupakan jumlah angka signifikan yang disimpan untuk nilai-nilai, dan skala mewakili jumlah angka yang bisa disimpan setelah titik desimal.

Standar SQL mengharuskan DECIMAL (5,2) dapat menyimpan nilai apapun dengan lima digit dan dua desimal, sehingga nilai-nilai yang dapat disimpan dalam kisaran kolom gaji dari -999,99 ke 999,99. MySQL memberlakukan batas ini pada MySQL 5.0.3. Sebelum 5.0.3, di ujung positif jangkauan, kolom benar-benar bisa menyimpan nomor sampai 9.999,99. (Untuk bilangan positif, MySQL 5.0.2 dan sebelumnya menggunakan byte disediakan untuk tanda untuk memperpanjang ujung atas jangkauan.)

Dalam SQL standar, syntax DECIMAL (M) adalah setara dengan DECIMAL (M, 0). Demikian pula, DECIMAL sintaks setara dengan DECIMAL (M, 0), dimana implementasinya diizinkan untuk menentukan nilai M. MySQL mendukung kedua bentuk varian sintaks DECIMAL. Nilai default dari M adalah 10.

Jika skala adalah 0, nilai DECIMAL tidak mengandung titik desimal atau bagian pecahan.
Bit-Nilai Jenis

Jumlah maksimum digit untuk DECIMAL adalah 65 (64 dari MySQL 5.0.3 ke 5.0.5). Sebelum MySQL 5.0.3, jangkauan maksimum nilai DECIMAL adalah sama seperti untuk DOUBLE, tetapi rentang sebenarnya untuk kolom DECIMAL diberikan dapat dibatasi oleh ketepatan atau skala untuk kolom tertentu. Ketika seperti kolom diberi nilai dengan angka yang lebih mengikuti titik desimal selain yang diperbolehkan oleh skala tertentu, nilai dikonversikan ke skala itu. (Perilaku yang tepat adalah sistem operasi khusus, tetapi umumnya efeknya adalah pemotongan dengan jumlah digit yang diizinkan.)

Pada MySQL 5.0.3, yang BIT tipe data digunakan untuk menyimpan nilai bit-lapangan. Jenis BIT (M) memungkinkan penyimpanan nilai M-bit. M bisa berkisar dari 1 sampai 64.

Untuk menetapkan nilai bit, notasi b'value 'dapat digunakan. Nilai adalah nilai biner ditulis menggunakan angka satu dan nol. Sebagai contoh, b'111 'dan b'10000000' mewakili 7 dan 128, masing-masing. Lihat Bagian 8.1.6, "Bit-Field Nilai".

Jika Anda memberikan nilai pada kolom (M) BIT yang kurang dari bit M panjang, nilainya empuk di sebelah kiri dengan nol. Sebagai contoh, menempatkan nilai b'101 'ke BIT (6) kolom, pada dasarnya, sama seperti menugaskan b'000101'.
Tipe Numeric Atribut

MySQL mendukung ekstensi untuk opsional menentukan lebar tampilan tipe data integer dalam tanda kurung diikuti kata kunci dasar untuk jenis. Sebagai contoh, INT (4) menetapkan suatu INT dengan lebar layar dari empat digit. Layar lebar ini opsional dapat digunakan oleh aplikasi untuk menampilkan nilai integer memiliki lebar kurang dari lebar yang ditentukan untuk kolom dengan kiri-padding mereka dengan spasi. (Artinya, lebar ini hadir dalam metadata kembali dengan hasil set Apakah itu digunakan atau tidak adalah sampai dengan aplikasi..)

Layar lebar tidak membatasi rentang nilai yang dapat disimpan dalam kolom. Juga tidak mencegah nilai lebih lebar dari lebar kolom tampilan dari yang ditampilkan dengan benar. Sebagai contoh, kolom ditetapkan sebagai SMALLINT (3) memiliki kisaran SMALLINT biasa -32.768-32.767, dan nilai-nilai di luar rentang diizinkan oleh tiga digit ditampilkan secara penuh menggunakan lebih dari tiga digit.

Bila digunakan bersama dengan (tidak standar) atribut opsional ZEROFILL, padding default ruang diganti dengan nol. Sebagai contoh, untuk kolom dinyatakan sebagai INT (4) ZEROFILL, nilai 5 adalah diambil sebagai 0005.
Catatan

Atribut ZEROFILL diabaikan ketika kolom terlibat dalam ekspresi atau pertanyaan UNION.

Jika Anda menyimpan nilai-nilai yang lebih besar dari lebar layar dalam sebuah kolom integer yang memiliki atribut ZEROFILL, Anda mungkin mengalami masalah saat MySQL menghasilkan tabel sementara untuk beberapa rumit bergabung. Dalam kasus ini, MySQL mengasumsikan bahwa nilai data sesuai dalam layar lebar kolom.

Semua jenis integer dapat memiliki opsional (tidak standar) atribut unsigned. Unsigned jenis dapat digunakan untuk memungkinkan hanya nomor nonnegatif dalam kolom atau bila Anda membutuhkan rentang numerik yang lebih besar atas untuk kolom. Sebagai contoh, jika sebuah kolom INT adalah unsigned, ukuran rentang kolom adalah sama tetapi pergeseran titik akhir dari -2147483648 dan 2147483647 sampai dengan 0 dan 4294967295.

jenis Floating-point dan fixed-point juga dapat unsigned. Sebagaimana dengan tipe integer, atribut ini mencegah nilai negatif dari disimpan dalam kolom. Berbeda dengan tipe integer, kisaran atas nilai kolom yang tetap sama.

Jika Anda menetapkan ZEROFILL untuk kolom numerik, MySQL secara otomatis menambahkan atribut unsigned untuk kolom.

Tipe data integer atau floating-point dapat memiliki atribut AUTO_INCREMENT tambahan. Bila Anda memasukkan nilai NULL (direkomendasikan) atau 0 menjadi sebuah kolom AUTO_INCREMENT diindeks, kolom diatur ke nilai urutan berikutnya. Biasanya ini adalah nilai +1, dimana nilai adalah nilai terbesar untuk kolom saat ini dalam tabel. urutan AUTO_INCREMENT dimulai dengan 1.

ItsMeFurZy - Blog


Cari Blog Ini