牛客网数据库(sql入门)练习

1、多列查询

select age,name from usertable;

2、 数据去重——distinct

distinct只可用于全局,不能打用于单列

select distinct age from usertable;
--这如果age和gender不是一样的,不会只对age进行去重处理
select distinct age,gender from usertable;

3、查看前两条数据

limit用法:limit 起始序号,长度;

select age from usertable limit 2;

4、查找不为空的元素

select * from usertable where age is not null;

5、where … in

select * from usertable where age in(25,26,27);

6、通配符 “%”,“_”

%表示0个或多个字符
_表示1个字符

select * from usertable where university like "%北京%"

7、求最值

数据库常用统计函数:
–count总数、max最大、min最小、avg平均、sum求和、round取几位小数,round(x,位数)

select max(age) from usertable where university="北京大学";

8、数据库分组——group by

group by子句必须出现在where子句之后,order by子句之前

select gender,university,count(device_id),
avg(active_days_within_30),avg(question_cnt)
from user_profile group by gender,university;

9、分组条件筛选——having

select university,avg(question_cnt) as avg_question_cnt ,
avg(answer_cnt) as avg_answer_cnt 
from user_profile group by university 
having avg(question_cnt)<5 or avg(answer_cnt)<20;

10、排序——order by

使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列
排序可以直接指定名字,也可以用索引,为了代码的可读性,指定名字更佳

select university,avg(question_cnt) as avg_question_cnt 
from user_profile group by university order by asc avg_question_cnt;

11、联结

inner join: 如何使用 SQL INNER JOIN 联结两个或多个表
inner join:等值联结

方法一
select result,age from table1,table2
where table1.age_id=table2.age_id and age=18
方法二
select result,age from table1 inner join table2 on 
table1.age_id=table2.age_id and age=18

12、结果不去重——union all

返回的查询值存在

select device_id,gender,age,gpa 
from user_profile where university="山东大学" 
union all select device_id,gender,age,gpa from user_profile where gender="male";

13、where子句的操作符

不同数据库支持的操作符略有不同,具体情况具体分析,比如mysql中不等于的操作符为<>,!=会报错
判断空值 is null
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值