MySQL ialah sistem pengurusan pangkalan data hubungan popular yang sering digunakan untuk menyimpan data berstruktur. Dalam MySQL, jenis berangka adalah salah satu jenis data yang kerap digunakan, tetapi disebabkan perbezaan format yang mungkin wujud antara sistem dan sumber data yang berbeza, anda mungkin menghadapi beberapa masalah semasa menukar jenis angka. Artikel ini akan memperkenalkan cara menukar jenis angka dalam MySQL.
Pertama, kita perlu memahami jenis data berangka biasa dan sifat berkaitannya dalam MySQL. Jadual berikut menyenaraikan jenis data berangka yang disokong oleh MySQL:
数据类型 | 描述 |
---|---|
TINYINT | 1 字节有符号整数 |
SMALLINT | 2 字节有符号整数 |
MEDIUMINT | 3 字节有符号整数 |
INT | 4 字节有符号整数 |
BIGINT | 8 字节有符号整数 |
FLOAT | 单精度浮点数 |
DOUBLE | 双精度浮点数 |
DECIMAL | 固定精度小数 |
Dalam jadual di atas, jenis integer masing-masing menggunakan 1, 2, 3, 4, dan 8 bait untuk menyimpan data, jenis titik terapung masing-masing menggunakan 4 dan 8 bait untuk menyimpan data, dan jenis DECIMAL menggunakan 4 hingga 65 perkataan. Bahagian berbeza dalam ruang storan untuk menyimpan data Ruang storan tertentu bergantung pada bilangan titik perpuluhan yang ditetapkan dalam definisi lajur.
Seterusnya, kita akan membincangkan senario biasa untuk penukaran jenis angka dalam MySQL:
Dalam banyak kes Seterusnya, kita perlu untuk menukar rentetan yang disimpan dalam pangkalan data kepada jenis angka, seperti menukar rentetan yang dimasukkan oleh pengguna kepada nombor dan kemudian melakukan pengiraan. Dalam MySQL, anda boleh menukar rentetan kepada jenis angka dengan menggunakan CAST, CONVERT atau pengendali.
Pertama, mari kita lihat penggunaan fungsi CAST. Fungsi CAST menerima dua parameter Parameter pertama ialah nilai yang perlu ditukar jenis, dan parameter kedua ialah jenis data sasaran yang perlu ditukar. Sebagai contoh, untuk menukar rentetan '123' kepada jenis INT, anda boleh menggunakan pernyataan berikut:
SELECT CAST('123' AS INT);
Jika rentetan tidak boleh ditukar kepada jenis data sasaran, nilai NULL akan dikembalikan.
Seterusnya, mari kita lihat penggunaan fungsi CONVERT. Fungsi CONVERT juga menerima dua parameter Parameter pertama ialah nilai yang perlu ditukar jenis, dan parameter kedua ialah jenis data sasaran yang perlu ditukar. Contohnya, untuk menukar rentetan '123' kepada jenis DOUBLE, anda boleh menggunakan pernyataan berikut:
SELECT CONVERT('123', DOUBLE);
Di sini, jenis data sasaran tidak disertakan dalam tanda petikan, tetapi ditulis terus dalam pernyataan SQL. Jika rentetan tidak boleh ditukar kepada jenis data sasaran, 0 akan dikembalikan.
Akhir sekali, mari kita lihat penggunaan penukaran jenis menggunakan pengendali. Apabila menukar rentetan kepada jenis angka, anda boleh menambah rentetan dan jenis data, contohnya:
SELECT '123' + 0;
Di sini, kami menambah rentetan '123' kepada nombor 0, dan MySQL akan secara automatik Rentetan ' 123' ditukar kepada jenis angka 123.
Dalam banyak kes, kita perlu menukar jenis angka kepada jenis rentetan, seperti menghantar nombor sebagai parameter kepada prosedur stor atau fungsi. Dalam MySQL, jenis angka boleh ditukar kepada jenis rentetan dengan menggunakan fungsi CAST atau CONVERT.
Pertama, mari kita lihat penggunaan fungsi CAST. Fungsi CAST menerima dua parameter Parameter pertama ialah nilai yang perlu ditukar jenis, dan parameter kedua ialah jenis data sasaran yang perlu ditukar. Contohnya, untuk menukar nombor 123 kepada jenis rentetan, anda boleh menggunakan penyataan berikut:
SELECT CAST(123 AS CHAR);
Di sini, kami menukar nombor 123 kepada rentetan jenis CHAR.
Seterusnya, mari kita lihat penggunaan fungsi CONVERT. Fungsi CONVERT juga menerima dua parameter Parameter pertama ialah nilai yang perlu ditukar jenis, dan parameter kedua ialah jenis data sasaran yang perlu ditukar. Contohnya, untuk menukar nombor 123 kepada jenis rentetan, anda boleh menggunakan penyataan berikut:
SELECT CONVERT(123, CHAR);
Di sini, kami menukar nombor 123 kepada rentetan jenis CHAR.
Apabila mengimport data, data sumber selalunya disimpan dalam fail CSV atau fail Excel dan nombor dalam fail ini Data selalunya disimpan dalam bentuk rentetan. Apabila mengimport data ke dalam MySQL, data rentetan ini perlu ditukar kepada jenis data berangka yang disokong oleh MySQL.
Sebagai contoh, apabila mengimport data menggunakan perintah LOAD DATA INFILE MySQL, kita boleh menggunakan klausa SET untuk menentukan jenis data setiap lajur. Sebagai contoh, katakan kita mempunyai fail bernama sample.csv yang mengandungi data berikut:
"1001","John","Doe","30" "1002","Jane","Doe","25"
Kita boleh menggunakan arahan berikut untuk mengimport data ke dalam pangkalan data MySQL yang dipanggil jadual jualan:
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) ;
Di sini, kami menggunakan fungsi CAST untuk menukar @col1 dan @col4 kepada nombor jenis INT dan kemudian memasukkan nilai ke dalam lajur id dan umur. Memandangkan first_name dan last_name ialah lajur jenis rentetan, kami tidak perlu melakukan penukaran jenis.
Sudah tentu, sebagai tambahan kepada fungsi CAST, kita juga boleh menggunakan fungsi CONVERT atau operator untuk melakukan penukaran jenis angka apabila mengimport data.
Ringkasnya, apabila kita perlu melakukan penukaran jenis angka dalam MySQL, kita boleh menggunakan CAST, CONVERT atau operator. Apabila mengimport data, kami juga boleh menggunakan klausa SET untuk menentukan jenis data setiap lajur. Dengan menguasai kaedah ini, kami boleh mengendalikan data jenis berangka dengan lebih fleksibel dan menyesuaikannya dengan keperluan perniagaan kami.
Atas ialah kandungan terperinci Bagaimana untuk menukar jenis angka dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!