在實際的開發中,經常需要使用到大量的數據進行測試。而手動輸入數據太過麻煩,這時候就可以使用MySQL來隨機生成數據。
以下是一個創建隨機數據表的示例:
CREATE TABLE `customer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `gender` varchar(10) NOT NULL, `address` varchar(255) NOT NULL, `email` varchar(50) NOT NULL, `phone` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在表中我們定義了id、name、age、gender、address、email和phone等字段。下面使用INSERT INTO語句向表中添加數據:
INSERT INTO `customer`(`name`, `age`, `gender`, `address`, `email`, `phone`) SELECT CONCAT('Customer', LPAD(@num := @num + 1, 4, '0')), FLOOR(RAND() * 60) + 18, CASE WHEN RAND()< 0.5 THEN 'Male' ELSE 'Female' END, CONCAT('address', LPAD(@num, 4, '0')), CONCAT('email', LPAD(@num, 4, '0'), '@example.com'), CONCAT('phone', LPAD(@num, 4, '0')) FROM (SELECT @num := 0) t1 CROSS JOIN (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) t2;
在上面的INSERT INTO語句中,使用SELECT語句來生成隨機數據。其中,CONCAT函數用于將字符串合并起來,LPAD函數用于在數字前面填充0,FLOOR函數用于將小數部分舍去。RAND函數用于隨機生成0到1之間的小數,根據這個隨機數來確定數據的性別。使用@num變量來計數,CROSS JOIN語句用于將SELECT的結果集進行笛卡爾積,從而生成更多的數據。
通過以上的語句,可以輕松地生成隨機數據表,從而方便地進行開發測試。
上一篇mysql初級基礎面試題
下一篇python 獲取微信名