
SQL
SQL基础知识总结
moonbaby1
记录学习
展开
-
SQL(19)--删除emp_no重复记录只保留最小的id对应记录
删除 delete from ,不在 not in题目描述删除emp_no重复的记录,只保留最小的id对应的记录。CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL);insert into ti原创 2020-07-07 10:35:38 · 370 阅读 · 0 评论 -
(SQL)--查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
题型一题目描述查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩写法一:先从成绩表分组过滤平均成绩大于60的学生id和成绩。再和学生表连接,获取学生姓名select student.s_id,student.s_name,a.avg from studentinner join ( select s_id,avg(s_score) from score group by s_id having avg(s_score)>=60) aon st原创 2020-07-07 10:21:42 · 46052 阅读 · 3 评论 -
SQL(18)--使用子查询找出属于Action分类所有电影对应title,description
子查询题目描述输出描述select f.title,f.description from film f where film_id in (select fc.film_id from film_category fc where category_id in (select c.category_id from category c where name='Action') );...原创 2020-07-06 15:10:05 · 390 阅读 · 0 评论 -
SQL(17)--使用join查询方式找出没有分类的电影id以及名称
为空:is null题目描述输出描述select f.film_id,titlefrom film as f left join film_category as fcon f.film_id=fc.film_idwhere category_id is NULL原创 2020-07-06 14:56:08 · 406 阅读 · 0 评论 -
SQL(16)--获取员工当前薪水比其manager薪水还高的相关信息
题目描述获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',结果第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给该员工对应的manager当前的薪水manager_salaryCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_原创 2020-07-06 11:11:40 · 555 阅读 · 0 评论 -
SQL(15)--所有员工薪水按照salary进行按照1-N的排名,相同salary并列
窗口函数 dense_rank()题目描述对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`f原创 2020-07-06 10:05:03 · 828 阅读 · 0 评论 -
SQL(14)--统计各个部门的工资记录数
count(),group by ,三表直接连接题目描述统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sumCREATE TABLE `departments` (`dept_no` char(4) NOT NULL,`dept_name` varchar(40) NOT NULL,PRIMARY KEY (`dept_no`));CREATE TABLE `dept_emp` (`emp_no` int(原创 2020-07-03 12:15:01 · 1247 阅读 · 0 评论 -
SQL(13)--查找员工入职以来的薪水salary涨幅
题目描述查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));输出描述分析1.最大原创 2020-07-03 11:31:57 · 1347 阅读 · 0 评论 -
SQL(12)--查找所有员工last_name和first_name以及对应的dept_name(三表)
题目描述查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工CREATE TABLE `departments` (`dept_no` char(4) NOT NULL,`dept_name` varchar(40) NOT NULL,PRIMARY KEY (`dept_no`));CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT原创 2020-07-03 10:50:06 · 673 阅读 · 0 评论 -
SQL实战(11)--获取当前薪水第2多的员工
题目描述获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salaryCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));select emp_no,salary原创 2020-07-02 23:22:38 · 414 阅读 · 0 评论 -
SQL(10)--统计当前title员工当前薪水平均工资(分组)、获取所有部门当前员工当前薪水最高(分组)
考点:avg() group by题目描述统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` dat原创 2020-07-02 23:18:43 · 1248 阅读 · 0 评论 -
SQL实战(9)--从titles表获取按照title进行分组
考点:group by having题目描述从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。CREATE TABLE IF NOT EXISTS "titles" (`emp_no` int(11) NOT NULL,`title` varchar(50) NOT NULL,`from_date` date NOT NULL,`to_date` date DEFAULT NULL);select title ,count(title)原创 2020-07-02 22:47:09 · 425 阅读 · 0 评论 -
SQL实战(8)--获取当前所有员工当前Manager
注意!=题目描述获取所有员工当前的(dept_manager.to_date='9999-01-01')manager,如果员工是manager的话不显示(也就是如果当前的manager是自己的话结果不显示)。输出结果第一列给出当前员工的emp_no,第二列给出其manager对应的emp_no。CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL, -- '所有的员工编号'`dept_no` char(4) NOT NULL, --'部门编号.原创 2020-07-02 22:32:02 · 227 阅读 · 0 评论 -
SQL实战(7)--获取所有非manager员工的emp_no、获取所有非manager员工当前的薪水情况
考点:not in题目描述获取所有非manager的员工emp_noCREATE TABLE `dept_manager` (`dept_no` char(4) NOT NULL,`emp_no` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `employees` (`emp_no` int(11) N原创 2020-07-02 22:22:24 · 332 阅读 · 0 评论 -
SQL实战(6)--查找薪水变动超15次的员工
考点:聚合函数count()题目描述查找薪水变动超过15次的员工号emp_no以及其对应的变动次数tCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));输出描述1.一条记录就算一次涨幅select emp_原创 2020-07-02 20:12:44 · 358 阅读 · 0 评论 -
SQL实战(5)--查找所有员工入职时的薪水
题目描述查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况)CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` varchar(14) NOT NULL,`last_name` varchar(16) NOT NULL,`gender` char(1) NOT NULL,`hi原创 2020-07-02 19:39:07 · 415 阅读 · 0 评论 -
SQL实战(4)--查找已分配部门员工的last_name和first_name以及dept_no
知识点:多表查询题目描述查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE T原创 2020-07-02 17:06:13 · 224 阅读 · 0 评论 -
SQL实战(3)查找当前薪水详情及部门编号
知识点:联结、别名题目描述查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no(注:请以salaries表为主表进行查询,输出结果以salaries.emp_no升序排序,并且请注意输出结果,dept_no列是最后一列)方法1:内部联结select s.*,d.dept_nofrom salaries as s inner join dept原创 2020-06-18 12:19:29 · 644 阅读 · 0 评论 -
SQL实战(2)查找入职员工时间排倒三的员工信息
目录知识点:order by、limit、offset题目描述:查找入职员工时间排名倒数第三的员工所有信息情况1:每天一个人情况2:当天多个人补充 limit 与 offset 区别知识点:order by、limit、offset题目描述:查找入职员工时间排名倒数第三的员工所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`first_name` va原创 2020-06-18 12:11:30 · 505 阅读 · 0 评论 -
SQL实战(1)查找最晚入职员工所有信息
目录知识点:order by\limit题目描述:查找最晚入职员工的所有信息情况1:所有的数据里员工入职的日期都不是同一天情况2:入职最晚当天有多个人;即当天多个数据知识点:order by\limit题目描述:查找最晚入职员工的所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL, -- '员工编号'`birth_date` date NOT NULL,`first_name` varchar(14) NOT .原创 2020-06-18 12:03:08 · 1542 阅读 · 0 评论