teradata笔试题_第1页
teradata笔试题_第2页
teradata笔试题_第3页
teradata笔试题_第4页
teradata笔试题_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、收集一:1 .逻辑推理题3 道为简单的根据条件推理题3 道稍复杂的推理题2 .技术题(数据库为主)(1)程序题,数字转换成定长字符串答:数据库实现:(2)sql 查询语句查出第二大(3)问答题:索引分类和各自用途(4)根据 sql 查询语句确定创建哪种类型的索引,如何优化查询(5)选择题好像是 15 道,主要涉及数据库范式判别、三大完整性的考察及查询语句收集二:一笔试题目:1 .逻辑推断题关于布尔代数概念的题目;2 .逻辑推断题3 .数据库技术,1 sql 语句:求出学生成绩表中成绩第二高的所有学生名单;答:TD实现,第二高selectstu_namefromstudentabqualifyr

2、ank(score)=2如果是各科成绩倒数据第二则:selectcourese_idas课程,stu_name姓名,rank(scoreasc)as名次(倒数)fromstudentabgroupbycourse_idqualifyrank(scoreasc)=2注:QUALIFY子句限制排队输出的最终结果。QUALIFY?句与HAVING?句类似,使输出限制在一定范围内。1) sybase实现:selectstart_datefrom(selectstart_date,dense_rank()over(orderbystart_datedesc)ascolfromtb_tmp)twheret

3、.col=2说明:dense_rank是秩分析函数,它只能在SELECTINSERT语句和SELEC喃句的ORDERBYF句中使用的选择列表中使用。可以在视图或联合视图中使用,上例即相当于使用视图的方式。dense_rank和rank的区别是:当存在并列排名时,dense_rank不会保留空位,它的返回值连续的(如:10、10、10、11)。而rank会保留相应的空位(如:10、10、10、13)。2) oracle实现selectprovince_id,city_idfrom(selectprovince_id,city_id,dense_rank()over(orderbyprovince

4、_iddesc)colfromdd_city)twheret.col=23)分组使用 dense_rane,使用此方法可以选出各班第二名学生的名单selectprovince_id,city_idfrom(selectprovince_id,city_id,dense_rank()over(partitionbyprovince_idorderbycity_iddesc)colfromdd_city)twheret.col=22 你知道有哪几种索引,每种索引都有什么用处,怎么使用呢?答:主索引:使用主索引时行数据分配。唯一主索引非唯一主索引:用于用于预先连接两个或多个表,连接索引有主索引,可以

5、有非唯一的主索引,但不能有唯一的主索引。次索引:1)唯一次索引2)非唯一次索引作用:非唯一次索引(NUSI)是Teradata的一种索引,非主索引,索引的列值允许不唯一。典型地,在WHERE句中使用索引的列,将提高查询性能。可以单独创建。它基于HASK法。可以创建按值排序的,按值排序的非唯一次索引(ValueOrderedNUSI)的索引子表按数据值存储记录,而不是哈稀值。在按照范围查询时,这种索引非常有用。连接索引:连接索引的目的,是从索引子表提供数据,避免访问基础表。1)多表连接索引-预先连接多个表2)单表连接索引-按照外部键的哈稀值分布单个表的记录3)聚合连接索引-聚合一个或多个表中的列

6、,形成汇总表4 程序设计题目1 将给定的数转换成固定长度的字符串,不足尾数的应补足0注意有小数和负数的问题。2 给定的 url 地址,从中取出文件名,例如 http: getBlog.asp;5 三种范式,1NF,2NF,3NF,之间的联系与区别之处,去范式化有什么好处,什么情况下使用?第一范式:关系模式的所有属性都是原子的,不可分割的单元。也可理解为不是多值属性。缺点:不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖第二范式:关系模式是第一范式且每个非属性都完全依赖于候选码。缺点:也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。第三范式:关系模式是第二范式且每

7、个非主属性都非传递依赖于候选码。特点:消费了数据冗余和更新异常等问题。联系:是实符合低一级的范式是进行高一级范式的前提。区别是:1NF、2NF由于存在函数依赖,存在数据冗余和更新异常等问题。3NF消费了前两范式的问题去范式的好处:提高性能,对于一些特定应用,使用去范式化,保持一定的数据冗余,可以提高性能。因为它可以避免一些连接运算。如常用见的账号与姓名以及余额一起存储,因为这三者经常一起查询。去范式的缺点:限制系统灵活性,增加维护需求,可能降低系统其它部分性能。所以去范式前,一前要彻底估计平衡性,确定这去范式是值得的。下面是一些额外的补充:规范化经常涉及的问题是:冗余、不一致、插入异常或删除异

8、常关于码的说明:超码:超码是一个或多个属性的组合,它可以唯一的标识一个关系模式中的一个元组。候选码:其任意真子集都不能成为超码的超码称为候选码。主码:被数据设计者选中用来标识不同元组的候选码。(主码应该选择那些从不或极少发生变化的值)6Teradata 数据库中有那几种索引?怎么使用,举个例子说明。主键和外键是数据逻辑模型中的概念,而索引存在于物理模型中,Teradata将索引分为主索引和次索引。主索引分为唯一主索引(UPI)和不唯一主索引(NUPI),次索引分为口i一次索引(USI)和不唯一次索引(NUSI)。主索引不一定就对应主键。数据的分配是依靠对主索引进行哈希处理来完成的。因此,必须在

9、创建表的同时就确定主索引。尽量选择那些访问频度高的属性作索引。如雇员名和雇员编号号,如果经常使用雇员名来查找数据,那么就应该选择雇员名来作为为主索引,而不是使用雇员编号。1)非唯一次索引:,在where子句中使用索引的列,将提高查询性能。可以使用CREATETABL踣法与表一起创建,也可以使用CREATEINDE烦法在建表后创建。如果索引不再需要了,可以使用DROPINDEX除索引。如:CREATEINDEX(job_code)ONemployee;创建了非唯一次索引,每个AMP上都建立了一个子表。子表中存储了一些记录,包含每个索引值和基础表记录的记录号(row-id),子表中记录按照索引值的

10、哈稀值排序存储。这样,按照索引值来查找记录非常方便,但是进行范围搜索,索引就没有用了。2)按值排序的非唯一次索引:按值排序的非唯一次索引(ValueOrderedNUSI)的索引子表按数据值存储记录,而不是哈稀值。在按照范围查询时,这种索引非常有用。如:CREATENDEX(job_code)ORDERYVALUES(job_code)ONemployee;其使用限制是:单一的列属于索引定义中的列数字列-不允许非数字列长度不能大于4个字节INT,SMALLINT,BYTEINT,DATE,DEC是有效的。注:虽然允许DECIMA嗷据类型,但长度不能超过4个字节,不能有小数。3)连接索引:连接索

11、引是一种能够提高某些类型查询的性能的索引技术,可以包含一个或多个表中的列。连接索引被创建后,由优化器决定是否使用,用户不能直接访问。连接索引有三种:a.多表连接索引(预先连接多个表)用于用于预先连接两个或多个表,连接索引有主索引,可以有非唯一的主索引,但不能有唯一的主索引。接值排序的连接索引,可以有效的进行范围查询。排序列的限制与按值排序的非唯一次索引一致。为了提高性能,可以在连接索引中可以创建非唯一的次索引(NUSI)ob.单表连接索引(按照外部键的哈稀值分布单个表的记录)创建单表连接索引是为了按照非主索引的列重新哈稀或重新分布记录。重新分布的索引表可以是基础表歹1J的子集。如employe

12、e(emp_id,emp_naem,dep_id)primaryindex(emp_id),为了与部门表进行连接。可以选取emp_id,dep_id按dep_id作为主索引创建意表连接索引。c.聚合连接索引(聚合一个或多个表的列,形成汇总表)查询计数、合计或平均值,需要执行聚合。聚合索引类似于前面的连接索引,不同之处在于使用了合计、计数和数据抽取。聚合索引不需要用户维护,当基础表的数据更新后,聚合索引自动刷新。所以,当基础表改变时,会有附加的处理工作。4)顺序文件上有稠密和稀疏索引。还有最常用的B树和Hash索引。B树和Hash索引的区别就是,B树可以动态的保持索引的层次结构,使得存储块维持在

13、半满和全满之间,而Hash索引更为灵活,尤其适用于那些有很多重复关键字的情况。7.三层模型,及作用面试题目1 讲述一下 Teradata,就当作我什么都不知道。2Teradata 的整个架构设计是怎么样的?后记:1 参加笔试之前一定要先在网上搜索一下改公司的笔试题目,以免吃亏啊。2 面试之前一定要充分准备,尽可能的了解这一职位需要什么样的技术,多掌握一些有好处的。收集三:工作两年了,人有点懒了,想动动给自己找点动力,把工作期间的简历好好写了写了,居然收到 Teradata 的面试通知,可以是自己平时不努力,面试有点糟糕,也算给自己一点刺激,还需奋斗!把面试题数据库方面的三道题写写1)数据库中角

14、色的作用(还算容易吧)2)写一个 SQL,查询出表 T1(idinteger)中 id 第二大队记录(也还好吧,不过我用了 rownum,面试时问不用 rownum 怎么办,排序结果加一列 sequence 就好了)3)商店各种商品都有商品编码表,商品按照类别分为了 4 个级别(class1class2class3class4)(注意这里的级别是嵌套的如 classl 是服装,class2 是男装或女装),对每天销售的商品进行记录问 1:设计一个数据库表示商品和销售信息问 2:写 sql,统计一周各类货物销售总金额,按照由高到低排序问 3:写 sql,统计一周级别为 classl 的商品的销售

15、总金额,列出前 20%。第三道题算是有点难度的,但熟悉 sql 的人也应该不费劲。问3:分位数函数用于将一组数据记录分成大致相等的部分。最常见的分位数据是百分位数据(基于100),也有4分位(基于4),也有三位位(基于3)和10分位数据(基于10),注意缺省的,分位数据的列和值按升序排列。可以使用ORDERB仔句重新排序,聚合函数不能和OLAP函数同时使用。如果要使用聚合函数,可以使用导出表或临时表。分位函数语法是:QUANTILE(quantile_constant,sortlist)quantile_constant:定义分位数大小的常量sortlist:用于分割和排序的列例:如显示销售额

16、的百分位selectproduct_id,sale_sums,quantile(100,sale_sumsasc)(selectproduct_id,sum(amount)fromsaletabagroupby1)ast(product_id,sale_sums)显示结果如:1001100.0101002200.01251003300.33501004400.6875例2:显示公司前25%M工的薪水selectamountfromemployeequalifyquantile(100,amount)75例3:显示公司前25%M工的薪水总和由于要用到聚合函数与OLAP函数,所以要使用导出表或临时

17、表selectsum(sales)assumsalesfrom(selectamountfromemployeequalifyquantile(100,amount)75)astemp(sales)收集四:今天参加了求职以来的第一场面试。很幸运,遇到了一位非常 nice 的面试官,人很帅,也很和气,完全符合我心目中的优秀面试官的标准。开门见山,他说我的试卷给他留下了深刻印象,因为我是唯一一位编程题得满分而数据库部分得分很低的人。他问我是否回去之后考虑了当时没有做出的题目,哼哼,还好我够勤奋,回来就把不会的知识搞懂了,如下:关于找出成绩第二高的学生的名字。其实这是一道非常经典的题目。如果用两条 SQL语句来做的话最好先建立一个视图,这样写出来的 SQL 语句很清晰。如下:CREATEVIEWmyseeASSELECT*FROMStudentsWHEREscore(SELECTMAX(score)FROMStuden

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论