没有合适的资源?快使用搜索试试~ 我知道了~
oracle关系型数据库
需积分: 0 0 下载量 153 浏览量
2023-02-22
10:55:17
上传
评论
收藏 3.47MB DOCX 举报
温馨提示
试读
19页
其中包括索引原理,创建索引,视图,触发器,sql中的函数,以及简述各种优缺点和区别等等
资源推荐
资源详情
资源评论
1、 什么是关系型数据库管理系统?
由关系、数据、数据之间的约束三者所组成的数据模型则称为 RDBMS,即关系型数据
库管理系统。
2、 简述几种主流的数据库及其厂商。
Oracle 数据库时著名的 Oracle(甲骨文)公司的数据库产品,Oracle 数据库时世界
上第一个商品化的关系型数据库管理系统;Oracle 数据库采用标准 sql(结构化查询语
言),支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持 UNIX,
WINDOWS, OS/2 等多种平台;Oracle 公司的产品丰富,包括 Oracle 服务器、Oracle 开发
工具和 Oracle 应用软件,其中最著名就是 Oracle 数据库。
DB2 是 IBM 公司的关系型数据库管理系统。DB2 有很多不同的版本,可以运行在从
掌上产品到大型机不同的终端及其上;DB2 Universal Database Personal Edition 和 DB2
Universal Database Workgroup Edition 分别是单用户和多用户系统,可以运行在 OS/2 和
Windows 上;DB 是 Oracle 的主要竞争对手。
Sybase 是美国 Sybase 公司的关系型数据库系统。Sybase 是较早采用 C/S 技术的数据
库厂商,典型的 UNIX 或 Windows NT 平台上客户机/服务器环境下的大型数据库系统;
Sybase 通常与 Sybase SQL Anywhere 用于客户机/服务器环境,前者作为服务器数据库,
后者为客户机数据库,采用该公司研制的 PowerBuilder 为开发工具,在国内大中型系统
中具有广泛的应用;Sybase 公司 2010 年被 SAP 收购。
Microsoft SQL Server 是微软的产品,运行在 Windows NT 服务器上,Microsoft、SQL
Server 的最初版本使用于中小企业,但是应用范围不断扩展,已经触及到大型、跨国企
业的数据库管理。
MySql 是开放源码的小型关系型数据库管理系统,广泛应用在中小型网站中,成本
低、规模较 Oracle 和 DB2 小;08 年 1 月 16 日,Sun 收购 MySQL。09 年 4 月 20 日,sun
被 Oracle 公司收购,所有 MySQL 现在属于 Oracle。
3、 简述结构化查询语言的分类。
a) 结构定义语言(DDL):Data Definition Language
b) 操纵语言(DML):Data Manipulation Language
c) 事物控制语言(TCL):Transaction Control Language
d) 数据查询语言(DQL):Data Query Language
e) 数据控制语言(DCL):Data Control Language
4、 简述 date 和 timestamp 的区别?
a) date 的最小单位是毫秒,timestamp 包含小数位的秒,如果需要秒一下的单位,
需要用 timestamp。
5、 简述索引的原理及创建索引的意义。
索引是对表的一列或多列进行排序的结构,因为绝大多数的搜索方法搜索排序结构
时效率都会大大提高,所以如果表中某一列经常被作为关键字搜索,则建议对此列创建
索引。
索引提供指针以执行存储在表中指定列的数据值,根据指定的排序次序排列这些指
针。数据库使用索引的方式与使用书的目录很相似;通过搜索索引找到特定的值,然后
跟随指针到达包含该值的行。
6、 简述视图的意义?
简化复杂查询,如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,
此后查询此视图即可。
限制数据访问。视图本质上就是一条 SELECT 语句,所以当访问视图时,只能访问到
所对应的 select 语句中设计到的列,对基表中的其他列起到安全和保密的作用。
7、 触发器分为事前触发和事后触发,这两种触发有何区别?语句
级触发和行级触发有何区别?
事前触发器运行于触发事件之前,而事后触发器运行与触发事件发生之后,通常事
件触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,
而行触发器所影响的每一行时都会触发一次。
简单而言,时间触发主要是验证一些条件或进行一些尊卑工作,在数据保存之前触
发,而事后触发则是进行收尾工作,保证事物的完整性,在表经过修改以后才触发。行
级触发器是对 DML 语句影响的每个行执行一次,如 UPDATE 语句影响多行,就会对每行
都激活一次触发器,而语句级触发器是对每个 DML 语句执行一次,如 INSERT 语句在表
中即使插入了 100 多行,表上的 INSERT 语句级触发器也会只执行一次。
8、 sql 语句中 exists 和 in 有何区别?sql 语句优化有哪些方法。
exists 是用循环 loop 的方式,由 outer 表的记录数决定循环的次数,对于 exists 影响
最大,所以,外表的记录数少,适合用 exists;in 先执行子查询,子查询的返回结果去
重之后,再执行主查询,所以,子查询的返回结果越少,越适合用该种方式。
sql 语句的优化方式如下:
尽量避免非操作符的 使用,在索引列上使用 not、<>等非操作符,数据库管理系统
是不会使用索引的,可以将查询语句转换为可以使用索引值的查询。
避免对查询的列的操作,任何对列的操作都有可能导致全表扫描,这里所谓的操作
包括数据库函数、计算表达式等,查询时要尽可能将操作移至等式的右边,甚至去掉函
数。
避免不必要的类型转换,需要注意的是,尽量避免潜在的数据类型转换,如将字符
型数据与数值型数据比较,会自动将字符进行转换从而导致全表扫描。
增加查询的范围限制,避免全范围的搜索。
合理使用 in 与 exists。例如:有 A,B 两个表,他们分别使用的情况:
当只显示一个表的数据 A,关系条件只有一个 ID 时,使用 in 更合适,sql 语句:
seletct * from a where id in (select id from b);
当只显示一个表数据 A,关系条件不只一个列,关系条件设计到列为 id,col 时,使
用 in 就不方便了,可以使用 exists。
select * from a where exists(select 1 from b where id = a.id and col = a.coll);
9、 说说你对数据库事务隔离级别的理解。
10、 在数据库中条件查询速度很慢的时候,如何优化?
11、 请说明数据库主键、外键的作用?
主键作用:能保证设置的主键的列非空且唯一。另外,在定义主键时,如果这列之
前没有索引,系统会为其创建唯一性的索引。
外键作用:能保证设置外键的列取值必须匹配父表中已有的值,通过外键可以与同
一张表的列建立引用关系,也可以与不同表的列建立引用关系。
12、 索引的优点和缺点是什么?
索引的优点如下:
1)、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性;
2)、可以大大加快数据的检索速度,这也是创建索引最主要的原因。
3)、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
4)、在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序
的时间。
5)、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
索引的缺点如下:
1)、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;
2)、索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的
物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
3)、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就
降低了数据的维护速度;
4)如果给不适合创建索引的列创建了索引,不会提高性能。
13、 主键和索引的区别?
剩余18页未读,继续阅读
资源评论
WGY_NOBUG
- 粉丝: 62
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功