![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL实战
allin_it
这个作者很懒,什么都没留下…
展开
-
对于employees表中,给出奇数行的first_name
sql实战 对于employees表中,给出奇数行的first_name问题描述Sql语句问题描述对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_nameCREATE 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-06-21 21:18:53 · 580 阅读 · 0 评论 -
统计salary的累计和running_total
sql实战 统计salary的累计和running_total问题描述Sql语句问题描述按照salary的累计和running_total,其中running_total为前N个当前( to_date = ‘9999-01-01’)员工的salary累计和,其他以此类推。 具体结果如下Demo展示。。CREATE TABLE salaries ( emp_no int(11) NOT NULL,salary int(11) NOT NULL,from_date date NOT NULL,to_原创 2020-06-21 19:32:06 · 211 阅读 · 0 评论 -
获取有奖金的员工相关信息。
sql实战 获取有奖金的员工相关信息。问题描述Sql语句问题描述获取有奖金的员工相关信息。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 NOT NULL,PRIMARY KEY (emp_原创 2020-06-21 19:22:15 · 618 阅读 · 0 评论 -
获取employees中的行数据,且这些行也存在于emp_v中
sql实战 获取employees中的行数据,且这些行也存在于emp_v中问题描述Sql语句问题描述存在如下的视图:create view emp_v as select * from employees where emp_no >10005;CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name varchar(14) NOT NULL,last_name varchar原创 2020-06-21 19:05:49 · 619 阅读 · 0 评论 -
使用含有关键字exists查找未分配具体部门的员工的所有信息。
sql实战 使用含有关键字exists查找未分配具体部门的员工的所有信息。问题描述Sql语句问题描述使用含有关键字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_d原创 2020-06-21 19:00:26 · 676 阅读 · 0 评论 -
获取所有员工的emp_no
sql实战 获取所有员工的emp_no问题描述Sql语句问题描述获取所有员工的emp_no、部门编号dept_no以及对应的bonus类型btype和received,没有分配具体的员工不显示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));CRE原创 2020-06-21 18:52:08 · 727 阅读 · 0 评论 -
分页查询employees表,每5行一页,返回第2页的数据
sql实战 分页查询employees表,每5行一页,返回第2页的数据问题描述Sql语句问题描述分页查询employees表,每5行一页,返回第2页的数据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原创 2020-06-21 18:39:01 · 935 阅读 · 0 评论 -
查找排除当前最大、最小salary之后的员工的平均工资avg_salary
sql实战 查找排除当前最大、最小salary之后的员工的平均工资avg_salary问题描述Sql语句问题描述查找排除最大、最小salary之后的当前(to_date = ‘9999-01-01’ )员工的平均工资avg_salary。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原创 2020-06-21 18:35:18 · 1346 阅读 · 0 评论 -
按照dept_no进行汇总
sql实战 按照dept_no进行汇总问题描述Sql语句问题描述按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果employeesCREATE 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));来源原创 2020-06-21 18:20:52 · 558 阅读 · 0 评论 -
获取Employees中的firstname
sql实战 获取Employees中的first_name问题描述Sql语句问题描述获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列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) NO原创 2020-06-21 18:09:21 · 632 阅读 · 0 评论 -
查找字符串中逗号出现的次数cnt
sql实战 查找字符串'10,A,B' 中逗号','出现的次数cnt问题描述Sql语句问题描述查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。来源:牛客网链接:https://www.nowcoder.com/practice/e3870bd5d6744109a902db43c105bd50?tpId=82&&tqId=29819&rp=1&ru=/ta/sql&qru=/ta/sql/question-rankingSql语句length函数计原创 2020-06-21 18:07:31 · 584 阅读 · 0 评论 -
将employees表中的所有员工的lastname和firstname通过单引号连接起来。
@[TOC](sql实战 将employees表中的所有员工的last_name和first_name通过(’)连接起来。)问题描述将employees表中的所有员工的last_name和first_name通过(’)连接起来。(不支持concat,请用||实现)CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name varchar(14) NOT NULL,last_name va原创 2020-06-21 17:53:02 · 676 阅读 · 0 评论 -
针对库中的所有表生成select count(*)对应的SQL语句
@[TOC](sql实战 针对库中的所有表生成select count(*)对应的SQL语句)问题描述针对库中的所有表生成select count(*)对应的SQL语句,如数据库里有以下表,(注:在 SQLite 中用 “||” 符号连接字符串,无法使用concat函数)employeesdepartmentsdept_empdept_managesalariestitlesemp_bonus那么就会输出以下的样子:cntsselect count(*) from原创 2020-06-21 17:47:26 · 587 阅读 · 0 评论 -
将所有获取奖金的员工当前的薪水增加10%
sql实战 将所有获取奖金的员工当前的薪水增加10%问题描述Sql语句问题描述请你写出更新语句,将所有获取奖金的员工当前的(salaries.to_date=‘9999-01-01’)薪水增加10%。(emp_bonus里面的emp_no都是当前获奖的所有员工)create table emp_bonus(emp_no int not null,btype smallint not null);CREATE TABLE salaries (emp_no int(11) NOT NULL,sa原创 2020-06-21 17:26:19 · 1382 阅读 · 0 评论 -
如何获取emp_v和employees有相同的数据no
sql实战 如何获取emp_v和employees有相同的数据no问题描述Sql语句问题描述存在如下的视图:create view emp_v as select * from employees where emp_no >10005;如何获取emp_v和employees有相同的数据?CREATE TABLE employees (emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name varchar(14) NOT原创 2020-06-21 17:19:01 · 342 阅读 · 0 评论 -
在audit表上创建外键约束,其emp_no对应employees_test表的主键id
sql实战 在audit表上创建外键约束,其emp_no对应employees_test表的主键id问题描述Sql语句问题描述在audit表上创建外键约束,其emp_no对应employees_test表的主键id。(audit已经创建,需要先drop)CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL原创 2020-06-21 16:58:33 · 448 阅读 · 0 评论 -
将titles_test表名修改为titles_2017
sql实战 将titles_test表名修改为titles_2017问题描述Sql语句问题描述将titles_test表名修改为titles_2017。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原创 2020-06-21 16:44:46 · 434 阅读 · 0 评论 -
将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
sql实战 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005问题描述Sql语句问题描述将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现。CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NUL原创 2020-06-21 16:41:39 · 326 阅读 · 0 评论 -
将所有to_date为9999-01-01的全部更新为NULL
sql实战 将所有to_date为9999-01-01的全部更新为NULL问题描述Sql语句问题描述将所有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,from_date date NOT原创 2020-06-21 16:28:20 · 559 阅读 · 0 评论 -
删除emp_no重复的记录,只保留最小的id对应的记录。
sql实战 删除emp_no重复的记录,只保留最小的id对应的记录。问题描述Sql语句问题描述删除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)原创 2020-06-21 16:22:48 · 866 阅读 · 1 评论 -
构造一个触发器audit_log
sql实战 构造一个触发器audit_log问题描述Sql语句问题描述构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。CREATE TABLE employees_test(ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),SALARY REAL);CREATE TABLE audit(EMP_no原创 2020-06-21 16:10:34 · 322 阅读 · 0 评论 -
在last_update后面新增加一列名字为create_date
sql实战 在last_update后面新增加一列名字为create_date问题描述Sql语句问题描述存在actor表,包含如下列信息:CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update timestamp NOT NULL DEFAULT (d原创 2020-06-21 15:50:03 · 657 阅读 · 0 评论 -
针对上面的salaries表emp_no字段创建索引idx_emp_no
sql实战 针对上面的salaries表emp_no字段创建索引idx_emp_no问题描述Sql语句问题描述针对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 (emp_no原创 2020-06-21 15:41:25 · 512 阅读 · 0 评论 -
针对actor表创建视图actor_name_view
sql实战 针对actor表创建视图actor_name_view问题描述Sql语句问题描述针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varch原创 2020-06-21 15:34:21 · 348 阅读 · 0 评论 -
对first_name创建唯一索引uniq_idx_firstname
sql实战 对first_name创建唯一索引uniq_idx_firstname问题描述Sql语句问题描述针对如下表actor结构创建索引:(注:在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作)CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar原创 2020-06-21 15:25:57 · 420 阅读 · 0 评论 -
创建一个actor_name表
sql实战 创建一个actor_name表问题描述Sql语句问题描述对于如下表actor,其对应的数据为:actor_idfirst_namelast_namelast_update1PENELOPEGUINESS2006-02-15 12:34:332NICKWAHLBERG2006-02-15 12:34:33请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.actor_name表结构原创 2020-06-21 15:19:42 · 312 阅读 · 0 评论 -
批量插入数据,不使用replace操作
sql实战 批量插入数据,不使用replace操作问题描述Sql语句问题描述对于表actor批量插入如下数据,如果数据已经存在,请忽略(不支持使用replace操作)CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update timestamp NOT N原创 2020-06-21 15:09:52 · 331 阅读 · 0 评论 -
批量插入数据
sql实战 批量插入数据问题描述Sql语句问题描述对于表actor批量插入如下数据(不能有2条insert语句哦!)CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update timestamp NOT NULL DEFAULT (datetime(‘no原创 2020-06-21 11:03:16 · 216 阅读 · 0 评论 -
创建一个actor表,包含如下列信息
sql实战 创建一个actor表,包含如下列信息问题描述Sql语句问题描述创建一个actor表,包含如下列信息(注:sqlite获取系统默认时间是datetime(‘now’,‘localtime’))列表类型是否为NULL含义actor_idsmallint(5)not null主键idfirst_namevarchar(45)not null名字last_namevarchar(45)not null姓氏last_updatetimes原创 2020-06-21 10:56:33 · 514 阅读 · 0 评论 -
将employees表的所有员工的last_name和first_name拼接起来作为Name
sql实战 将employees表的所有员工的last_name和first_name拼接起来作为Name问题描述Sql语句问题描述将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分(注:该数据库系统是sqllite,字符串拼接为 || 符号,不支持concat函数)CREATE TABLE employees ( emp_no int(11) NOT NULL,birth_date date NOT NULL,first_name原创 2020-06-19 19:55:49 · 688 阅读 · 0 评论 -
获取select * from employees对应的执行计划
sql实战 获取select * from employees对应的执行计划问题描述Sql语句问题描述获取select * from employees对应的执行计划来源:牛客网链接:https://www.nowcoder.com/practice/18f30bb19fd34abebcf7e6397c7fb5d8?tpId=82&&tqId=29799&rp=1&ru=/ta/sql&qru=/ta/sql/question-rankingSql语句EX原创 2020-06-19 13:56:22 · 284 阅读 · 0 评论 -
使用子查询的方式找出属于Action分类的所有电影对应的title,description
sql实战 使用子查询的方式找出属于Action分类的所有电影对应的title,description问题描述Sql语句问题描述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 (c原创 2020-06-19 11:48:22 · 324 阅读 · 0 评论 -
使用join查询方式找出没有分类的电影id以及名称
sql实战 使用join查询方式找出没有分类的电影id以及名称问题描述Sql语句问题描述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(原创 2020-06-19 11:32:56 · 439 阅读 · 0 评论 -
查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量大于等于5部
sql实战 查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部问题描述Sql语句问题描述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 catego原创 2020-06-19 11:28:09 · 701 阅读 · 0 评论 -
给出每个员工每年薪水涨幅超过5000的员工编号emp_no
sql实战 给出每个员工每年薪水涨幅超过5000的员工编号emp_no问题描述Sql语句问题描述给出每个员工每年薪水涨幅超过5000的员工编号emp_no、薪水变更开始日期from_date以及薪水涨幅值salary_growth,并按照salary_growth逆序排列。提示:在sqlite中获取datetime时间对应的年份函数为strftime(’%Y’, to_date)(数据保证每个员工的每条薪水记录to_data-from_data=1年,而且同一员工的下一条薪水记录from_data=原创 2020-06-19 10:59:07 · 338 阅读 · 0 评论 -
汇总各个部门当前员工的title类型的分配数目
sql实战 汇总各个部门当前员工的title类型的分配数目问题描述Sql语句问题描述汇总各个部门当前员工的title类型的分配数目,即结果给出部门编号dept_no、dept_name、其部门下所有的当前(dept_emp.to_date = ‘9999-01-01’)员工的当前(titles.to_date = ‘9999-01-01’)title以及该类型title对应的数目count(注:因为员工可能有离职,所有dept_emp里面to_date不为’9999-01-01’就已经离职了,不计入统原创 2020-06-19 10:45:06 · 706 阅读 · 0 评论 -
获取员工其当前的薪水比其manager当前薪水还高的相关信息
sql实战 获取员工其当前的薪水比其manager当前薪水还高的相关信息问题描述Sql语句问题描述获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date=‘9999-01-01’,结果第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给该员工对应的manager当前的薪水manager_salaryCREATE TABLE dept_emp (emp_no int(11) NOT原创 2020-06-19 10:21:10 · 626 阅读 · 0 评论 -
获取所有非manager员工当前的薪水情况
sql实战 获取所有非manager员工当前的薪水情况问题描述Sql语句问题描述获取所有非manager员工当前的薪水情况,给出dept_no、emp_no以及salary ,当前表示to_date=‘9999-01-01’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_n原创 2020-06-18 11:56:45 · 374 阅读 · 0 评论 -
对所有员工的薪水按照salary进行按照1-N的排名
sql实战 对所有员工的薪水按照salary进行按照1-N的排名问题描述Sql语句问题描述对所有员工的当前(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原创 2020-06-09 11:11:11 · 361 阅读 · 0 评论 -
统计各个部门的工资记录数
sql实战 统计各个部门的工资记录数问题描述Sql语句问题描述统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及次数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(11) NOT NULL,dept_no char(4) N原创 2020-05-31 11:39:17 · 838 阅读 · 0 评论