SQL高级查询学习笔记

本文详细介绍了SQL的高级查询技术,包括函数查询如聚合函数、类型转换、日期型及数学函数,分组查询的GROUP BY及HAVING子句,多表查询的各种连接方式,以及子查询的使用,如IN、EXISTS、比较运算等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL高级查询: 函数查询分组查询多表查询子查询

一、函数查询

1.1 聚合函数

对一组值进行计算,得到一个返回值

SUM(),求和

AVG(),求平均

MIN(),MAX(),求最小值、最大值

COUNT(),计数

--求所有学生的平均年龄
SELECT AVG(sage) FROM student

--为查询结果起别名
SELECT AVG(sage) AS 平均年龄 FROM student

--求所有学生年龄的最大值、最小值和平均值以及学生人数
SELECT MAX(sage) AS 最大年龄, MIN(sage) AS 最小年龄, AVG(sage) AS 平均年龄, COUNT(sage) AS 总人数
FROM student

--求航天班所有学生年龄的最大值、最小值和平均值以及学生人数
SELECT MAX(sage) AS 最大年龄, MIN(sage) AS 最小年龄, AVG(sage) AS 平均年龄, COUNT(*) AS 总人数
FROM student
WHERE sclass='航天'

1.2 类型转换函数

CONVERT(datatype,expression,[date_style])

datatype:目标类型

expression:被转换对象

[date_style]:datatype是日期型(date)时需要设定

--将整数120转换为字符串
SELECT CONVERT(varchar,120)

--将字符串转换为实数
SELECT CONVERT(decimal(7,5),'3.1415')

--字符串转日期
SELECT CONVERT(date,'2018-01-10')

--日期转换为字符串
SELECT CONVERT(char,GETDATE())

--日期转yy.mm.dd型字符串
SELECT CONVERT(char,GETDATE(),102)
--日期转yy/mm/dd型字符串
SELECT CONVERT(char,GETDATE(),111)

日期转yy.mm.dd型字符串,date_style:102

日期转yy/mm/dd型字符串,date_style:111

1.3 日期型函数

GETDATE():获取当前日期和时间

--获取当前日期
SELECT GETDATE()

DATEADD(part,number,date): 给日期增加年、月、日或时间

part:要增加日期的哪一部分(year,month,day,hour,minute,second)

number:增加的数量;date:初始日期和时间

--日期在年份上加5年
SELECT DATEADD(year,5,'2012-5-31 10:10:10')

--日期在月份上加5SELECT DATEADD(month,5,'2012-5-31 10:10:10')

--日期在时间上加5小时
SELECT DATEADD(hour,5,'2012-5-31 10:10:10')

--为学生的出生日期增加2年(不会改变原始表中的数据)
SELECT DATEADD(year,2,sbirthday)
FROM student

DATEDIFF(part,date1,date2):date2和date1在part上相减

part: year,month,day,hour,minute,second

--计算学生年龄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值