MYSQL语句学习

本文详细介绍了MySQL中如何进行数据去重、限制返回记录条数、列重命名、过滤特定值、查找最大值以及使用GROUP BY进行数据分组分析。通过实例展示了SQL查询在数据处理中的实用技巧,帮助读者更好地理解和应用这些功能。
摘要由CSDN通过智能技术生成

牛客网上提供在线MYSQL语句学习,根据出的题直接进行编写SQL,运行提交。

此文章用于记录学习过程中需要加强的知识点。

问题1:查询结果去重----查询某列中所有结果,并将该列中重复的值去掉,只保留一个值

SELECT DISTINCT 列名称 FROM 表名称

列名称为需要去重的对应列名

问题2:限制返回记录条数----只显示查询结果的前2条记录

select <列名>,<列名>,...from <表名> limit <参数值>;

select * from product limit (1,3)--返回结果index=1的开始的3条记录

select * from product limit 3;--返回结果index=0的开始的3条记录

limit n:只有一个参数时,代表返回从0开始的总的n条记录

limit m,n:m代表第一条记录的index编辑(第一条记录从0开始),n代表要返回的记录总数


 问题3:将查询结果中某列重命名显示

select <列名> as <新列名> from <表名> 

例如:SELECT device_id AS user_infos_example FROM user_profile LIMIT 2

问题4:查找除某值的记录信息

select <列名>,<列名>,...from <表名> where 列名 not in ('值1’,'值2' ......)

select device_id,gender,age,university from user_profile where university not in ('复旦大学');

问题5:过滤掉值不等于NULL的值

select <列名>,<列名>,...from <表名> where 列名 is not null

select <列名>,<列名>,...from <表名> where 列名 is null

注意:是否等于NULL值,不能用 <> null 或!= null 或=null

问题6:查找某列的最大值

select max(<列名>),<列名>,...from <表名> where 列名 ....

问题6:GROUP BY查找某组的个数之类的

题目:现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。

用户信息表:user_profile

30天内活跃天数字段(active_days_within_30)

发帖数量字段(question_cnt)

回答数量字段(answer_cnt)

iddevice_idgenderageuniversitygpaactive_days_within_30question_cntanswer_cnt
12138male21北京大学3.47212
23214male复旦大学4.015525
36543female20北京大学3.212330
42315female23浙江大学3.6512
55432male25山东大学3.8201570
62131male28山东大学3.315713
74321male26复旦大学3.69652

select gender,university,count(device_id) as user_num,avg(active_days_within_30) as avg_active_day,avg(question_cnt) as avg_question_cnt from user_profile group by university,gender

.......持续补充

问题7:UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

问题7:记录结果值是新命名的值,在原表中没有对应的值

CASE 语法

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值