03sql必知必会笔记王者荣耀带你认识sql函数

作者: singworld 分类: Sql 发布时间: 2019-07-12 20:24

clipboard.png

-- 绝对值
SELECT ABS(-2);
-- 取余
SELECT MOD(10,3);
-- 四舍五入指定小数位数
SELECT ROUND(56.37,1);

clipboard-2.png

-- 将多个字符串连接
SELECT CONCAT('abc',123,'DDc');
-- 计算字段长度
SELECT LENGTH('您好');
SELECT CHAR_LENGTH('您好')
-- 字符串大写转小写
SELECT LOWER('ABC');
-- 字符串小写转大写
SELECT UPPER('abc');
-- 替换函数
SELECT REPLACE('abchjkghi','hjk','def')
-- 截取字符串
SELECT SUBSTR('abcdefg',1,3)

clipboard-3.png

-- 获取系统当前日期
SELECT CURRENT_DATE();
-- 获取系统当前时间
SELECT CURRENT_TIME();
-- 获取系统当前日期加时间
SELECT CURRENT_TIMESTAMP();
-- 抽取具体的年月日
SELECT EXTRACT(YEAR FROM '2019-07-12')

![clipboard-4.png](https://img.jianxiaoxin.com/2019/07/12/872e46aa3a811640fd7c8d2f9e95b27d.png)
-- 数据类型转换
SELECT CAST(545.515 AS DECIMAL(5,2))
-- 返回第一个空值
SELECT COALESCE(null,1,2)


SELECT name,ROUND(attack_growth,1) FROM heros;
-- 显示英雄的最大生命值中的最大值
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;

-- 显示英雄上线年份
SELECT name,YEAR(birthdate) AS birthdate FROM heros WHERE birthdate is NOT NULL;
SELECT name,EXTRACT(YEAR FROM birthdate) AS birthdate FROM heros WHERE birthdate;

-- 显示上线日期大于2016-10-01的英雄
SELECT * FROM heros WHERE DATE(birthdate) > '2016-10-01'
-- 同时需要筛选英雄平均最大生命值,平均最大法力,最高物攻最大值
SELECT AVG(hp_max),AVG(mp_max),MAX(attack_max) FROM heros WHERE DATE(birthdate) > '2016-10-01'

建议和总结
关键字和函数名称全部大写;
数据库名、表名、字段名称全部小写;
SQL 语句必须以分号结尾。

根据王者荣耀英雄数据表,请你使用 SQL 函数作如下的练习:计算英雄的最大生命平均值;显示出所有在 2017 年之前上线的英雄,如果英雄没有统计上线日期则不显示。

-- 计算英雄的最大生命平均值;
SELECT AVG(hp_max) FROM heros
-- 显示出所有在 2017 年之前上线的英雄,如果英雄没有统计上线日期则不显示。
SELECT `name`,EXTRACT(YEAR FROM birthdate) FROM heros WHERE YEAR(birthdate)<2017

Leave a Reply

Your email address will not be published. Required fields are marked *