算术函数
函数名 | 定义 |
---|---|
ABS() | 取绝对值 |
MOD() | 取余 |
ROUND() | 四舍五入为指定的小数位数,需要有两个参数,分别为字段名称、小数位数 |
- SELECT ABS(-2),运行结果为 2。
- SELECT MOD(101,3),运行结果 2。
- SELECT ROUND(37.25,1),运行结果 37.3。
- SELECT name, ROUND(attack_growth,1) FROM heros
字符串函数
函数名 | 定义 |
---|---|
CONCAT() | 将多个字符串拼接起来 |
LENGTH() | 计算字段的长度,一个汉字算3个字符,一个数字或字母算一个字符 |
CHAR_LENGTH() | 计算字段的长度,汉字、数字、字母都算一个字符 |
LOWER() | 将字符串中的字符转化为小写 |
UPPER() | 将字符串中的字符转化为大写 |
REPLACE() | 替换函数 |
SUBSTRING() | 截取字符串 |
- SELECT CONCAT(‘abc’, 123),运行结果为 abc123。
- SELECT LENGTH(‘你好’),运行结果为 6。
- SELECT CHAR_LENGTH(‘你好’),运行结果为 2。
- SELECT LOWER(‘ABC’),运行结果为 abc。
- SELECT UPPER(‘abc’),运行结果 ABC。
- SELECT REPLACE(‘fabcd’, ‘abc’, 123),运行结果为 f123d。
- SELECT SUBSTRING(‘fabcd’, 1,3),运行结果为 fab。
日期函数
转换函数
函数名 | 定义 |
---|---|
CAST() | 数据类型转换,参数是一个表达式,表达式通过AS关键词分割了2个参数,分别是原始数据和目标数据类型 |
COALESCE() | 返回第一个非空数值 |
- SELECT CAST(123.123 AS INT),运行结果会报错。
- SELECT CAST(123.123 AS DECIMAL(8,2)),运行结果为 123.12。
- CAST 函数在转换数据类型的时候,不会四舍五入,如果原数值有小数,那么转换为整数类型的时候就会报错。不过你可以指定转化的小数类型,在 MySQL 和 SQL Server 中,可以用**DECIMAL(a,b)**来指定,其中 a 代表整数部分和小数部分加起来最大的位数,b 代表小数位数 。
- SELECT COALESCE(null,1,2),运行结果为 1。
数据处理
- 显示英雄最大生命值的最大值
- SELECT MAX(hp_max) FROM heros
- 显示最大生命值最大的是哪个英雄,以及对应的数值
- SELECT name, hp_max FROM heros WHERE hp_max = (SELECT MAX(hp_max) FROM heros)
- 显示英雄的名字,以及他们的名字字数
- SELECT CHAR_LENGTH(name), name FROM heros
聚集函数
函数 | 说明 |
---|---|
COUNT() | 总行数 |
MAX() | 最大值 |
MIN() | 最小值 |
SUM() | 求和 |
AVG() | 平均值 |
- 查询最大生命值大于 6000 的英雄数量
- SELECT COUNT(*) FROM heros WHERE hp_max > 6000
- 查询最大生命值大于 6000,且有次要定位的英雄数量
- SELECT COUNT(role_assist) FROM heros WHERE hp_max > 6000
- 要查询射手(主要定位或者次要定位是射手)的最大生命值的最大值是多少
- SELECT MAX(hp_max) FROM heros WHERE role_main = ‘射手’ or role_assist = ‘射手’
- 射手(主要定位 或者次要定位是射手)的英雄数、平均最大生命值、法力最大值的最大值、攻击最大值的最 小值,以及这些英雄总的防御最大值等汇总数据
- SELECT COUNT(*) , AVG(hp_max), MAX(mp_max), MIN(attack_max), SUM(defense_max) FROM heros WHERE role_main = ‘射手’ or role_assist = ‘射手’