sql学习记录

1.
group by 去重是因为只显示同组的第一条数据
并且去重还可以用distinct:

-- 只有field1和field2都重复时,才认为其是重复数据
select distinct field1,field2 from testDistinct;

在这里插入图片描述
在这里插入图片描述
2.

DELETE from person where id not in(SELECT * from
 (SELECT min(id) from person group by email)t);

t 的意思是括号里的数据存到虚拟表 t 里。
3.
数据库中删除一些资料,它的语法是:DELETE FROM “表格名”
WHERE {条件}

4.
concat 可以将多个字符串拼接在一起。
left(str, length) 函数从左开始截取字符串,length 是截取的长度。
upper(str) 将字符串中所有字符转为大写,lower(str) 将字符串中所有字符转为小写。

select user_id, CONCAT(UPPER(left(name, 1)), 
LOWER(RIGHT(name, length(name) - 1))) as name 
from Users order by user_id;

substring(str, begin, length)截取字符串。
所以上面代码也可以写成:

select user_id, concat(upper(left(name,1)),
lower(substring(name,2)))as name 
from users order by user_id;

5.
语法 :group_concat( [DISTINCT] 连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
说明:可以连接多个字段,也可以对连接字段进行排序,默认以 逗号 分隔字段。例如:

group_concat(distinct product order by product asc separator ',')

6.
count(*):统计记录总数,包含重复的记录,以及为NULL或空的记录。
count(1):根据第一列统计记录总数,包含重复的记录,包含为NULL或空的值。也可以使用count(2)、count(3)等等。
count(列名):根据指定的列统计记录总数,包含重复的记录,不包括NULL或空的值。
count(distinct 列名): 根据指定的列统计记录总数,不包含重复的记录,不包括NULL或空的值。

select sell_date, count(distinct product) num_sold,
group_concat(distinct product) products from activities 
group by sell_date;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值