没有合适的资源?快使用搜索试试~ 我知道了~
首页IT面试笔试--数据库面试笔试常见知识点
资源详情
资源评论
资源推荐

数据库一些知识点
1.基础知识点:
1NF:第一范式。如果关系模式 R 的所有属性的值域中每一个值都是不可再分解的值,则称 R 属于第一范式模式。第一范式的模式
要求属性值不可再分裂成更小部分,即属性项不能是属性组合或由组属性组成。 2NF:第二范式。如果关系模式 R 为第一范式,并
且 R 中每一个非主属性完全函数依赖于 R 的某个候选键,则称 R 为第二范式模式。(如果 A 是关系模式 R 的候选键的一个属性,则
称 A 是 R 的主属性,否则称 A 是 R 的非主属性。) 3NF:第三范式。如果关系模式 R 是第二范式,且每个非主属性都不传递依赖于 R
的候选键,则称 R 是第三范式的模式。 BCNF:BC 模式。如果关系模式 R 是第一范式,且每个属性都不传递依赖于 R 的候选键,
那么称 R 为 BCNF 的模式。4NF:第四范式。设 R 是一个关系模式,D 是 R 上的多值依赖集合。如果 D 中成立非平凡多值依赖
X→→Y 时,X 必是 R 的超键,那么称 R 是第四范式的模式。
2.试题
1) 设有关系 R(S,D,M),其函数依赖集 F={S→D,D→M}。则关系 R 至多满足 2NF。 解析:属于依赖关系,所有至多满足第二范式。
2) 找出表 ppp 里面 num 最小的数,不能使用 min 函数。 答:select * from ppp where num<=all(select num from ppp) 或者:select top
1 num from ppp order by num。
3) 找出表 ppp 里面最小的数,可以使用 min 函数。 答:select * from ppp where num=(select Min(num) from ppp)。
4) 选 择 表 ppp2 中 num 重 复 的 记 录 。 答 : select * from ppp2 where num in(select num from ppp2 group by num
having(count(num)>1))。
5) 写出复制表、拷贝表和四表联合的 SQL 语句。 答:复制表(只复制结构,源表名:A,新表名:B): select * into B from A where
1=0 拷贝表(拷贝结构,源表名:A,新表名:B): select * into B from A 四表联查: select * from A,B,C,D where 关联条件
6) 在 SQL Server 中如何用 SQL 语句建立一张临时表? 答: create table #Temp(字段 1 类型,字段 2 类型…) 注意,临时表要在表
名前面加 “#”。
7) %代表任意长度(长度可以为 0)的字符串,_ 代表任意单个字符。如果用户要查询的语句本身就含有 %或_,这时就要使用
escape’<换码字符>’短语对通配符进行转义了。
8) 集函数 SUM,AVG 中的列必须是数值型。
综合的是选择题
9) 每一个部门的每个工种的工资最大值? select dept_id,job_cat,max(salary)from employee group by dept_id,job_cat;
10) 在 primary 和 unique 两种约束的情况下,Oracle 数据库会隐形创建一个唯一索引。
11) 在 select 语句中包含一个 where 关键词,group by 关键词一般在 where 关键词之后,order by 关键词一般在 select 语句中所有关
键词之后。
12) select last_name,salary from employees order by salary; select last_name,salary from employees order by 2 asc; 这两个 SQL 语句是相同
的结果。
13) 如果你想把时间显示成像“2005111014:44: 17”这样的格式,SQL 语句: select to_char(sydate,’yyyymmdd hh24:mi:ss’)from
dual;
14) select 语句中用来连接字符串的符号是+。
15) 如果要从字符串“Hello world”中提取出“ello world”这样的结果,SQL 语句: select lower(trim(‘H’from ‘Hello world’))from dual;
3.存储过程和函数的区别是什么?
答:存储过程是用户定义的一系列 SQL 语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据
库已定义的方法,它接受参数并返回某种类型的值,并且不涉及特定用户表。
4.事务是什么?
答:事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须有 4 个属性,称为 ACID(原子性、一致性、隔离性和持久
性)属性,只有这样才能称为一个事务。
5.游标的作用是什么?如何知道游标已经到了最后?
答:游标用于定位结果集的行。通过判断全局变量@@FETCH_STATUS 可以判断其是否到了最后。通常此变量不等于 0 表示出错
或到了最后。
6.触发器分为事前触发和事后触发,这两种触发有何区别?语句级触发和行级触发有何区别?
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。语句级触发器可以在语句执行前或后执行,而
行级触发在触发器所影响的每一行触发一次。
7.什么叫做 SQL 注入式攻击?如何防范?
答:所谓 SQL 注入式攻击,就是攻击者把 SQL 命令插入到 Web 表单的输入域页面请求的查询字符串中,欺骗服务器执行恶意的
SQL 命令。在某些表单中,用户输入的内容直接用来构造动态 SQL 命令,或作为存储过程的输入参数,这类表单特别容易受到
SQL 注入式攻击。防范 SQL 注入式攻击闯入:只要在利用表单输入的内容构造 SQL 命令之前,把所有输入内容过滤一番就可以了。
过滤输入内容可以按多种方式进行。第一,替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改 SQL 命令
的含义。第二,删除用户输入内容中的所有连字符,防止攻击者顺利获得访问权限。第三,对于用来执行查询的数据库账户,限制
其权限。第四,用存储过程来执行所有的查询。第五,检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当
在客户端和服务器端都执行。第六,将用户登录名称、密码等数据加密保存。第七,检查提取数据的查询所返回的记录数量。













安全验证
文档复制为VIP权益,开通VIP直接复制

评论2