teradata笔试题
收集一:
1.逻辑推理题
  3道为简单的根据条件推理题
  3道稍复杂的推理题
2.技术题(数据库为主)
1)程序题,数字转换成定长字符串
答:数据库实现:
2sql 查询语句 查出第二大
3)问答题:索引分类和各自用途
4)根据sql查询语句确定创建哪种类型的索引,如何优化查询
5)选择题  好像是15 ,主要涉及数据库范式判别、三大完整性的考察及查询语句
收集二:
笔试题目:
    1. 逻辑推断题
                        关于 布尔代数概念的题目;
      2.  逻辑推断题
      3. 数据库技术,
          1 sql 语句: 求出学生成绩表中 成绩第二高的所有学生名单;
答:TD实现,第二高
select stu_name
随波逐流歌词
from studentab
qualify rank(score) = 2
如果是各科成绩倒数据第二则:
select courese_id as 课程,stu_name 姓名, rank(score asc) as 名次(倒数)
from studentab
group by course_id
qualify rank(score asc) = 2
注:
QUALIFY子句限制排队输出的最终结果。QUALIFY子句与HAVING子句类似,使输出限制在一定范围内。
1)sybase实现:
select start_date
from
(select start_date,dense_rank() over(order by start_date desc) as col
from tb_tmp ) t
l = 2
说明:
dense_rank是秩分析函数,它只能在SELECT、INSERT语句和SELECT语句的ORDER BY子句中使用的选择列表中使用。可以在视图或联合视图中使用,上例即相当于使用视图的方式。
dense_rank和rank的区别是:当存在并列排名时,dense_rank不会保留空位,它的返回值连续的(如:10、10、10、11)。而rank会保留相应的空位(如:10、10、10、13)。
2) oracle 实现
select province_id,city_id from (
select province_id,city_id, dense_rank() over(order by province_id desc) col from dd_city
) t
卩字旁的字
l =2
3)分组使用dense_rane,使用此方法可以选出各班第二名学生的名单
select province_id,city_id from (
select province_id,city_id,dense_rank() over(partition by province_id order by city_id desc) col from dd_city
) t
l =2
          2 你知道有哪几种索引, 每种索引都有什么用处,怎么使用呢?
答:
主索引:使用主索引时行数据分配。
    唯一主索引
    非唯一主索引:用于用于预先连接两个或多个表,连接索引有主索引,可以有非唯一的主索引,但不能有唯一的主索引。
次索引:
1)唯一次索引
2)非唯一次索引
    作用:非唯一次索引(NUSI)是Teradata的一种索引,非主索引,索引的列值允许不唯一。典型地,在WHERE子句中使用索引的列,将提高查询性能。可以单独创建。它基于HASH算法。
可以创建按值排序的,按值排序的非唯一次索引(Value Ordered NUSI)的索引子表按数据值存储记
录,而不是哈稀值。在按照范围查询时,这种索引非常有用。
连接索引:连接索引的目的,是从索引子表提供数据,避免访问基础表。
    1)多表连接索引 – 预先连接多个表
    2)单表连接索引 – 按照外部键的哈稀值分布单个表的记录
    3)聚合连接索引 – 聚合一个或多个表中的列,形成汇总表
   
     4 程序设计题目
1 将给定的数转换成固定长度的字符串, 不足尾数的应补足‘0’。注意有小数和负数的问题。
        2  给定的情人节送花寄语url 地址, 从中取出文件名,例如      dingxiaodong86.blog.163/blog/getBlog.asp?bid=fks_082066084084, 应该取出 文件名字为 getBlog.asp;
    5  三种范式,1NF,2NF,3NF,之间的联系与区别之处,去范式化有什么好处,什么情况下使用?
第一范式:关系模式的所有属性都是原子的,不可分割的单元。也可理解为不是多值属性。
缺点:不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖
第二范式:关系模式是第一范式且每个非属性都完全依赖于候选码。
缺点:也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。
第三范式:关系模式是第二范式且每个非主属性都非传递依赖于候选码。
特点:消费了数据冗余和更新异常等问题。
联系:是实符合低一级的范式是进行高一级范式的前提。
区别是:1NF、2NF由于存在函数依赖,存在数据冗余和更新异常等问题。3NF消费了前两范式的问题。
去范式的好处:提高性能,对于一些特定应用,使用去范式化,保持一定的数据冗余,可以提高性能。因为它可以避免一些连接运算。如常用见的账号与姓名以及余额一起存储,因为这三者经常一起查询。
去范式的缺点:限制系统灵活性,增加维护需求,可能降低系统其它部分性能。所以去范式前,一前要彻底估计平衡性,确定这去范式是值得的。
下面是一些额外的补充:
什么小生意最赚钱规范化经常涉及的问题是:冗余、不一致、插入异常或删除异常
关于码的说明:
超码:超码是一个或多个属性的组合,它可以唯一的标识一个关系模式中的一个元组。
候选码:其任意真子集都不能成为超码的超码称为候选码。
主码:被数据设计者选中用来标识不同元组的候选码。(主码应该选择那些从不或极少发生变化的值)
    6 Teradata 数据库中有那几种索引? 怎么使用, 举个例子说明。
主键和外键是数据逻辑模型中的概念,而索引存在于物理模型中,Teradata将索引分为主索引和次索引。主索引分为唯一主索引(UPI)和不唯一主索引(NUPI),次索引分为唯一次索引(USI)和不唯一次索引(NUSI)。主索引不一定就对应主键。
数据的分配是依靠对主索引进行哈希处理来完成的。因此,必须在创建表的同时就确定主索引。尽量选择那些访问频度高的属性作索引。如雇员名和雇员编号号,如果经常使用雇员名来查数据,那么就应该选择雇员名来作为为主索引,而不是使用雇员编号。
1)非唯一次索引:,在where子句中使用索引的列,将提高查询性能。可以使用CREATE TABLE语法与表一起创建,也可以使用CREATE INDEX语法在建表后创建。如果索引不再
需要了,可以使用DROP INDEX删除索引。如:CREATE INDEX (job_code) ON employee;  创建了非唯一次索引,每个AMP上都建立了一个子表。子表中存储了一些记录,包含每个索引值和基础表记录的记录号(row-id),子表中记录按照索引值的哈稀值排序存储。这样,按照索引值来查记录非常方便,但是进行范围搜索,索引就没有用了。
2)按值排序的非唯一次索引:按值排序的非唯一次索引(Value Ordered NUSI)的索引子表按数据值存储记
录,而不是哈稀值。在按照范围查询时,这种索引非常有用。如:CREATE INDEX (job_code) ORDER BY VALUES (job_code) ON employee; 
其使用限制是:
单一的列
属于索引定义中的列 
数字列 – 不允许非数字列 
长度不能大于 4个字节 – INT, SMALLINT, BYTEINT, DATE, DEC是有效
的。 
注:虽然允许DECIMAL数据类型,但长度不能超过4个字节,不能有小数。
3)连接索引:连接索引是一种能够提高某些类型查询的性能的索引技术,可以包含一个或多个表中的列。连接索引被创建后,由优化器决定是否使用,用户不能直接访问。
连接索引有三种:
a.多表连接索引(预先连接多个表)
用于用于预先连接两个或多个表,连接索引有主索引,可以有非唯一的主索引,但不能有唯一的主索引。
接值排序的连接索引,可以有效的进行范围查询。排序列的限制与按值排序的非唯一次索引一致。
为了提高性能,可以在连接索引中可以创建非唯一的次索引(NUSI)。
b.单表连接索引(按照外部键的哈稀值分布单个表的记录)
创建单表连接索引是为了按照非主索引的列重新哈稀或重新分布记录。重新分布的索引表可以是基础表列的子集。如employee(emp_id,emp_naem,dep_id) primary index(emp_id),为了与部门表进行连接。可以选取emp_id,dep_id按dep_id作为主索引创建意表连接索引。
c.聚合连接索引(聚合一个或多个表的列,形成汇总表)
查询计数、合计或平均值,需要执行聚合。聚合索引类似于前面的连接索引,不同之处在于使用了合计、计数和数据抽取。聚合索引不需要用户维护,当基础表的数据更新后,聚合索引自动刷新。所以,当基础表改变时,会有附加的处理工作。
4)
顺序文件上有稠密和稀疏索引。还有最常用的B树和Hash索引。
      B树和Hash索引的区别就是,B树可以动态的保持索引的层次结构,使得存储块维持在半满和全满之间,而Hash索引更为灵活,尤其适用于那些有很多重复关键字的情况。
 7.三层模型,及作用
面试题目
    1 讲述一下Teradata ,就当作我什么都不知道。
    2  Teradata 的整个架构设计是怎么样的?
 
后记:
1 参加笔试之前一定要先在网上搜索一下改公司的笔试题目,以免吃亏啊。
面试之前一定要充分准备,尽可能的了解这一职位需要什么样的技术,多掌握一些有好处的。
收集三:
工作两年了,人有点懒了,想动动给自己点动力,把工作期间的简历好好写了写了,居然收到Teradata的面试通知,可以是自己平时不努力,面试有点糟糕,也算给自己一点刺激,还需奋斗!
把面试题数据库方面的三道题写写
1)数据库中角的作用(还算容易吧)
2)写一个SQL,查询出表T1教室节贺卡(id integer )中id第二大队记录(也还好吧,不过我用了rownum,面试时问不用rownum法国签证怎么办,排序结果加一列sequence就好了)
3)商店各种商品都有商品编码表,商品按照类别分为了4个级别(class1>class2>class3>class4)(注意这里的级别是嵌套的如class1是服装,class2是男装或女装),对每天销售的商品进行记录
1:设计一个数据库表示商品和销售信息
2:写sql,统计一周各类货物销售总金额,按照由高到低排序
3:写sql,统计一周级别为class1的商品的销售总金额,列出前20%
第三道题算是有点难度的,但熟悉sql的人也应该不费劲。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。