数据库SQL实战
文章平均质量分 78
三两行
这个作者很懒,什么都没留下…
展开
-
数据库SQL实战-考试分数(mysql)
1. 考试分数(一)1.1 题目描述牛客每次考试完,都会有一个成绩表(grade),如下:请你写一个sql语句查询各个岗位分数的平均数,并且按照分数降序排序,结果保留小数点后面3位(3位之后四舍五入):1.2 语句实现-- select job, round(avg(score),3) avgselect job, round(sum(score)/count(id),3) avgfrom gradegroup by joborder by avg desc;2. 考试分数(二原创 2021-04-02 11:30:17 · 1149 阅读 · 0 评论 -
数据库SQL实战-实习广场投递简历分析(mysql)
1. 实习广场投递简历分析(一)1.1 题目描述在牛客实习广场有很多公司开放职位给同学们投递,同学投递完就会把简历信息存到数据库里。现在有简历信息表(resume_info),部分信息简况如下:第1行表示,在2025年1月2号,C++岗位收到了53封简历最后1行表示,在2026年1月4号,Java岗位收到了230封简历请你写出SQL语句查询在2025年内投递简历的岗位和数量,并且按数量降序排序,以上例子查询结果如下:1.2 语句实现select job, sum(num) as cn原创 2021-04-01 17:20:30 · 839 阅读 · 0 评论 -
数据库SQL实战-异常的邮件概率(mysql)
1. 出现三次以上相同积分的情况1.1 题目描述在牛客刷题的小伙伴们都有着牛客积分,积分(grade)表简化可以如下:id为用户主键id,number代表积分情况,让你写一个sql查询,积分表里面出现三次以及三次以上的积分,查询结果如下:1.2 语句实现select number from gradegroup by numberhaving count(id) >= 3;2. 刷题通过的题目排名2.1 题目描述在牛客刷题有一个通过题目个数的(passing_numb原创 2021-03-17 10:31:55 · 249 阅读 · 0 评论 -
数据库SQL实战-获取有奖金的员工相关信息(mysql)
1. 使用含有关键字exists查找未分配具体部门的员工的所有信息1.1 题目描述使用含有关键字exists查找未分配具体部门的员工的所有信息。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,hire_date date原创 2021-03-16 09:32:33 · 3102 阅读 · 0 评论 -
数据库SQL实战-查找排除当前最大、最小salary之后的员工的平均工资avg_salary(mysql)
1. 查找字符串’10,A,B’1.1 题目描述查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。1.2 语句实现select length("10,A,B") - length(replace("10,A,B",",",""))as cnt;2. 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列2.1 题目描述获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列原创 2021-03-15 11:18:19 · 859 阅读 · 0 评论 -
数据库SQL实战-在audit表上创建外键约束,其emp_no对应employees_test表的主键id(mysql)
1. 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-011.1 题目描述将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01。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,f原创 2021-03-12 15:10:18 · 322 阅读 · 0 评论 -
数据库SQL实战-构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中(mysql)
1. 针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为100051.1 题目描述针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。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 (e原创 2021-03-11 08:57:51 · 561 阅读 · 0 评论 -
数据库SQL实战-创建一个actor表,包含如下列信息(mysql)
1. 创建一个actor表,包含如下列信息1.1 题目描述创建一个actor表,包含如下列信息1.2 语句实现create table actor (actor_id smallint(5) not null primary key,first_name varchar(45) not null,last_name varchar(45) not null,last_update date not null);2. 批量插入数据2.1 题目描述题目已经先执行了如下语句:dr原创 2021-03-09 09:22:26 · 2196 阅读 · 1 评论 -
数据库SQL实战-查找描述信息中包括robot的电影对应的分类名称以及电影数目(mysql)
1. 查找描述信息中包括robot的电影对应的分类名称以及电影数目1.1 题目描述film表CREATE TABLE IF NOT EXISTS film (film_id smallint(5) NOT NULL DEFAULT ‘0’,title varchar(255) NOT NULL,description text,PRIMARY KEY (film_id));category表CREATE TABLE category (category_id tinyint(原创 2021-03-05 09:08:12 · 1547 阅读 · 2 评论 -
数据库SQL实战-汇总各个部门当前员工的title类型的分配数目(mysql)
1. 对所有员工的当前薪水按照salary进行按照1-N的排名1.1 题目描述有一个薪水表salaries简况如下:对所有员工的薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列:1.2 语句实现--dense_rank() over():出现重复时,延续上面接着排序,如1、2、2、3select emp_no, salary, dense_rank() over(order by salary desc) as t_rankfrom salar原创 2021-03-03 09:07:59 · 451 阅读 · 0 评论 -
数据库SQL实战-查找所有员工自入职以来的薪水涨幅情况(mysql)
1. 查找所有员工自入职以来的薪水涨幅情况1.1 题目描述有一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为(注:可能有employees表和salaries表里存在记录的员工,有对应的员工编号和涨薪记录,但是已经离职了,离职的员工salaries表的最新的to_date!=‘9999-01-01’,这样的数据不显示在查找结原创 2021-03-02 09:37:32 · 2096 阅读 · 0 评论 -
数据库SQL实战-查找所有员工的last_name和first_name以及对应的dept_name(mysql)
1. 查找所有员工的last_name和first_name以及对应的dept_name1.1 题目描述查找所有员工的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(原创 2021-01-15 09:22:30 · 1925 阅读 · 0 评论 -
数据库SQL实战-获取所有部门中当前员工薪水最高的相关信息(mysql)
1. 获取所有员工当前的manager1.1 题目描述获取所有员工当前的(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 NUL原创 2021-01-08 09:55:09 · 2407 阅读 · 0 评论 -
数据库SQL实战-查找各个部门当前领导当前薪水详情以及其对应部门编号(mysql)
1. 查找最晚入职员工的所有信息1.1 题目描述查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment)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,gend原创 2020-12-30 09:17:29 · 1589 阅读 · 0 评论