在 MySQL 中平方根函数 SQRT(x) 返回非负数 x 的二次方根。负数没有平方根,返回结果为 NULL。
【实例 1】求 25、120 和 -9 的二次平方根,输入的 SQL 语句和执行结果如下所示。
mysql> SELECT SQRT(25),SQRT(120),SQRT(-9); +----------+--------------------+----------+ | SQRT(25) | SQRT(120) | SQRT(-9) | +----------+--------------------+----------+ | 5 | 10.954451150103322 | NULL | +----------+--------------------+----------+ 1 row in set (0.06 sec)
由运行结果可知,5 的平方等于 25,因此 25 的平方根为 5;120 的平方根为 10.954451150103322;而负数没有平方根,因此 -9 返回的结果为 NULL。
也可以使用 SQRT 函数,计算出记录的平方根。
【实例 2】 假设数据表 tb_people 有以下这些数据:
mysql> SELECT * FROM tb_people; +------+------+------------+--------------------+ | id | name | work_date | daily_typing_pages | +------+------+------------+--------------------+ | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 3 | Jack | 2007-05-06 | 170 | | 3 | Jack | 2007-04-06 | 100 | | 4 | Jill | 2007-04-06 | 220 | | 5 | Zara | 2007-06-06 | 300 | | 5 | Zara | 2007-02-06 | 350 | +------+------+------------+--------------------+ 7 rows in set (0.00 sec)
根据上面的表格,要计算所有的 dialy_typing_pages 的平方根,输入 SQL 语句执行结果如下:
mysql> SELECT name, SQRT(daily_typing_pages) -> FROM tb_people; +------+--------------------------+ | name | SQRT(daily_typing_pages) | +------+--------------------------+ | John | 15.811388 | | Ram | 14.832397 | | Jack | 13.038405 | | Jack | 10.000000 | | Jill | 14.832397 | | Zara | 17.320508 | | Zara | 18.708287 | +------+--------------------------+ 7 rows in set (0.00 sec)