SQL刷题笔记day5

news2024/11/26 5:27:09

SQL218题目

我的错误代码:

select de.dept_no,de.emp_no,s.salary
from employees e
join dept_emp de on de.emp_no = e.emp_no
join salaries s on s.emp_no = e.emp_no
where de.dept_no not in dept_manager.dept_no #not in 好像不能直接这样用 这里报错

正确代码

SELECT de.dept_no, de.emp_no, s.salary
FROM dept_emp AS de, salaries AS s
WHERE de.emp_no = s.emp_no 
AND de.to_date = '9999-01-01' 
AND s.to_date = '9999-01-01'
AND s.emp_no NOT IN 
(SELECT emp_no FROM dept_manager dm WHERE dm.to_date = '9999-01-01');

我的代码改正 

select de.dept_no,de.emp_no,s.salary
from employees e
join dept_emp de on de.emp_no = e.emp_no  
join salaries s on s.emp_no = e.emp_no 
where de.emp_no not in (SELECT emp_no FROM dept_manager dm WHERE dm.to_date = '9999-01-01') 

复盘:难点是找非manager员工,涉及not in的用法, not in后面是个范围,而不是dept_manager.dept_no这个某个值。如:

 where subject not in ('Chemistry','Medicine')

如果后面括号只有一个,就要用等于了,如:

where continent = 'South America' 

SQL219题目

我的错误代码

select de.emp_no,m.emp_no as manager_no,
       s1.salary as emp_salary,s2.salary as manager_salary
from dept_emp de 
join dept_manager m on de.dept_no  = m.dept_no 
join salaries s1 on s1.emp_no = de.emp_no and to_date = '9999-01-01'
join salaries s2 on s1.emp_no = m.emp_no and to_date = '9999-01-01'
where s1.salary>s2.salary

正确代码

SELECT es.emp_no,ms.emp_no manager_no,
es.salary emp_salary,ms.salary manager_salary FROM
# es表:员工薪资表 
(SELECT de.dept_no,de.emp_no,s.salary FROM dept_emp de INNER JOIN salaries s
 ON de.emp_no=s.emp_no WHERE s.to_date='9999-01-01') es,

(SELECT dm.dept_no,dm.emp_no,s.salary FROM dept_manager dm INNER JOIN salaries s
 ON dm.emp_no=s.emp_no WHERE s.to_date='9999-01-01') ms
 
WHERE es.dept_no=ms.dept_no 
AND es.salary>ms.salary

理解思路后改正我的代码:

select es.emp_no,ms.emp_no as manager_no,
       es.salary as emp_salary,ms.salary as manager_salary
from 
(select de.emp_no,de.dept_no ,s.salary from dept_emp de join salaries s on s.emp_no = de.emp_no and de.to_date = '9999-01-01')es,
(select m.dept_no,m.emp_no,s.salary from dept_manager m join salaries s on s.emp_no = m.emp_no and m.to_date = '9999-01-01')ms
where es.salary > ms.salary and es.dept_no = ms.dept_no 

复盘:知道要引用两个不同的薪资,分别建立员工和经理的薪资表,不知道咋写,淦!
/*这个正确代码大结构就是:
select ,,,
from ()es,()ms #陌生点就在这里不知道怎么写
where.. 
*/

SQL220题目

我的错误代码

select d.dept_no,d.dept_name,t.title,count(t.title) as count
from departments d
join dept_emp de on d.dept_no = de.dept_no and de.to_date='9999-01-01'
join titles t on t.emp_no = de.emp_no and t.to_date='9999-01-01'
group by d.dept_no # 不知道按照什么进行分组
order by d.dept_no asc,t.title desc

正确代码

select d.dept_no,d.dept_name,t.title,count(t.title) as count
from departments d
join dept_emp de on d.dept_no = de.dept_no and de.to_date='9999-01-01'
join titles t on t.emp_no = de.emp_no and t.to_date='9999-01-01'
group by d.dept_no,t.title # 多字段分组
order by d.dept_no ,t.title #两个都是升序啦(默认也是升序)

复盘:这道题根据 多个字段 进行分组,将三张表内连接,通过 dept_no 和 title 为依据进行分组,然后计算count。因为可能会有下面这种情况:所以还要按照title也进行分组

 SQL223题目

我的代码

select film_id,title 
from film
where ('film_id','title') not in 
(select f.film_id,f.title from film f join film_category fc on f.film_id=fc.film_id )

正确代码1

select film_id,title 
from film
where film_id not in #film_id不应该写成字符串的形式,这里表示的相当于数组名
(select fc.film_id from  film_category fc join category c
 on c.category_id = fc.category_id) #后面这两个表一个是关于类别的

 正确代码2

SELECT film.film_id,film.title
FROM film
LEFT JOIN film_category
on film.film_id = film_category.film_id
where film_category.category_id is null;

复盘:电影如果有分类,那么应该在 类别表category+电影分类表film_category 中有非空信息。

SQL224题目

我的代码

select title,description
from film ,
(select c.name from category c join film_category fc on c.category_id=fc.category_id) mc
where  mc.name='Action'

我这种思路的正确代码

select title ,description 
from film_category ,film
where film_category.category_id = 
( select category_id  from category where name = 'Action') 
and film_category.film_id= film.film_id

不用子查询的直白方法:

select title, description
from film left 
join film_category as fc on film.film_id=fc.film_id
join category as c on c.category_id=fc.category_id
where c.name="Action";

复盘:其实这个题直接3个表连接起来,然后输出就行,但是题目要用子查询。

SQL226题目——拼接字符串(SQLlite平台)

我的代码

select ('first_name'| |'last_name') from employees

题目要求的方法:

select last_name||" "||first_name as name from employees

使用concat函数:

SELECT CONCAT(last_name,' ',first_name) as name from   employees 

 复盘:'first_name'和'last_name'不应该加引号!不是字符串,是相当于数组名的变量!

SQL227题目——创建表

我的代码

CREATE TABLE actor(
actor_id smallint(5)  NOT NULL DEFAULT '0',
first_name	varchar(45) NOT NULL,
last_name	varchar(45) NOT NULL,
last_update	date not null, 
PRIMARY KEY (actor_id))

完美代码:

create table if not exists actor (
    actor_id smallint(5) not null primary key COMMENT'主键id',
    first_name varchar(45) not null COMMENT'名字',
    last_name varchar(45) not null COMMENT '姓氏',
    last_update date not null COMMENT '日期' 
)

复盘:注意创建数据表时,表名和字段名不需要用引号' '括起来。日期是date,其他类型都不变,照着写。 

SQL228——插入数据

我的代码

insert into actor values
('1','PENELOPE','GUINESS','2006-02-15 12:34:33'),
('2','NICK','WAHLBERG','2006-02-15 12:34:33')

复盘:插入的是什么就是什么,不能多复制,哪怕是空格也不能多,因为类型可能不同和报错。

SQL229——插入数据部分已存在的情况

我的代码

insert  ignore into actor
value('3','ED','CHASE','2006-02-15 12:34:33')

复盘:

mysql中常用的三种插入数据的语句

1. insert into - 插入数据

2. replace into - 插入替换数据

3. insert ignore into - 如果已存在,忽略当前新数据

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1709089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ysoserial下载和使用

1.下载网址 GitHub - frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. 2.使用 因为要用java打开jar格式的,所以如果下的是源文件,还需要打包,我试了试&#xff0c…

路径规划算法--BFS

系列文章目录 文章目录 系列文章目录一、BFS二、BFS伪代码BFS与Dijkstra区别 一、BFS BFS(Breadth First Search)为广度优先搜索,是一种用于遍历或搜索树或图的搜索算法,适用于无权图的遍历。BFS从根节点开始,探索其相…

揭秘Tensor Core黑科技:如何让AI计算速度飞跃

揭秘 Tensor Core 底层:如何让AI计算速度飞跃 Tensor Core,加速深度学习计算的利器,专用于高效执行深度神经网络中的矩阵乘法和卷积运算,提升计算效率。 Tensor Core凭借混合精度计算与张量核心操作,大幅加速深度学习…

B站大数据分享视频创作300天100+原创内容4000+粉

以今年五一作为一个里程碑参考点,给明年一个可以比较的数据。 我正经发力创作是2023.06.17 (前面几个视频是试水),300天不到一年时间 创作了100原创数据相关视频,创作频率应该很高了,收获了下面几个数字,审视自身&…

K-means 聚类模型详解

K-means 聚类模型详解 K-means 是一种常用的无监督学习算法,用于将数据集分成 K 个簇。其目标是最小化各个簇内数据点到簇中心的距离平方和。K-means 广泛应用于图像压缩、市场细分、模式识别等领域。 算法步骤 初始化: 随机选择 K 个初始簇中心(质心…

富港银行 优惠链接 邀请码 兑换码 优惠码 分享

首次记得一定要点击链接注册,注册开户费50美金 限时!优惠开通国际银行账户! cbi帐户管理费:10美元/月,余额>500美元,1美元/月/,余额>2000美元,0美元/月。 一定要显示50的时候…

牛!华为《Linux 面试笔记大全》太赞了,完整版PDF 开放下载!

在QQ和微信社群中,我注意到许多人都在寻找一份全面的Linux学习资料。因此,我在这里为大家整理和分类了相关的信息,可以看作是对重点内容的梳理和归纳。 这份《Linux面试笔记》主要分为三大部分:基础篇-进阶篇-高级篇 本书笔记针…

基于SpringBoot的本科生考研率统计系统

基于SpringBoot的本科生考研率统计系统 一、开发技术二、功能模块三、代码结构四、数据库设计五、运行截图六、源码获取 一、开发技术 技术:SpringBoot、MyBatis-Plus、Redis、MySQL、Thymeleaf、Html、Vue、Element-ui。 框架:基于开源框架easy-admin开…

【前端学习笔记】HTML基础

HTML 一、HTML介绍1.HTML概念2.文档声明3.字符编码4. HTML标签5. HTML属性 二、标签1.meta标签2.语义标签3.布局标签4.列表5.超链接6.图片7.字符实体8.内联格式9.HTML 表格10.HTML 表单 三、HTML5新特性1. 本地存储2. Cookie3. 语义化标签4.多媒体元素5.表单增强6.Canvas7.SVG …

【云原生_K8S系列】认识 Kubernetes

在当今数字化转型的浪潮中,企业对于构建高效、灵活的软件架构有了更高的期望。而在这个迅速变化的环境中,容器化技术如雨后春笋般涌现,为解决传统部署和管理软件所带来的挑战提供了一种全新的解决方案。在众多容器编排工具中,Kube…

2024年4月—马克思主义基本原理概论真题及答案解析(上海自考)

目录 1.选择题 2.简答题 3.论述题 1.选择题 2.简答题

“盲人独立生活技能提升方案”:科技点亮希望之光

在追求平等与包容的社会进程中,盲人群体的独立生活能力提升成为了重要议题。随着科技的飞速发展,一款名为“蝙蝠避障”的辅助软件应运而生,以其独特的实时避障和拍照识别功能,为盲人在旅行乃至日常生活中开辟了新的可能。这不仅是…

社会工程学:美色你顶得住吗?

背景 近年来,网络钓鱼的手段是屡见不鲜,手段和方式也是层出不穷。钓鱼相关的技术作为一种比较高效的打点方式,越来越多的应用于红蓝对抗当中。本文主要分享一次实战攻防中几个有趣的钓鱼场景。 重点说明:本文分享内容为一次经过授…

2024年第六届中青杯数学建模竞赛浅析

获取比赛资料,请关注gzh“小何数模”! 本次中青杯数学建模的赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是仅次于数模国赛的独一档,可以用于国赛前的练手训练。考虑到大家解题实属不易,为了帮助大家…

景源畅信电商:做抖音运营怎么开始第一步?

在数字化时代的浪潮中,抖音作为一款短视频平台迅速崛起,成为许多人表达自我、分享生活的重要舞台。随着用户量的激增,如何做好抖音运营,尤其是迈出成功的第一步,成为了众多内容创作者和品牌主们关注的焦点。接下来&…

C++ 常量和变量

1 常量 具体把数据写出来 2,3&#xff0c;4&#xff1b;1.2 1.3;“Hello world!”,“C” cout<<2015 常量&#xff1a;不能改变的量。 字面常量&#xff08;字面量、直接常量&#xff09;:直接写出的数据。 符号常量&#xff1a;用符号表示数据&#xff0c;但它一旦确定…

Nginx企业级负载均衡:技术详解系列(13)—— 四层访问控制

你好&#xff0c;我是赵兴晨&#xff0c;97年文科程序员。 今天&#xff0c;咱们聊聊Nginx的一个核心功能——四层访问控制。 废话不多说&#xff0c;让我们直接进入正题&#xff0c;一探究竟&#xff01; 四层访问控制 Nginx的四层访问控制指的是在传输层&#xff08;TCP层…

生成式AI的GPU网络技术架构

生成式AI的GPU网络 引言&#xff1a;超大规模企业竞相部署拥有64K GPU的大型集群&#xff0c;以支撑各种生成式AI训练需求。尽管庞大Transformer模型与数据集需数千GPU&#xff0c;但实现GPU间任意非阻塞连接或显冗余。如何高效利用资源&#xff0c;成为业界关注焦点。 张量并…

混合A*算法详解(二)路径平滑

描述 上一篇文章混合A*算法详解&#xff08;一&#xff09;路径搜索 路径损失函数使用Voroni势能图 根据之前的文章分析&#xff0c;决定A*路径长度的有两点&#xff1a;路径长度和距离障碍物远近。Voroni图用于权衡这两者。之前我在记录二维点云的阿尔法形状算法时简单介绍过…

「代码厨房大揭秘:Python性能优化的烹饪秘籍!」

哈喽&#xff0c;我是阿佑&#xff0c;上篇咱们讲了 Socket 编程 —— 探索Python Socket编程&#xff0c;赋予你的网络应用隐形斗篷般的超能力&#xff01;从基础到实战&#xff0c;构建安全的聊天室和HTTP服务器&#xff0c;成为网络世界的守护者。加入我们&#xff0c;一起揭…