sql sever avg保留小数_数据分析_SQL_学习04

v2-2afcb99995763ac44417e095c70e0f0d_1440w.jpg?source=172ae18b

1.视图:

create view view_name(<视图列表1>,<视图列表2>)

as

<select 查询语句>;

create 

2.子查询:

all、any的使用

如果频繁使用某段SQL语句,可以使用视图;

如果使用不频繁,可以使用子查询。

使用子查询的注意事项:

1)all得到的是一个集合,要写第二种模式

a > 3*all(b) ×

a/3 > all(b) √

2)避免使用多层子查询,不易读懂

3)select 。。。 from 。。。子查询 as 子查询名称

注意as可以省略

3.关联子查询:

查找出每个课程中大于对应课程平均成绩的学生:

select 学号,课程号,成绩

from score as s1

where 成绩 > (

select avg(成绩) from score as s2 where s1.课程号 = s2.课程号 group by 课程号

);

请注意表别名的使用和有效范围。比如:s2这个表别名仅仅在这个子查询里面有效。

我们应该在什么情况下,使用关联子查询呢?

在每个组里进行比较的时候。

4.如何使用SQL解决业务问题:

--第一步:翻译成大白话

--第二步:写出分析思路

--第三步:写出对应的SQL子句

示例:哪些学生的成绩比课程0002的全部成绩里的任意一个高呢?

第一步:课程0002的全部成绩,比如是(10,30)

select 成绩 from score where 课程号 = '0002';

第二步:某个学生的成绩大于任意一个第一步里的成绩,就符合条件

select * from score where 成绩 > any(select 成绩 from score where 课程号 = '0002');

5.各种函数:

汇总函数:

count

算术函数:

round(数值,保留小数的位数):对数据进行四舍五入

abs(数值):绝对值

mod(被除数,除数)求余数

但是要注意不同数据库管理软件可能会略有不同。

字符串函数:

length():字符串长度

lower():大写转换成小写

upper():小写转换成大写

concat():字符串拼接

replace():字符串替换

substring():字符串截取

日期函数:

current_date:当前日期

current_time:当前时间

current_timestamp:当前日期和时间

year:日期的年份

month:日期的月份

day:日期的天

dayname:日期对应的星期几

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值