SQLZOO练习7-[通俗易懂]

SQLZOO练习7-[通俗易懂]teacher表: iddeptnamephonemobile 101 1 Shrivell 2753 07986 555 1234 102 1 Throd 2754 07122 555 1920 1

SQLZOO练习7-

 

teacher表:

id dept name phone mobile
101 1 Shrivell 2753 07986 555 1234
102 1 Throd 2754 07122 555 1920
103 1 Splint 2293  
104   Spiregrain 3287  
105 2 Cutflower 3212 07996 555 6574
106   Deadyawn 3345

 

dept表:

id name
1 Computing
2 Design
3 Engineering

1.List the teachers who have NULL for their department.

select name
from teacher
where dept is NULL;

2.Note the INNER JOIN misses the teachers with no department and the departments with no teacher.

SELECT teacher.name, dept.name
FROM teacher INNER JOIN dept
ON teacher.dept=dept.id;

内部联结INNER JOIN…ON 和之前的 JOIN…ON 是一样的。内部联结对NULL值不起作用。若对应的那一列有NULL值,则这些行无法对应到另一个表。只有有值的那些行能和另一表对应,才能被选择。

所谓NULL值,就是有些行不是两个表都有的,有些这个有,另一个没有。

3.Use a different JOIN so that all teachers are listed.

 
select t.name,d.name
from teacher t
left join dept d
on t.dept=d.id;

解题思路: left join,以teacher左表为主表,向左连接。和inner join的区别在于,inner join公共列出现null值时,将忽略null值。


4.
Use a different JOIN so that all departments are listed.

select t.name,d.name
from teacher t
right join dept d
on t.dept=d.id;

解题思路,right join,以dept右表为主表,向右连接。

 

Using Coalesce Fuction

5.Use COALESCE to print the mobile number. Use the number “07986 444 2266” if there is no number given. Show teacher name and mobile number or “07986 444 2266”

使用coalesce函数,显示教师姓名和电话号码,如果电话号码是空值,用‘07986 444 2266’填充

select name,coalesce(mobile,"07986 444 2266")
from teacher;

解题思路,colaesce函数是缺失值处理,针对的是null的情况,注意,coalesce函数对空格不起作用。

 

6.Use the COALESCE function and a LEFT JOIN to print the teacher name and department name. Use the string “None” where there is no department.

select t.name,coalesce(d.name,"None")
from teacher t
left join dept d
on t.dept=d.id;

7.Use COUNT to show the number of teachers and the number of mobile phones.

select count(name),count(mobile)
from teacher;


8.
Use COUNT and GROUP BY dept.name to show each department and the number of staff. Use a RIGHT JOIN to ensure that the Engineering department is listed.

select d.name,count(t.name)
from teacher t
right join dept d
on t.dept=d.id
group by 1;


9.
Use CASE to show the name of each teacher followed by “Sci” if the teacher is in dept 1 or 2 and “Art” otherwise.

使用 CASE 显示每位教师的姓名,如果教师在部门 1 或 2,则显示“Sci”,否则显示“Art”。

select name,(case when dept in(1,2) then "Sci" else "Art" end) from teacher;

解题思路:考察case when

10.Use CASE to show the name of each teacher followed by “Sci” if the teacher is in dept 1 or 2, show “Art” if the teacher”s dept is 3 and “None” otherwise.

使用 CASE 显示每位教师的姓名,如果教师在部门 1 或 2,则显示“Sci”,如果教师的部门是 3,则显示“Art”,否则显示“None”。

select name,(case when dept in(1,2) then "Sci"
when dept=3 then "Art"
else "None" end)
from teacher;

解题思路:考察case when 多个条件。

原文地址:https://www.cnblogs.com/ruoli-121288/archive/2022/05/27/16310507.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5188.html

(0)
上一篇 2023-05-19
下一篇 2023-05-19

相关推荐

  • 查看Oracle客户端版本及位数-Windows

    查看Oracle客户端版本及位数-WindowsGPS平台、网站建设、软件开发、系统运维,找森大网络科技!https://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index….

    2023-04-19
    157
  • PostgreSQL源码学习–执行器#7,8

    PostgreSQL源码学习–执行器#7,8本节介绍ExecProcNodeFirst函数和ExecProcNode函数。 ExecProcNodeFirst函数 //src/backend/executor/execProcnode.c /…

    2023-03-12
    159
  • 索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!「建议收藏」

    索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!「建议收藏」前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结。自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and故

    2022-12-26
    139
  • 在JavaScript中查找指定字符

    在JavaScript中查找指定字符在前端开发中,我们经常需要在字符串中查找指定字符,来进行字符串处理,比如数据的格式化和校验等。JavaScript提供了多种方法来查找指定字符,本文将会详细介绍这些方法。

    2024-04-15
    70
  • Python替换字符串中的字符或子串功能

    Python替换字符串中的字符或子串功能在日常的编程工作中,替换字符串中的字符或子串是一个十分常见的操作。Python作为一门高效而简单的编程语言,拥有多种方法来实现该功能。本篇文章将从多个方面对这一主题进行详细的阐述。

    2024-02-20
    97
  • 手动设置anaconda环境变量

    手动设置anaconda环境变量在进行Python编程时,为了避免不同版本、不同库之间的冲突,Anaconda成为了一个非常流行的解决方案。Anaconda是一个免费的、开源的Python和R语言发行版,内置了很多常用的科学计算、数据分析库,同时也可以方便地进行环境管理。但是,在安装完Anaconda之后,可能会出现环境变量配置不正确的问题,从而导致无法正常使用Anaconda。

    2024-07-30
    36
  • Python条件判断语句:if和elif的区别

    Python条件判断语句:if和elif的区别在Python中,条件判断语句if和elif是两个重要的关键字,它们可以用来控制程序的流程,根据不同的条件执行不同的代码块。

    2023-12-14
    123
  • MongoDB知识点提要「建议收藏」

    MongoDB知识点提要「建议收藏」MongoDB概述 MongoDB是一款NoSQL类型的文档型数据库。 NoSQL NoSQL是一种非关系型DMS,不需要固定的架构,可以避免joins链接,并且易于扩展。NoSQL数据库用于具有庞大

    2023-04-17
    143

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注