2021刷题-SQL
renxingzhadan
这个作者很懒,什么都没留下…
展开
-
SQL42 删除emp_no重复的记录,只保留最小的id对应的记录——delete
描述删除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 titles_test values ('1', '10001原创 2021-06-30 21:28:21 · 158 阅读 · 0 评论 -
SQL41 构造一个触发器audit_log——触发器
描述构造一个触发器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 INT NOT NULL,NAME TEXT NOT NULL转载 2021-06-30 18:06:55 · 385 阅读 · 0 评论 -
SQL40 在last_update后面新增加一列名字为create_date
描述存在actor表,包含如下列信息:CREATETABLEactor(actor_idsmallint(5)NOTNULLPRIMARYKEY,first_namevarchar(45)NOTNULL,last_namevarchar(45)NOTNULL,last_updatedatetimeNOTNULL);现在在last_update后面新增加一列名字为create_date, 类型为datetime, N...原创 2021-06-30 16:53:03 · 130 阅读 · 0 评论 -
SQL39 针对上面的salaries表emp_no字段创建索引idx_emp_no——force index
描述针对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`,`from_date`));create index idx_emp_no o原创 2021-06-30 16:36:38 · 104 阅读 · 0 评论 -
SQL38 针对actor表创建视图actor_name_view
描述针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:CREATETABLEactor(actor_idsmallint(5)NOTNULLPRIMARYKEY,first_namevarchar(45)NOTNULL,last_namevarchar(45)NO...原创 2021-06-30 16:09:19 · 122 阅读 · 0 评论 -
SQL37 对first_name创建唯一索引uniq_idx_firstname
描述针对如下表actor结构创建索引:(注:在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作,mysql支持ALTER TABLE创建索引)CREATETABLEactor(actor_idsmallint(5)NOTNULLPRIMARYKEY,first_namevarchar(45)NOTNULL,last_namevarchar(45)NOTNULL,last_u...原创 2021-06-29 17:06:09 · 211 阅读 · 0 评论 -
SQL36 创建一个actor_name表——建表方法
描述对于如下表actor,其对应的数据为:actor_id first_name last_name last_update 1 PENELOPE GUINESS 2006-02-15 12:34:33 2 NICK WAHLBERG 2006-02-15 12:34:33 请你创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表.actor_name表结构如下:列表原创 2021-06-29 15:32:17 · 155 阅读 · 0 评论 -
SQL35 批量插入数据,不使用replace操作——ignore
描述题目已经先执行了如下语句:droptableifexistsactor;CREATETABLEactor(actor_idsmallint(5)NOTNULLPRIMARYKEY,first_namevarchar(45)NOTNULL,last_namevarchar(45)NOTNULL,last_updateDATETIMENOTNULL);insertintoactorvalues('3',...原创 2021-06-29 14:52:57 · 148 阅读 · 0 评论 -
SQL34 批量插入数据
droptableifexistsactor;CREATETABLEactor(actor_idsmallint(5)NOTNULLPRIMARYKEY,first_namevarchar(45)NOTNULL,last_namevarchar(45)NOTNULL,last_updateDATETIMENOTNULL)请你对于表actor批量插入如下数据(不能有2条insert语句哦!)actor_id ...原创 2021-06-28 22:25:17 · 103 阅读 · 0 评论 -
SQL33 创建一个actor表,包含如下列信息
描述创建一个actor表,包含如下列信息列表 类型 是否为NULL 含义 actor_id smallint(5) not null 主键id first_name varchar(45) not null 名字 last_name varchar(45) not null 姓氏 last_update date not null 日期 CREATE TABLE 'actor'(原创 2021-06-25 21:07:36 · 114 阅读 · 0 评论 -
30. 使用子查询的方式找出属于Action分类的所有电影对应的title,description
描述film表字段 说明 film_id 电影id title 电影名称 description 电影描述信息 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表字段 说明 .原创 2021-06-23 15:02:47 · 254 阅读 · 0 评论 -
29. 使用join查询方式找出没有分类的电影id以及名称
描述film表字段 说明 film_id 电影id title 电影名称 description 电影描述信息 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表字段 说明 .原创 2021-06-23 14:48:44 · 567 阅读 · 0 评论 -
28. 查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类包含电影总数量>=5部——like
描述film表字段 说明 film_id 电影id title 电影名称 description 电影描述信息 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表字段 说明 .原创 2021-06-22 17:18:40 · 286 阅读 · 0 评论 -
26. 汇总各个部门当前员工的title类型的分配数目
有一个,部门员工关系表dept_emp简况如下:有一个职称表titles简况如下:汇总各个部门当前员工的title类型的分配数目,即结果给出部门编号dept_no、dept_name、其部门下所有的员工的title以及该类型title对应的数目count,结果按照dept_no升序排序示例1drop table if exists `departments` ; drop table if exists `dept_emp` ; drop table if exist.原创 2021-06-21 18:31:01 · 293 阅读 · 0 评论 -
25. 获取员工其当前的薪水比其manager当前薪水还高的相关信息
描述有一个,部门关系表dept_emp简况如下:有一个部门经理表dept_manager简况如下:有一个薪水表salaries简况如下:获取员工其当前的薪水比其manager当前薪水还高的相关信息,第一列给出员工的emp_no,第二列给出其manager的manager_no,第三列给出该员工当前的薪水emp_salary,第四列给该员工对应的manager当前的薪水manager_salary以上例子输出如下:分析:简历员工工资表,经理工资表,再连接原创 2021-06-21 17:32:26 · 221 阅读 · 0 评论 -
24. 获取所有非manager员工当前的薪水情况
描述有一个员工表employees简况如下:有一个,部门员工关系表dept_emp简况如下:有一个部门经理表dept_manager简况如下:有一个薪水表salaries简况如下:获取所有非manager员工薪水情况,给出dept_no、emp_no以及salary,以上例子输出:...原创 2021-06-20 16:50:07 · 169 阅读 · 0 评论 -
23. 对所有员工的薪水按照salary进行按照1-N的排名——排序的专用窗口函数
对所有员工的薪水按照salary进行按照1-N的排名描述有一个薪水表salaries简况如下:对所有员工的薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列:原创 2021-06-20 15:31:19 · 451 阅读 · 0 评论 -
19. 查找所有员工的last_name和first_name以及对应的dept_name
有一个部门表departments表简况如下:有一个,部门员工关系表dept_emp简况如下:请你查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工,以上例子输出如下:...原创 2021-06-19 23:42:46 · 536 阅读 · 0 评论 -
18. 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary——不等于、自连接
描述有一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不能使用order by完成,以上例子输出为:(温馨提示:sqlite通过的代码不一定能通过mysql,因为SQL语法规定,使用聚合函数时,select子句中一般只能存在以下三种元素:常数、聚合函数,groupby指定的列名。如果使用非group by的列名,sqlite的结果和mysq...原创 2021-06-19 01:08:37 · 117 阅读 · 0 评论 -
17. 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
描述有一个薪水表salaries简况如下:请你获取薪水第二多的员工的emp_no以及其对应的薪水salary原创 2021-06-19 00:51:50 · 93 阅读 · 0 评论 -
21. 查找在职员工自入职以来的薪水涨幅情况 ——子查询,join,先把用的表写出来
查找在职员工自入职以来的薪水涨幅情况描述有一个员工表employees简况如下:有一个薪水表salaries简况如下:请你查找在职员工自入职以来的薪水涨幅情况,给出在职员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为(注: to_date为薪资调整某个结束日期,或者为离职日期,to_date='9999-01-01'时,表示依然在职,无后续调整记录)建表:drop table if exists `employees原创 2021-06-17 16:43:36 · 184 阅读 · 2 评论 -
16. 统计出当前各个title类型对应的员工当前薪水对应的平均工资——order by
描述有一个员工职称表titles简况如下:有一个薪水表salaries简况如下:建表语句如下:CREATETABLEtitles(`emp_no`int(11)NOTNULL,`title`varchar(50)NOTNULL,`from_date`dateNOTNULL,`to_date`dateDEFAULTNULL);CREATETABLE`salaries`(`emp_no`int(11)NOTNULL,`sala...原创 2021-06-17 15:46:28 · 151 阅读 · 0 评论 -
12. 获取每个部门中当前员工薪水最高的相关信息——ROW_NUMBER() OVER()
描述有一个员工表dept_emp简况如下:有一个薪水表salaries简况如下:获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号升序排列,以上例子输出如下:(注意: Mysql与Sqlite select 非聚合列的结果可能不一样)提交代码:(注意聚合函数的用法)注意:因为聚合函数通过作用一组值而只返回一个单一值,因此,在SELECT语句中出现的字段要么为一个聚合函数的输入值,如COUNT(cour..原创 2021-06-16 17:23:25 · 349 阅读 · 0 评论 -
11. 获取所有员工当前的manager——not in 和<>
描述有一个员工表dept_emp简况如下:第一行表示为员工编号为10001的部门是d001部门。有一个部门经理表dept_manager简况如下:第一行表示为d001部门的经理是编号为10002的员工。获取所有的员工和员工对应的经理,如果员工本身是经理的话则不显示,以上例子如下:提交程序:select de.emp_no ,dm.emp_no as managerfrom dept_emp deleft join dept_manager dmon de.de原创 2021-06-16 15:41:39 · 115 阅读 · 0 评论 -
9. 获取所有非manager的员工emp_no——is null和not in
描述有一个员工表employees简况如下:有一个部门领导表dept_manager简况如下:建表语句如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar(16)NOTNULL,`gender`char(1)NOTNULL,`hire_date`...原创 2021-06-16 15:26:46 · 81 阅读 · 0 评论 -
8. 找出所有员工当前薪水salary情况——unique和distinct
描述有一个薪水表,salaries简况如下:建表语句如下:CREATETABLE`salaries`(`emp_no`int(11)NOTNULL,`salary`int(11)NOTNULL,`from_date`dateNOTNULL,`to_date`dateNOTNULL,PRIMARYKEY(`emp_no`,`from_date`));请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示,以上例子...原创 2021-06-16 15:09:15 · 155 阅读 · 0 评论 -
7. 查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t——group by、having 、with as
with a as (select * from salaries), b as (select * from salaries)with inc as(select b.emp_no,b.salary,b.from_date,b.to_date from a,bwhere a.to_date = b.from_dateand a.salary < b.salary)select emp_no,count(salary) as tfrom incwhere t >...原创 2021-06-15 22:44:45 · 172 阅读 · 0 评论 -
5. 查找所有员工的last_name和first_name以及对应部门编号dept_no——左连接
描述有一个员工表,employees简况如下:有一个部门表,dept_emp简况如下:建表语句如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar(16)NOTNULL,`gender`char(1)NOTNULL,`hire_...原创 2021-06-15 15:19:59 · 169 阅读 · 0 评论 -
4. 查找所有已经分配部门的员工的last_name和first_name以及dept_no——内连接
1. 查找所有已经分配部门的员工的last_name和first_name以及dept_no描述有一个员工表,employees简况如下:有一个部门表,dept_emp简况如下:建表语句如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar...原创 2021-06-15 15:07:24 · 137 阅读 · 0 评论 -
3. 查找当前薪水详情以及部门编号dept_no
查找当前薪水详情以及部门编号dept_no描述有一个全部员工的薪水表salaries简况如下:有一个各个部门的领导表dept_manager简况如下:提交代码:select A.emp_no,A.salary,A.from_date,A.to_date,B.dept_no from salaries as Ajoin dept_manager as B on A.emp_no = B.emp_nowhere A.emp_no = B.emp_no提交结果:答案正.原创 2021-06-15 15:09:25 · 76 阅读 · 0 评论 -
2. 查找入职员工时间排名倒数第三的员工所有信息
查找入职员工时间排名倒数第三的员工所有信息描述有一个员工employees表简况如下:建表语句如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar(16)NOTNULL,`gender`char(1)NOTNULL,`hire_date...原创 2021-06-13 22:39:35 · 119 阅读 · 0 评论 -
1. 查找最晚入职员工的所有信息-SQL——limit
查找最晚入职员工的所有信息描述有一个员工employees表简况如下:建表语句如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar(16)NOTNULL,`gender`char(1)NOTNULL,`hire_date`dateNOTNUL...转载 2021-06-13 22:11:20 · 331 阅读 · 0 评论