AVG

avg()函数是一个聚合函数(聚合函数:对一组值执行计算并返回单一的值的函数,常见的有sum、max、min、count等),用于计算从select语句中返回的数值数据集的平均值。

牛客.SQL17计算男生人数以及平均GPA:

select
count(gender) as male_num,
round(avg(gpa),1) as avg_gpa
from user_profile
where gender='male'

COUNT

计算个数或项目数,聚合函数。

基本语句格式:统计公司员工数量。
select count( ) from Company --包括空值
select count(*) from Company --不包括空值

SUBSTRING

substing(str,x,y),str字符串,x是从第x位开始截取,y是截取位数。

substring('dasfdgd',3,2)
->sf

SUBSTRING_INDEX

substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)。

牛客. SQL32截取出年龄

substing_index('dsf,fd,sd,gf',',',1)
->dsf
substing_index('dsf,fd,sd,gf',',',-1)
->gf
substing_index('dsf,fd,sd,gf',',',2)
->dsf,fd

CAST

CAST <expression> AS <data_type>expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

IFNULL和IF

IFNULL(expr1,expr2)
解析:如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。
select IFNULL(1,0);      -> 1
select IFNULL(1/0,10);
-> 10      IF(expr1,expr2,expr3)
解析:如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF返回expr2,否则它返回expr3。IF返回一个数字或字符串值,取决于它被使用的上下文。
SELECT IF(TRUE,1+1,1+2);
-> 2
SELECT IF(FALSE,1+1,1+2);
-> 3
SELECT IF(STRCMP("111","222"),"不相等","相等");
-> 不相等

UPPER

upper(字段),字段要求是字符串类型,将字段内容转成大写。

upper('dssfd')
->'DSSFD'

ROUND

SELECT ROUND(column_name,decimals) FROM table_name;decimals规定要返回的小数位数。

timestampdiff

timestampdiff(interval, time_start, time_end)用于计算时间差,单位以指定的interval为准,常用的有:second秒,minute分组,hour小时,day天数,month月数,year年数。

牛客. SQL6删除记录一

group by和order by

order by 用于排序,默认升序。

升序排列: order by [列名] asc
降序排列: order by [列名] desc

group by 用于分类汇总,对于select查询出来的结果按照某个字段或者表达式分组,获得以组分好的集合,然后从每组中取出一个指定字段或者表达式的值。

group by [列名]

order by用于group by之后。

where和having

where:在初始表中筛选查询,用于约束数据,在返回结果集之前作用。
having:不能单独使用,必须和group by联合使用。用于对where和group by查询出来的分组进行过滤,查出满足条件的分组结果。

当语句中同时出现where、having、group by、聚集函数时,执行顺序是:
1、where子句,寻找符合条件的数据;
2、group by 子句,分组;
3、对group by 子句形成的组运行聚集函数计算每一组的值;
3、having 子句,去掉不符合条件的组。

牛客. SQL确定最佳顾客的另一种方式(二)

注意使用having:
1、having只能用于group by
2、where 是用于在初始表中筛选查询,having用于在where和group by 结果分组中查询
3、having 子句中的每一个元素也必须出现在select列表中
4、having语句可以使用聚合函数,而where不使用

inner join、left join、right join

一、inner join

select * from A inner join B on A.[列名1]=B.[列名1]

牛客. SQL检索每个顾客的名称和所有的订单号一
题目:两个表Customer和Orders。要求检索每个顾客的名称(Customers表中的 cust_name)和所有的订单号(Orders 表中的 order_num),最后根据顾客姓名cust_name升序返回。


要求输出:

分析:
使用两张表的公共字段,正常内连接即可。

select c.cust_name as cust_name,o.order_num as order_num
from Orders as oinner join Customers as c
on c.cust_id=o.cust_idorder by c.cust_name

二、left join

select * from A left join B on A.[列名1]=B.[列名1]

1、返回A表中的所有记录和B表中联结字段相等的记录;
2、走B表索引,不走A表索引;
3、查询A表索引,B表没有的显示为null。

牛客. SQL43 检索每个顾客的名称和所有的订单号(二)
题目:检索每个顾客的名称(Customers表中的 cust_name)和所有的订单号(Orders 表中的 order_num),列出所有的顾客,即使他们没有下过订单。最后根据顾客姓名cust_name升序返回。
要求输出:

分析:就算顾客没有下单也需要输出,left join以左边的列表为主,取两列的交集,对于不在右边列表的字段取null。

select c.cust_name as cust_name,o.order_num as order_num
from Customers as cleft join Orders as o
on c.cust_id=o.cust_idorder by c.cust_name

三、right join

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录。

select * from A right join B on A.[列名1]=B.[列名1]

select的选择问题

select语句之后的排序是对结果集的操作,必须使用同一种排序规则,所以可以选择不同的区间,最后使用同一排序规则。

牛客. SQL纠错

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'MI'
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'IL'
ORDER BY cust_name;

SQL基础常用函数合集相关推荐

  1. 【Python常用函数合集】clip函数、range函数等

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片.    本 ...

  2. argmax函数_Python之Numpy库常用函数合集(附注释)

    文末免费领取[亚马逊.阿里巴巴股票数据] 最近学习Python,才发现原来python里的各种库才是大头!于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习 ...

  3. C/C++常用函数合集

    目录 C标准库 <string.h>头文件 1.memset()​ 2.memcpy() 3.strcpy() 4.strncpy() 5.strcat() 6.getline() 7.s ...

  4. Vs + Qt 界面设计常用函数合集

    下面主要介绍一些在进行 Qt 界面设计时  SetWindows.. 开头的一些常见函数!!! 持续更新中...... 1.setWindowContextHelpld 2.setWindowDisp ...

  5. python基础教程教材-Python3零基础教材电子书合集

    Python3零基础教材电子书合集,传送门:https://www.52pojie.cn/thread-676318-1-1.html 一.<Python编程从入门到实践> 链接:http ...

  6. Python 数据分析三剑客之 NumPy(五):数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  7. anki 新的卡片类型_Anki 常用操作方法合集(一)常用操作1

    本文侧重于一些Anki的常用操作方法的整理,操作方法通用于全平台(非教程本文)不适用于老手. 如果你是彻头彻尾的新手请跳转自 <Anki 常用操作方法合集(二)>的第一有很好的详细教程推荐 ...

  8. python零基础自学教材-Python3零基础教材电子书合集

    Python3零基础教材电子书合集,传送门:https://www.52pojie.cn/thread-676318-1-1.html 一.<Python编程从入门到实践> 链接:http ...

  9. Javascript常用API合集

    常用API合集 一.节点 1.1 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Tex ...

最新文章

  1. C# winform自己实现Windows消息处理
  2. python中if not x: 和 if x is not None: 和 if not x is None的使用和区别
  3. [云炬创业管理笔记]第四章把握创业机会测试3
  4. 操作无法完成_注意!城里人开始羡慕农村户口啦!4种情况却无法完成分户操作!...
  5. android RxJava(RxAndroid)的简单使用
  6. vue+Element ui中使用 upload实现Excel文件上传
  7. Visual Studio Code C++配置文件
  8. Web.XML配置详细说明
  9. ETL异构数据源Datax_Oracle同步MySQL(全量)_04
  10. 光大银行刘淼:基于华为云GaussDB(DWS) 数据仓库创新实践
  11. 我需要一个足够大的桌子
  12. 直击固定资产管理痛点,让企业轻松管理海量固定资产
  13. 可靠性测试设备技术含量_可靠性测试中心
  14. word排版快捷指令_Word怎么快速排版?这12招Word排版小技巧,3分钟完成一个Word文档...
  15. JavaFX报错: Exception in thread WindowsNativeRunloopThread java.lang.NoSuchMethodError
  16. 单片机c语言编写注解,单片机C语言程序注解
  17. 微信 Android 模块化架构重构实践
  18. 【转载】UEBA架构设计之路
  19. 实现Word页面行数控制、公文排版就是那么精准
  20. open gl太阳系简单实现

热门文章

  1. HR眼中的“群面”技巧
  2. 27.Linux网络编程 掌握三次握手建立连接过程掌握四次握手关闭连接的过程掌握滑动窗口的概念掌握错误处理函数封装实现多进程并发服务器实现多线程并发服务器
  3. OPhone SDK初体验
  4. 常用js正则表达式 Javascript正则表达式实战手册
  5. 产品经理要不要考PMP?进化你能力的阶梯!(附:新版考纲及教材)
  6. 名帖361 岳飞 草书《吊古战场文》
  7. 混音器:视频会议录制不可或缺的组件
  8. 好用实用稳定的API接口【物流快递篇】
  9. linux高颜值终端,Microsoft Terminal 颜值在线的终端模拟器
  10. mysql: however file don't exists. Create writable for user 'mysql'.