Oracle中number数据类型所占用的字节数
Oracle用变长的方式存储存储number数据,每个number值是以科学计数法的形式存储在数据库中的:一个字节用来存储符号/指数,多达2
Oracle用变长的方式存储存储number数据,每个number值是以科学计数法的形式存储在数据库中的:一个字节用来存储符号/指数,多达20个字节来存储尾数。然而存储的number数据的最大精度为38位。
例如,412在数据库中的存储形式为4.12 X 10^2,用一个字节来存储指数2,用另外两个字节来存储数字4,1,2,所以412在数据库中共占用3个字节。
对于符号/指数部分,用第8位表示数值的符号,0表示负数,1表示正数。用剩余的7位表示指数,但是在计算时,必须将指数的值扣除64后,才是真正的指数值。
例如,如果符号/指数部分的值为223 ,它的二进制表示为11011111。它的第8为为1,这表示数值为正数,为了决定指数值,去掉第8位,剩下的7位1011111的值为95,扣除64后,得到31,这是真正的指数值。\
如果符号/指数部分的值为100,它的二进制表示为01100100。它的第8为为0,这表示数值为负数,将01100100 取补,得到10011011,去掉第8位,剩下的7位0011011的值为27,扣除64后,得到-37,这是真正的指数值。
对于尾数部分,每个值表示的值是100进制,并且为了避免二进制的0,在尾数部分的每个字节上都自动加1,所以每个尾数字节表示的数值范围为1-100,实际上,它们表示的真正的数值范围为0-99。如果是一个负数,则尾数部分会以102结束。
观察number存储的最好的工具是dump函数,它可以将number在数据库中的内部存储值显现给我们:
如果123456.789.的dump值为:
DUMP(C1)
------------------------------------------
Typ=2 Len=6: 195,13,35,57,79,91
这表示在数据库内部用6个字节表示123456.789。每个字节如下
第1个字节 = 195 --> 表示为二进制为11000011
表示数值为正数,指数的值为67-64=3
第2个字节 = 13
因为表示尾数,减1后得到12。
第3个字节= 35
因为表示尾数,减1后得到34
第4个字节= 57
因为表示尾数,,减1后得到56.
第5个字节= 79
因为表示尾数,减1后得到78.
第6个字节= 91
因为表示尾数,减1后得到90.
我们得到指数为3,尾数部分的数值是基于100的,所以表示的数值为:
12 x (100 e 2) + 34 x (100 e 1) + 56 x (100 e 0) + 78 x (100 e -1) +
90 x (100 e -2) = 123456.789
如果 -123456.789.的dump值为:
DUMP(C1)
------------------------------------------
Typ=2 Len=7: 60,89,67,45,23,11,102
这表示在数据库内部用6个字节表示123456.789。每个字节如下:
注意:该数值以102结束,表示该数值是一个负数。
第1个字节= 60 -->表示为二进制为00111100
第8位为0,表示数值是一个负数。该值取反后为11000011,去掉第8位,表示67,扣除64后,得到3,该指数的真正值为3。
第2个字节= 89
因为表示尾数,减1后得到88,因为为负数,所以真正的数值为100 – 88得12
第3个字节= 67
因为表示尾数,减1后得到66,因为为负数,所以真正的数值为100 – 66得34
第4个字节= 45
因为表示尾数,减1后得到44,因为为负数,所以真正的数值为100 – 44得56
第5个字节= 23
因为表示尾数,减1后得到22,因为为负数,所以真正的数值为100 – 22得78
第6个字节= 11
因为表示尾数,减1后得到10,因为为负数,所以真正的数值为100 – 10得90
第7个字节= 102
这表示这是最后一个字节
我们得到指数为3,尾数部分的数值是基于100的,所以表示的数值为:
12 x (100 e 2) + 34 x (100 e 1) + 56 x (100 e 0) + 78 x (100 e -1) +
90 x (100 e -2) = 123456.789
因为这是一个负数,所以真正得数值为-123456.789
当然也可以根据公式来推算数值占用得空间:
数值number(p,s)占用得空间为:
length = floor [(p+1)/2] + 1
备注:如果该数值为负数,需要再加一个字节。
所以你的NUMBER(5,2)占用的字节数为:floor [(p+1)/2] + 1 = floor [(5+1)/2] + 1 = 3 + 1 = 4
所以如果NUMBER(5,2)表示整数,占用4个字节,如果表示负数,占用5个字节。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Pengimbasan jadual penuh mungkin lebih cepat dalam MySQL daripada menggunakan indeks. Kes -kes tertentu termasuk: 1) jumlah data adalah kecil; 2) apabila pertanyaan mengembalikan sejumlah besar data; 3) Apabila lajur indeks tidak selektif; 4) Apabila pertanyaan kompleks. Dengan menganalisis rancangan pertanyaan, mengoptimumkan indeks, mengelakkan lebih banyak indeks dan tetap mengekalkan jadual, anda boleh membuat pilihan terbaik dalam aplikasi praktikal.

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.
