ホームページ >データベース >mysql チュートリアル >MySQL で数値型を変換する方法

MySQL で数値型を変換する方法

PHPz
PHPzオリジナル
2023-04-20 10:11:552563ブラウズ

MySQL は、構造化データの保存によく使用される人気のリレーショナル データベース管理システムです。 MySQL では、数値型は頻繁に使用されるデータ型の 1 つですが、異なるシステムやデータ ソース間に存在する形式の違いにより、数値型を変換するときに問題が発生する可能性があります。この記事では、MySQL で数値型を変換する方法を紹介します。

まず、MySQL における一般的な数値データ型とそれに関連するプロパティを理解する必要があります。次の表は、MySQL でサポートされている数値データ型のリストです。

##FLOAT単精度浮動小数点数#DOUBLEDECIMAL

上記の表では、整数型はデータの格納にそれぞれ 1、2、3、4、および 8 バイトを使用し、浮動小数点型はデータの格納にそれぞれ 4 と 8 バイトを使用し、DECIMAL 型は 4 ~ 65 を使用します。セクションは、データを保存するための記憶領域が異なります。特定の記憶領域は、列定義で設定された小数点の数によって異なります。

次に、MySQL での数値型変換の一般的なシナリオについて説明します。

  1. 文字列を数値型に変換する

多くの場合、次に、ユーザーが入力した文字列を数値に変換して計算するなど、データベースに保存されている文字列を数値型に変換する必要があります。 MySQL では、CAST、CONVERT、または operator を使用して文字列を数値型に変換できます。

まず、CAST関数の使い方を見てみましょう。 CAST 関数は 2 つのパラメータを受け入れます。最初のパラメータは型変換する必要がある値で、2 番目のパラメータは変換する必要があるターゲット データ型です。たとえば、文字列 '123' を INT 型に変換するには、次のステートメントを使用できます。

SELECT CAST('123' AS INT);

文字列をターゲット データ型に変換できない場合は、NULL 値が返されます。

次に、CONVERT 関数の使用法を見てみましょう。 CONVERT 関数は 2 つのパラメーターも受け入れます。最初のパラメーターは型変換する必要がある値で、2 番目のパラメーターは変換する必要のあるターゲット データ型です。たとえば、文字列 '123' を DOUBLE 型に変換するには、次のステートメントを使用できます。

SELECT CONVERT('123', DOUBLE);

ここでは、ターゲット データ型は引用符で囲まれていませんが、SQL ステートメントに直接記述されています。 。文字列をターゲットのデータ型に変換できない場合は、0 が返されます。

最後に、operator を使用した型変換の使用法を見てみましょう。文字列を数値型に変換する場合、文字列とデータ型を追加できます。例:

SELECT '123' + 0;

ここでは、数値 0 に文字列 '123' を追加します。MySQL は自動的にその文字列を追加します。 「123」は数値型 123 に変換されます。

  1. 数値型を文字列型に変換する

多くの場合、数値をパラメーターとしてストレージ プロシージャまたは関数に渡すなど、数値型を文字列型に変換する必要があります。 MySQL では、CAST 関数または CONVERT 関数を使用して数値型を文字列型に変換できます。

まず、CAST関数の使い方を見てみましょう。 CAST 関数は 2 つのパラメータを受け入れます。最初のパラメータは型変換する必要がある値で、2 番目のパラメータは変換する必要があるターゲット データ型です。たとえば、数値 123 を文字列型に変換するには、次のステートメントを使用できます。

SELECT CAST(123 AS CHAR);

ここでは、数値 123 を CHAR 型の文字列に変換します。

次に、CONVERT 関数の使用法を見てみましょう。 CONVERT 関数は 2 つのパラメーターも受け入れます。最初のパラメーターは型変換する必要がある値で、2 番目のパラメーターは変換する必要のあるターゲット データ型です。たとえば、数値 123 を文字列型に変換するには、次のステートメントを使用できます。

SELECT CONVERT(123, CHAR);

ここでは、数値 123 を CHAR 型の文字列に変換します。

  1. データインポート時の数値型変換

データをインポートする際、ソースデータはCSVファイルやExcelファイルに保存されていることが多く、これらのファイル内のデータは多くの場合、文字列の形式で保存されます。データを MySQL にインポートする場合、これらの文字列データを MySQL でサポートされている数値データ型に変換する必要があります。

たとえば、MySQL の LOAD DATA INFILE コマンドを使用してデータをインポートする場合、SET 句を使用して各カラムのデータ型を指定できます。たとえば、次のデータを含むsample.csvという名前のファイルがあるとします:

"1001","John","Doe","30"
"1002","Jane","Doe","25"

次のコマンドを使用して、sales tableという名前のMySQLデータベースにデータをインポートできます:

LOAD DATA INFILE 'sample.csv'
INTO TABLE sales
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(@col1, @col2, @col3, @col4)
SET
    id = CAST(@col1 AS INT),
    first_name = @col2,
    last_name = @col3,
    age = CAST(@col4 AS INT)
;

ここでは、CAST 関数を使用して @col1 と @col4 を INT 型の数値に変換し、その値を id 列と age 列に挿入します。 first_name と last_name は文字列型の列であるため、型変換を行う必要はありません。

もちろん、CAST 関数に加えて、CONVERT 関数または operator を使用して、データのインポート時に数値型の変換を実行することもできます。

要約すると、MySQL で数値型の変換を実行する必要がある場合は、CAST、CONVERT、または operator を使用できます。データをインポートするとき、SET 句を使用して各列のデータ型を指定することもできます。これらの方法をマスターすることで、数値型データをより柔軟に処理し、ビジネス ニーズに適応させることができます。

#データ型 説明
#TINYINT 1 バイトの符号付き整数
SMALLINT 2 バイトの符号付き整数
MEDIUMINT 3 バイト符号付き整数
#INT 4 バイト符号付き整数
#BIGINT 8 バイト符号付き整数
倍精度浮動小数点数
固定精度10進数

以上がMySQL で数値型を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。