SQL从零到迅速精通【查询利器】

1.【列选取】从fruits表中获取f_name和f_price两列,T-SQL语句如下。

SELECT f_name,f_price FROM fruits;

 

2.【去重】查询fruits表中s_id字段的值,并返回s_id字段值不得重复。

SELECT DISTINCT s_id FROM fruits;

 

3.【列改名】查询fruits表,为f_name取别名‘名称’,f_price取别名‘价格’,T-SQL语句如下:

SELECT f_name AS ‘名称’,f_price AS ‘价格’

FROM fruits;

 

4.【查询显示的注释添加】

(1)查询fruits表,对表中的s_id和f_id添加说明信息。

SELECT ‘供应商编号:’,s_id,‘水果编号’,f_id FROM fruits;

(2)查询fruits表中所有水果的名称和价格,并对价格打八折

SELECT f_name,f_price 原价,f_price * 0.8 折扣价 FROM fruits;   --相当于省略了AS

 

5.EXISTS

    查询suppliers表中是否存在s_id=107的供应商,如果存在则查询fruits表中的记录,T-SQL语句如下。

SELECT * FROM fruits

WHERE EXISTS

(SELECT s_name FROM suppliers WHERE s——id =107);

 

6.多列排序

    查询fruits表中的f_name和f_price字段,先按f_name排序,再按f_price排序,T-SQL语句如下。

SELECT f_name,f_price FROM fruits ORDER BY f_name,f_price;

 

7.***GROUP BY分组

(1)根据s_id对fruits表中的数据进行分组,T-SQL语句如下。

SELECT s_id,COUNT(*) AS Total FROM fruits GROUP BY s_id;

(2)根据s_id和f_name字段对fruits表中的数据进行分组,T-SQL语句如下。

SELECT s_id,f_name FROM fruits group by s_id,f_name;

 

8.HAVING对分组结果过滤【和GROUP BY联合使用】

    根据s_id对fruits表中的数据进行分组,并显示水果种类大于1的分组信息,语句如下:

SELECT s_id,COUNT(*) AS Total FROM fruits

GROUP BY s_id HAVING COUNT(*)>1;

 

9.使用COMPUTE子句对查询结果小计

  GROUP BY子句返回的结果集中只有合计数据,而没有原始的详细记录,但是COMPUTE可以显示详细的记录、

    使用COMPUTE子句产生fruits表中f_price字段的总和,要求将查询结果按s_id字段进行排序之后,再返回f_price字段的总和。

USE test

SELECT s_id,f_price,f_name

FROM fruits

ORDER BY s_id

COMPUTE SUM(f_price);

 

10.使用COMPUTE BY子句分组小计

 

11.使用UNION合并查询结果集

    查询所有价格小于9的水果的信息,查询s_id等于101的所有水果的信息,使用UNION ALL连接查询结果,语句如下。

SELECT s_id,f_name,f_price

FROM fruits

WHERE f_price <9.0

UNION ALL

SELECT s_id,f_name,f_price

FROM fruits

WHERE s_id = 101;

 

12.****使用COUNT()统计

(1)COUNT(*):计算表中总的行数,不管某列有数值或者为空值;

(2)COUNT(字段名):计算指定列下总的行数,计算时将忽略字段值为空值的行。

 

转载于:https://www.cnblogs.com/osmondwang/p/7253227.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值