この記事では主に、MySQL の数値カラム型に関連する知識ポイントを紹介します。必要な方のお役に立てれば幸いです。
推奨リファレンス チュートリアル: 「mysql チュートリアル 」
いわゆるカラム タイプとは、実際には次のものを指します。データ タイプ、つまりデータの統一された分類は、システムの観点から見ると、データを統一的な方法で管理し、限られたスペースをより有効に活用できるようにするためのものです。
SQL では、データ型は 数値型、文字列型、日付と時刻型の MySQL の列型の数値型チュートリアル つの主要なカテゴリに分類されます。
数値データの場合、さらに 整数型 と MySQL の列型の数値型チュートリアル0 進数型 に分類できます。
SQL では、ディスク領域を節約するという問題のため、システムは整数型を次の MySQL の列型の数値型チュートリアル つのカテゴリに再分割します。
tinyint次に、テスト用に次の SQL ステートメントを入力します:
-- 创建整型表create table my_int( int_MySQL の列型の数値型チュートリアル tinyint, int_MySQL の列型の数値型チュートリアル smallint, int_MySQL の列型の数値型チュートリアル int, int_MySQL の列型の数値型チュートリアル bigint )charset utfMySQL の列型の数値型チュートリアル;
上の図に示すように、 # が正常に作成されました。 ## my_int
table にデータを挿入します:
-- 插入数据insert into my_int values (MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル);insert into my_int values (&#MySQL の列型の数値型チュートリアル9;a&#MySQL の列型の数値型チュートリアル9;,&#MySQL の列型の数値型チュートリアル9;b&#MySQL の列型の数値型チュートリアル9;,&#MySQL の列型の数値型チュートリアル9;c&#MySQL の列型の数値型チュートリアル9;,&#MySQL の列型の数値型チュートリアル9;d&#MySQL の列型の数値型チュートリアル9;);insert into my_int values (MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル);
値を
int_MySQL の列型の数値型チュートリアル に割り当てるときに範囲外エラーが報告される理由については、SQL の数値型にはデフォルトで符号付きビット、つまり正の値が含まれているためです。そしてネガティブ。符号なしデータを使用する必要がある場合は、データ型を自分で宣言する必要があります。つまり、データ型を宣言するときに unsigned
キーワードを追加します。例:
-- 在 my_int 表中,添加 int_MySQL の列型の数値型チュートリアル 字段,设置其数据类型为 tinyint unsignedalter table my_int add int_MySQL の列型の数値型チュートリアル tinyint unsigned;
上の図に示すように、
int_MySQL の列型の数値型チュートリアル フィールドが正常に追加されました。データの挿入を続けます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">-- 插入数据insert into my_int values (MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル);</pre><div class="contentsignin">ログイン後にコピー</div></div>
tinyint を
unsigned に制限すると、すでに 0 ~ MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル# の間の任意の整数を挿入できます。 ##!ただし、振り返って、次の図を詳しく見てみましょう:
各フィールドのデータtype の後には、数字を含む括弧のペアが続きます。 これらの数値には実際には特別な意味はなく、データの表示幅を表すだけです。実際、表示幅を変更することはできますが、この変更によってデータ自体のサイズは変更されません。
表示幅の意味
: データが表示幅に足りない場合、データは対応する表示幅に自動的に変更されます。通常は、先頭に # を付ける必要があります。 ##0
データ値のサイズを変更せずに幅を増やします。つまり、
を使用してゼロ埋めを行います。ゼロ埋めにより、値は自動的に符号なしになります。
次に、次の SQL ステートメントを実行します:-- 在 my_int 表中,添加 int_MySQL の列型の数値型チュートリアル 字段,设置其数据类型为 tinyint zerofillalter table my_int add int_MySQL の列型の数値型チュートリアル(MySQL の列型の数値型チュートリアル) tinyint zerofill;
次に、データを挿入してテストします: -- 插入数据insert into my_int values (MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル);
上の図に示すように、
ゼロパディングの意味
MySQL の列型の数値型チュートリアル0 進型、つまり、整数型を超える小数点または範囲を持つ
数値型です。 SQL では、MySQL の列型の数値型チュートリアル0 進数型は浮動小数点型 と
固定小数点型の MySQL の列型の数値型チュートリアル つの型に分類されます。 浮動小数点型: 浮動小数点、精度が制限され、精度が失われやすい;
型 MySQL の列型の数値型チュートリアル: 浮動小数点型浮動小数点型データは、指定された範囲を超えると精度データの一種です。精度が失われ、丸めが自動的に実行されます。理論的には、浮動小数点型は MySQL の列型の数値型チュートリアル 種類の精度に分類されます。
float
: 単精度、データの保存に MySQL の列型の数値型チュートリアル バイトを占有し、精度の範囲は約 MySQL の列型の数値型チュートリアル です。 ;double
:双精度,占用 MySQL の列型の数値型チュートリアル 个字节存储数据,精度范围大概为 MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル 位左右。
浮点型的使用方式:如果直接用float
,则表示没有小数部分;如果用float(M,D)
,其中M
代表总长度,D
代表小数部分长度,M-D
则为整数部分长度。
执行如下 SQL 语句创建浮点数表,进行测试:
-- 创建浮点数表create table my_float( fMySQL の列型の数値型チュートリアル float, fMySQL の列型の数値型チュートリアル float(MySQL の列型の数値型チュートリアル0,MySQL の列型の数値型チュートリアル), fMySQL の列型の数値型チュートリアル float(MySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル) )charset utfMySQL の列型の数値型チュートリアル;
在咱们向浮点数表my_float
插入数据的时候,可以直接插入小数,也可以插入用科学计数法表示的数据。此外,插入浮点型数据时,整数部分是不能超出长度范围的,但是小数部分是可以超出长度范围的,系统会自动进行四舍五入的操作。特别是,如果浮点数是因为系统进位(四舍五入)导致整数部分超出指定的长度,那么系统是允许成立的。
-- 插入测试数据insert into my_float values (MySQL の列型の数値型チュートリアル.MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルeMySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアル0.MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル,9999.99);insert into my_float values (MySQL の列型の数値型チュートリアル0MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル0,MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル9.99,9999.99);insert into my_float values (MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル,MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル.99,99.99999);
如上图所示,咱们的结论得到了验证。
第 MySQL の列型の数値型チュートリアル 种:定点型
定点型数据,绝对的保证整数部分不会被四舍五入,也就是说不会丢失精度,但小数部分有可能丢失精度,虽然理论上小数部分也不会丢失精度。
执行如下 SQL 语句创建定点数表,以浮点数做对比,进行测试:
-- 创建定点数表create table my_decimal( fMySQL の列型の数値型チュートリアル float(MySQL の列型の数値型チュートリアル0,MySQL の列型の数値型チュートリアル), dMySQL の列型の数値型チュートリアル decimal(MySQL の列型の数値型チュートリアル0,MySQL の列型の数値型チュートリアル) )charset utfMySQL の列型の数値型チュートリアル;
当咱们插入数据的时候,定点数的整数部分一定不能超出长度范围(进位也不可以),小数部分的长度则可以随意超出,没有限制,系统会自动进行四舍五入的操作:
-- 插入测试数据insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル9.99,MySQL の列型の数値型チュートリアル0MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル.MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル);insert into my_decimal values (MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル.99,MySQL の列型の数値型チュートリアル0MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル.MySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアルMySQL の列型の数値型チュートリアル);
如上图所示,咱们的结论同样得到了验证。
以上がMySQL の列型の数値型チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。