SQL 必知必会
陈旸
清华大学计算机博士
73337 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
第一章:SQL语法基础篇 (19讲)
SQL 必知必会
15
15
1.0x
00:00/00:00
登录|注册

07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?

示例6
示例5
示例4
示例3
示例2
示例1
birthdate
mp_max
hp_max
attack_growth
name
Navicat
数据处理示例
字段
COALESCE
CAST
YEAR
DATE
EXTRACT
CURRENT_TIMESTAMP
CURRENT_TIME
CURRENT_DATE
SUBSTRING
REPLACE
UPPER
LOWER
CHAR_LENGTH
LENGTH
CONCAT
ROUND
MOD
ABS
显示出所有在2017年之前上线的英雄
计算英雄的最大生命平均值
总结
关于大小写的规范
SQL函数使用可能带来的问题
使用SQL函数对王者荣耀英雄数据进行处理的示例
常用SQL函数的示例和用法
SQL函数的定义和分类
数据导入工具
英雄数据表
使用函数的注意事项
函数在SQL中的重要性
大小写规范的重要性
可移植性差
DBMS差异性
示例6: 在2016年10月1日之后上线英雄的平均最大生命值、平均最大法力和最高物攻最大值
示例5: 在2016年10月1日之后上线的所有英雄
示例4: 英雄上线日期的年份
示例3: 英雄的名字和名字字数
示例2: 英雄最大生命值的最大值
示例1: 英雄的物攻成长
转换函数
日期函数
字符串函数
算术函数
练习题
内容
标题
王者荣耀英雄数据库
总结
关于大小写的规范
为什么使用SQL函数会带来问题
用SQL函数对王者荣耀英雄数据做处理
常用的SQL函数有哪些
什么是SQL函数
文章结构
数据表
SQL函数

该思维导图由 AI 生成,仅供参考

函数在计算机语言的使用中贯穿始终,在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作,比如求某列数据的平均值,或者求字符串的长度等。从函数定义的角度出发,我们可以将函数分成内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,下面讲解的是 SQL 的内置函数。
你需要从以下几个方面掌握 SQL 函数:
什么是 SQL 函数?
内置的 SQL 函数都包括哪些?
如何使用 SQL 函数对一个数据表进行操作,比如针对一个王者荣耀的英雄数据库,我们可以使用这些函数完成哪些操作?
什么情况下使用 SQL 函数?为什么使用 SQL 函数有时候会带来问题?

什么是 SQL 函数

当我们学习编程语言的时候,也会遇到函数。函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。
SQL 中的函数一般是在数据上执行的,可以很方便地转换和处理数据。一般来说,当我们从数据表中检索出数据之后,就可以进一步对这些数据进行操作,得到更有意义的结果,比如返回指定条件的函数,或者求某个字段的平均值等。

常用的 SQL 函数有哪些

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

SQL函数是数据库中对数据进行操作的工具,可以执行算术运算、字符串处理、日期处理和数据类型转换等操作。本文介绍了SQL中常用的内置函数,包括算术函数、字符串函数、日期函数和转换函数,并提供了每种函数的具体用法和示例。通过对王者荣耀英雄数据库的操作示例,读者可以了解如何使用SQL函数对数据表进行处理,包括四舍五入、求最大值、字符串长度、日期提取、日期比较和求平均值等操作。文章通过实际示例展示了SQL函数的应用场景和操作方法,帮助读者快速了解SQL函数的基本概念和用法。 此外,文章还提到了使用SQL函数时需要注意的问题,如不同数据库软件对函数的支持差异,以及在不同操作系统环境下的大小写规范。作者建议在使用函数时要格外留意,特别是在系统集成或多个DBMS同时存在的情况下。最后,文章提出了一道练习题,要求读者使用SQL函数计算英雄的最大生命平均值,并显示所有在2017年之前上线的英雄。 总之,本文通过清晰的示例和实用的建议,帮助读者全面了解SQL函数的基本概念和用法,同时引发了读者对SQL函数在实际应用中可能遇到的问题的思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SQL 必知必会》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(122)

  • 最新
  • 精选
  • 菜菜
    学得我想打王者荣耀了

    作者回复: 很好 我已经很久没打了,昨天整理稿子的时候也有冲突想开一局,不过还是忍住了,一方面手机存储空间满了,另一方面还是多学习和工作,会让状态更好

    2019-06-28
    4
    29
  • supermouse
    计算英雄的最大生命平均值: SELECT AVG(hp_max) FROM heros; 显示所有在2017年之前上线的英雄: SELECT name FROM heros WHERE birthdate IS NOT NULL AND YEAR(birthdate) < 2017;

    作者回复: 正确

    2019-06-27
    20
  • 番茄
    能请教下,mysql不能用with table as 这个语句,要用什么来替代这个比较方便呢

    作者回复: with table as是在ORACLE中的用法,相当于临时表的作用,在MySQL中可以使用: CREATE TEMPORARY TABLE t AS ( SELECT * FROM player );

    2019-08-12
    2
    7
  • Andre
    答案:SELECT avg(hp_max) as avg_hp FROM heros; SELECT `name` FROM heros WHERE birthdate is NOT NULL AND DATE(birthdate)<'2017-01-01'; 另外赞同时间是最真的答案的说法,应该来讲基础篇大家都还是学起来不费力的,希望基础篇能够快点更新,然后尽快的进入进阶篇

    作者回复: 谢谢 基础篇让大家都有个共识的基础,掌握的人也可以快速复习一遍,进阶篇会有更多关于性能调优,高可用架构等

    2019-06-27
    7
  • Abyssknight
    select avg(hp_max) as avg_hp from heros; select name, birthdate from heros where birthdate < date('2017-01-01');

    作者回复: Good Job

    2019-06-26
    2
    3
  • 海洋
    作业: SELECT AVG(hp_max) FROM heros; +-------------------+ | AVG(hp_max) | +-------------------+ | 6580.478260869565 | +-------------------+ 1 row in set (0.07 sec) ------------------------------------------- SELECT name FROM heros WHERE Year(birthdate) < 2017 AND birthdate is NOT NULL; +----------+ | name | +----------+ | 夏侯惇 | | 牛魔 | | 吕布 | | 芈月 | | 太乙真人 | | 刘邦 | | 关羽 | | 马可波罗 | | 李元芳 | | 虞姬 | | 成吉思汗 | | 不知火舞 | | 貂蝉 | | 周瑜 | | 张良 | | 钟馗 | | 蔡文姬 | | 花木兰 | | 李白 | | 杨戬 | | 刘备 | | 宫本武藏 | | 娜可露露 | +----------+ 或者 SELECT name FROM heros WHERE DATE(birthdate) <'2017-01-01' AND birthdate is NOT NULL;

    作者回复: Good Job

    2019-08-12
    2
  • Elliot
    DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差... 说明学数据库也难免会遇到各种看似毫无技术含量的坑喽。。。

    作者回复: DBMS一般都有自己的方言,不过这些方言都很好理解。比如MySQL可以用LIMIT截取所需的数据行,而Oracle需要使用ROWNUM关键字通过子查询来完成。

    2019-07-07
    2
  • 不负
    > SELECT ROUND(AVG(hp_max), 2) FROM heros; +-----------------------+ | ROUND(AVG(hp_max), 2) | +-----------------------+ | 6580.48 | +-----------------------+ > SELECT name FROM heros WHERE birthdate IS NOT NULL AND DATE(birthdate)<'2017-01-01';

    作者回复: 正确,你也可以使用YEAR(birthdate)<2017

    2019-06-27
    1
  • 圆子蛋
    1. SELECT AVG(max_hp) FROM heros; 2. SELECT name,YEAR(birthdate) AS birthdate FROM heros WHERE birthdate is NOT NULL AND YEAR(birthdate)<2017

    作者回复: Good Job

    2019-06-26
    1
  • Amo,
    今日打卡sql函数

    作者回复: 加油~

    2020-03-22
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部