[关闭]
@Pigmon 2016-06-03T14:17:24.000000Z 字数 2396 阅读 102

SQL测验

未分类


SQL测试环境

最简单的方法还是搭建咱们在公司弄的SQLite3环境。参考步骤如下:

  • 在此网盘地址下载sqlite.zip (https://yunpan.cn/cSi6PEQeKQRNK 访问密码 5109)。
  • 解压后,得到目录‘Sqlite’,将这个目录放到C盘根目录。
  • 配置环境变量:在环境变量path结尾添加‘C:\Sqlite’(我是添加在用户变量的path中的,如果用户变量配置完不能用,可以试试系统变量)
  • 最后在cmd里直接输入'sqlite3'命令,如果看到最后一行是这样的提示‘sqlite> _’代表成功了。
  • 然后安装你在公司用的sqlite studio版本(我记得是2.1.5),即可以开始测试。

第1题 建表

在sqlite studio中按如下描述建立数据库中的表(不止一个表),并导出表的create语句作为试卷答案。

数据描述(后面的题目也是基于这个题目中建立的表来操作):

某国际顶尖的刺杀公司的IT部经理:
“因为最近一次不愉快的事故导致公司业务管理的服务器被损坏。现在我要求你重新制作的内部数据管理服务器,首先是设计数据库的工作。”
你所知的信息如下:
1. 员工信息
公司为每个刺客赋予一个内部使用的唯一[ID],刺客有一些基本信息,如[姓名],[性别],[国籍],[绰号],[国际排名],[主要擅长的工作类别](包括远程狙杀,枪械战斗,冷兵器及近身肉搏,毒杀,伪装成意外的暗杀),[主要额外技能](包括追踪与逃跑,伪装与潜入,1vN作战,爆破,情报收集)。
另外,公司还需要保留一些关于这些刺客的,内部管理评估的数据,如:[疯狂的程度],[可信度],[价格等级]和为公司[创收的等级](以上4个都用ABCDE这5个等级来标注)。
IT部门的经理在最后还小声跟你这么说:“管理这些恶名昭彰的暴徒有时候要多做点准备,你懂的。我们还需要在一个单独的地方存储他们每个人的一点‘秘密’,数据是一个长度为32的加密字符串,每人都有一个。”
2. 业务信息
这个就比较简单了,只有一些财务部门感兴趣的信息,包括[业务代码,[发包人],[执行任务的刺客],[价格],[业务状态](收定金,执行中,任务完成,尾款结算)

提示:简单起见,答题的时候你可以把员工信息(不包括业务信息和秘密)都放一个表里。但思考一下,这样合适吗?为什么?
提示:如果一个属性,可选的值只是已知并且固定数量的几个,那么用什么类型合适呢?比如‘擅长的工作类别’。

更进一步思考(不影响本题目答案的思考):
你觉得员工数据这部分,那些是可以公开的(相对地),哪些是不能给客户看的?哪些是只有公司少数高层才能知道的?针对你的分类,应该设计几个表?大概都是干啥的?

第2题 录数据

每个表一条Insert语句把以下员工的信息录入到数据库中。
IT经理点了另一根烟,开始跟你介绍3个首先要输入到数据库里的员工资料。

员工编号 201004,绰号‘黑寡妇’,女性,俄罗斯人,国际排名3。其实没有什么她不擅长的工作,不过主要还是“伪装成意外的暗杀”,这点是其他大部分员工不擅长的东西。额外技能的情况也差不多,不过她多年(真的是好多年)的间谍工作还是让她的‘情报收集’能力无人可比。虽然她也很擅长易容伪装潜入什么的,但你知道,我们有些员工是依靠超能力做这件事的。。。
她的真名叫“娜塔莎·罗曼诺夫”,头脑异常的冷静聪明,做事也是最靠谱的。这种名声在外的‘头牌’自然价格也是最高的,没什么非常特殊任务我们是不会找她的,所以。。。目前她还一单都没做过。。。

员工编号 201602 绰号‘死侍’,‘韦德威尔逊’。男,美国人,国际排名250。枪械和冷兵器都很擅长,不过还是冷兵器能力比较突出一些。额外技能‘1vN作战’。疯狂程度A,可信度D,价格等级C,创收C。怎么说呢,就是个不大出彩也还不错的员工吧。

员工编号 197603 绰号'惩罚者',男,美国。原名‘弗兰克·卡斯特’。国际排名6。一等一的战术专家,枪械专家,曾多次单枪匹马灭掉一群正规军。擅长工作类别当然是‘枪械战斗’(他也是个顶尖的狙击手,但比我们公司的‘靶眼’和‘死射’略逊一筹),额外技能‘爆破’。此人嫉恶如仇,对杀人如麻的黑帮和恐怖分子十分的凶残。这人虽然有点偏执,但做起事是格外的冷静果敢。公司近年来所有最高价格的任务几乎都是他的单。

提示:缺少的数据你随便写,或者空着。

第3题 查询

宣传与推广

公司决定打一个广告,CIA那边找到了一个IS的秘密基地,里面大概有200名左右的武装分子,装备一般,训练有素。我们需要用常规作战的方式歼灭他们,并且要让全世界看到我们的单兵作战实力。
虽然你心里已经有了答案,但还是需要你写一条SQL语句,找出1个适合这次任务的员工。
提示:把查询的结果用Order By排序,那么第一条记录就是最合适的人。记住,要找最好的。

老客户史蒂芬霍金

“别问我这关我屁事,我就是看川普那个傻逼不顺眼!既然他喜欢扮成一个蠢货去迎合Low逼的品味,就让他死于一个‘愚蠢的意外’!”
“什么样的意外?拜托,你这里这么多疯子,让他们去想,我的大脑是理性的,不适合干这个。”
“千万别出岔子,我不认为监狱是个适合我做研究的地方!”
看看用什么样的SQL语句能找出n个适合的人。(n大于等于1)
提示:这个条件比较多,分析霍金的每句话,把可能对应的条件先列出来。

第4题 修改

“黑寡妇终于接了一单,一下子解决了好几个部门的年终奖,她的'创收等级'可以提升1级了。她的绰号也变成了“无敌黑寡妇”。为什么?她这次干掉的可是国际排名第2的刺客,哦,抱歉,是曾经排名第2的...”
把需要Update的数据给Update了。

第5题 删除

“我早说过雇佣‘死侍’这种疯子不会有好结果,这次他直接把客户给团灭了。赶紧把所有有关他的信息删除,千万不能让人知道他和公司有过合作,否则咱以后只能改行做手机游戏了。”
“哦,别忘了把他接过的任务也都删除了!”

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注