#数据库SQL实战#【Day10】

--------------------------------------------------
学习用,欢迎讨论。
--------------------------------------------------
查看详细题目的方法:
复制以下题目内容;
Ctrl+F查找刚刚复制的题目即可。
--------------------------------------------------
题目42:删除emp_no重复的记录,只保留最小的id对应的记录
delete from titles_test
where id not in (select min(id) from titles_test group by emp_no)
本题主要考查delete语句,有很多方法,上述是比较简单的一种。
--------------------------------------------------
题目43:将所有to_date为9999-01-01的全部更新为NULL,且
update titles_test
set to_date = null, from_date = '2001-01-01'
where to_date = '9999-01-01'
--------------------------------------------------
题目44:将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变,使用replace实现。
insert or replace into titles_test
select id, 10005, title, from_date, to_date
from titles_test where id = 5
和题目35对应,题目35考查的是“insert or ignore”,此处考查的是“insert or replace”。前者是插入记录或者忽略与表内unique字段都相同的记录,后者是插入记录或者替代与表内unique字段都相同的记录。
当然也可以如下书写:
insert or replace into titles_test
values(5, 10005, 'Senior Engineer', '1986-06-26', '9999-01-01')
其他没有使用“replace”的语句也能通过测试,但是不符合题目要求,不再列出。
--------------------------------------------------
题目45:将titles_test表名修改为titles_2017
alter table titles_test rename to titles_2017
和题目40一样,考查alter table。
--------------------------------------------------
题目46:在audit表上创建外键约束,其emp_no对应employees_test表的主键id
drop table audit;
create table audit(
    EMP_no int not null,
    create_date datetime not null,
    foreign key(EMP_no) references employees_test(ID));
SQLite不能直接创建外键,只能删除表,然后在重新创建表的时候添加外键。
--------------------------------------------------
题目47:如何获取emp_v和employees有相同的数据no
select * from emp_v
由视图的定义,可以直接由上述语句通过测试。
其他还有通过inner join或者intersect的方法,前面都已经考查过,本题还是注重于对视图的理解。[http://www.runoob.com/sqlite/sqlite-view.html]
--------------------------------------------------
题目48:将所有获取奖金的员工当前的薪水增加10%
update salaries
set salary = salary * 1.1
where emp_no in
(
    select s.emp_no from salaries as s
    inner join emp_bonus as eb
    on s.emp_no = eb.emp_no
)
and to_date = '9999-01-01'
按照题目意思直接可以得到上述代码。
--------------------------------------------------
全部评论

相关推荐

牛客175617325号:有的面试官不开摄像头 可能是因为他是竞业来的
点赞 评论 收藏
分享
点赞 11 评论
分享
牛客网
牛客企业服务