sql 以a开头的所有记录_#9#猴子聊数据分析之常见的SQL笔试题和面试题(下)

题目来源

猴子:常见的SQL笔试题和面试题(下)​zhuanlan.zhihu.com
df6fb9dd60d3eecc3d389222ed8c683a.png

1、SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示:多个字符

2、通过 SQL,如何从 "Persons" 表中选取 "FirstName" 列?

SELECT FirstName FROM Persons;

3、通过 SQL,如何从 "Persons" 表中选取所有的列?

SELECT * FROM Persons;

4、通过 SQL,如何从 "Persons" 表中选取 "FirstName" 列的值等于"Peter" 的所有记录?

SELECT * FROM Persons WHERE FirstName='Peter';

5、通过 SQL,如何从 "Persons" 表中选取 "FirstName" 列的值以 "a" 开头的所有记录?

SELECT * FROM Persons WHERE FirstName LIKE 'a%';

6、请判断下列说法是否正确:当所列出的某个条件为 true 时,OR 运算符会显示记录。当列出的所有条件为 true 时,AND 运算符会显示记录:正确。

7、通过 SQL,您如何在表 Persons 中选择 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有记录?

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter';

8、通过 SQL,您如何按字母顺序选取 Persons 表中 LastName 介于 Adams 和 Carter 的所有记录?

SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter';

9、哪条 SQL 语句可返回唯一不同的值?

SELECT DISTINCT

10、哪个 SQL 关键词用于对结果集进行排序?

ORDER BY

11、通过 SQL,您如何根据 "FirstName" 列降序地从 "Persons" 表返回所有记录?

SELECT * FROM Persons ORDER BY FirstName DESC;

12、通过 SQL,您如何在 "Persons" 表中删除 "FirstName" 等于 "Fred" 的纪录?

DELETE FROM Persons WHERE FirstName = 'Fred';

13、通过 SQL,如何返回 "Persons" 表中记录的数目?

SELECT COUNT(*) FROM Persons;

14、视图与表有什么区别?

表中存储的是实际数据,而视图中保存的是从表中取出数据所使用的SELECT语句。

15、如果有两张表employees和departments如下:

913b4997945d5565f6cbf128c7193425.png

3c0d176e01ddd82a9f8d94d400daf137.png

(1)写出SQL得出每个部门的平均工资

select b.department_name as 部门 ,avg(a.salary) as 平均工资
from employees a inner join departments b
on   a.department_id = b.department_id
group by a.department_id;

(2)查询量表得出如下结果:

82306a73171e925078c8573f2cff536b.png
select a.first_name,a.salary,b.department_name
from employees a inner join departments b
on   a.department_id = b.department_id
where a.first_name = 'steven' and b.department_name = 'executive';

16、如有有一张表player,有id、name两个列,我想知道这张表有多少行数据,id最大的前10位的name是什么,请问这两个SQL语句如何写?

-- (1)这张表有多少行数据?
select count(*)
from   player;
-- (2)id最大的前十位的name是什么?
select id,name
from   player
order by id desc
limit 10;

17、查询一张数据表(tb),基本字段:日期,订单

要求用SQL实现:周次(week),订单总和,日均订单,极大值订单,极小值订单

-- (1)周次
select 日期, date_format(日期,'%u') as 周次 
from tb;
--  (2)订单总和、日均订单、极大值订单、极小值订单
select sum(订单) as 订单总和,sum(订单)/count(distinct 日期) as 日均订单,max(订单),min(订单)
from   tb;

18、使用SQL实现以下数据表及总分,平均分(数据表:table)

b009bcd770dce9ce95f4bd9a033306ea.png
原表

0142ed294734350725180ab34d4baad9.png
需要实现
select 姓名,max(case 科目 when '语文' then 分数 else 0 end) as 语文,
            max(case 科目 when '数学' then 分数 else 0 end) as 数学,
            max(case 科目 when '外语' then 分数 else 0 end) as 外语,
sum(分数) as 总分,avg(分数) as 平均分
from   table
group by 姓名;

19、表group有四个字段,表结构如下:

create table group(

id bigint comment '群号',

name string comment '群名',

class string comment '群类别',

num int comment '群成员数量');

数据如下:

1 一起打球 篮球 10

2 来玩球吧 篮球 15

3 滨江一霸 篮球 5

4 足球小将 足球 20

5 绝代双骄 足球 30

6 玩个球啊 乒乓 19

...

PK为id --画外音:这是什么意思?

求群数量少于1000的群类别

select class
from   group
group by class
having count(id) < 1000;

19、区间划分问题,使用case语句

541c8a8d8d21e3cc7a88ba6a636cad23.png
select deptid as 部门,
sum(case subjmonth when 1 then sales else null end) as 一月销售额,
sum(case subjmonth when 2 then sales else null end) as 二月销售额,
sum(case subjmonth when 3 then sales else null end) as 三月销售额,
sum(case subjmonth when 4 then sales else null end) as 四月销售额,
from   deptsales
group by deptid;

60218726d6612c4cc16f07e31044f25f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值