数据库⾯试题及答案
1. 触发器的作⽤?
触发器是⼀种特殊的存储过程, 主要是通过时间来出发⽽被执⾏的. 它可以强化约束,
来维护数据的完整性和⼀致性, 可以跟踪数据库内的操作从⽽不允许未经许可的更新和变化. 可以级联运算
2. 什么是存储过程? ⽤什么来调⽤?
存储过程是⼀个预编译的SQL语句, 有点事允许模块化的设计, 只需要创建⼀次,就可以被多次调⽤,
如果需要执⾏多次SQL,那么存储过程的速度更快. 可以⽤命令对象来调⽤存储过程. 可以供外部程序调⽤, 如java程序
3. 存储过程的有优缺点?
优点: 存储过程是⼀个预编译的SQL语句, 执⾏效率⾼
放在数据库中,直接调⽤,减少⽹络通信
安全性⾼
可重复使⽤
缺点: 移植性差
4. 存储过程与函数的区别?
存储过程: 在数据库中完成指定的增删改查操作相对定位和绝对定位
申明: procedure
函数: 在编程语⾔中进⾏任务的处理
申明: function
c语言数组初始值>python编程软件多大5. 索引的作⽤? 和他的优点缺点是什么?
索引就是⼀种特殊的查询表, 数据库的搜索可以利⽤它加速对数据的检索. 类似于现实⽣活中的⽬录. 不需要查整本书就可以到想要的结果.
6. 什么样的字段适合建⽴索引?
唯⼀, 不为空, 经常被查询的字段 7. 索引的类型有哪些?
逻辑上: 单⾏索引,多⾏索引,唯⼀索引,⾮唯⼀索引,函数索引,域索引.
物理上: 分区索引, ⾮分区索引
B-tree: 正常性B树
反转型B树
bitmap位图索引
8. 什么是事务? 什么是锁?
事务就是被绑在⼀起作为⼀个逻辑⼯作单元的SQL语句分组, 如果任何⼀个语句操作失败那么整个操作就会失败, 会回滚到之前的状态.要么全部执⾏, 要么⼀个都不执⾏.
锁: DBMS中, 锁是实现事务的关键.
integer java9. 什么叫视图? 游标是什么?
视图就是⼀种虚拟的表, 具有和物理表相同的功能. 可以对视图进⾏增改查操作, 视图通常是⼀个表或多个表的⾏或列的⼦集
游标是遍历结果集的⼀个指针, ⽤来逐条处理数据
10. 视图的优缺点?
优点: 对数据的选择性访问
⽤户可以通过简单的查询从复杂查询中得到结果
维护数据的独⽴性
对相同的数据产⽣不同的视图
缺点: 性能
11. 列举⼏种表连接的⽅式,有什么区别?
左连接: 左边为主表表数据全部显⽰, 匹配表的不匹配部分不显⽰
右连接: 右边为主表表数据全部显⽰, 匹配表的不匹配部分不显⽰
内连接: 只有两个元素表相匹配的才能在结果集中显⽰
全外连接: 连接中的不匹配的数据全部会显⽰出来
交叉连接: 笛卡尔乘积, 显⽰的结果是连接表数的乘积
12. 主键和外键的区别?
主键在本表中是唯⼀的,不为空的, 外键可以重复和为空.
外键和另外⼀张表相关联, 不能创建对应表中不存在的外键.
13. 在数据库中查询语句速度很慢, 如何优化?
建⽴索引
减少表之间的关联
优化SQL语句
简化查询字段
14. 数据库三范式是什么?
mysql面试题基础知识 第⼀范式: 列不可再分
第⼆范式: ⾏可以唯⼀区分, 主键约束
第三范式: 表的⾮主属性不能依赖其他表的⾮主属性外键约束
15. union和union all有什么不同?
union会删掉重复的记录, union all不会
16. varchar2和varchar有什么区别?
varchar2是Oracle⾃⼰开发的, ⽬前varchar2和varchar是同义词, 关键点是varchar是可变长度的, 可以根据实际的长度来存储17. oracle和mysql的区别?
库函数不同
Oracle是⽤表空间来管理的, mysql不是
SQL语句不同
分页查询不同
18. oracle语句有多少类型?
DDL, DML, DCL
DDL: 建表,建数据库,建⽴约束,修改约束,权限修改
DML: insert, update, delete
DCL: 管理⽤户权限
19. oracle的分页查询语句?
select * from table where row_num between 1 and 10;
20. 从数据库中随机选择50条?
select * from (select * from example order by dbms_random.random) where rownum <= 50;
21. order by与group by的区别?
order by是排序查询
group by是分组查询 having只能在group by之后, 使⽤group by查询的语句需要使⽤聚合函数
22. commit在哪⾥会运⽤?
Oracle的commit就是DML语句提交数据. 在未提交之前你的操作都是保存在内存中, 没有更新到物理内存中.
执⾏commit从⽤户⾓度来讲就是更新到物理⽂件了. 事实上commit还写⼊了⽇志⽂件
23. ⾏转列, 列转⾏怎么转?
使⽤decode函数, 或者使⽤case when语句
24. 什么是PL/SQL?
PL/SQL是⼀种程序语⾔,叫做过程化SQL语⾔, PL/SQL是对oracle数据库对SQL语句的扩展.
在普通的SQL语句的使⽤上增加了编程语⾔的特点. 通过逻辑判断,循环等操作来实现复杂的功能或者计算.
PL/SQL只有Oracle数据库有, mySQL现在不⽀持PL/SQL
25. 序列的作⽤?
Oracle使⽤序列来⽣成唯⼀的编号, ⽤来处理⼀个表中的⾃增字段.
26. 表和视图的关系?
视图其实就是⼀条查询语句, ⽤于显⽰⼀个或多个表或其他视图中的数据, 表就是关系型数据库中实际存储数据⽤的.
27. oracle基本数据类型?
字符串 char nchar varchar varchar2 nvarchar2
正则表达式工具安卓版 数字 number integer
浮点 binary_float binary_double float
⽇期时间 date timestamp
字符块 blob clob nclob bfile
28. truncate与delete的区别?
delete table: 删除内容, 不删除定义, 不释放空间
truncate: 删除内容和定义,释放空间
29. oracle获取系统时间?
select to_char(sysdate,"yyyy-MM-dd") from dual
30. oracle如何去重?
使⽤distinct关键字
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论