数据库基本知识点_第1页
数据库基本知识点_第2页
数据库基本知识点_第3页
数据库基本知识点_第4页
数据库基本知识点_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库基本知识点/*1.什么是索引?有什么作用?有什么缺点?你知道的索引有那些?*/是怎么作用的? 索引:一种数据库对象,创建在表的一个或者多个列上面,提高数据查询效率 作用:提高数据检索的效率 缺点: 1.需要给分配单独的空间,比较耗内存 2.如果索引经常进行一些DML相关,会产生碎片,碎片超过一定的比例,索引会失效,所以索引需要经常维护 索引分类:列的个数:单列索引和复合索引 根据是否有唯一约束:唯一索引 非唯一索引 索引的抑制:什么情况下索引不起作用: 强制转换函数、<>、在索引列直接进行运算、|、%在第一个位置在检索数据时不进行全表扫描,只通过某一列的索引即可快速定位数据记

2、录在存储设备上的位置,从而大大加快检索速度。一个简单的道理是:数据越少你试图找到特定记录的时间越短/*2.什么是视图?与表有什么区别?有什么作用?*/ 视图:数据库对象,实质上是封装了一条SQL语句 与表的区别:1.表表结构能存储数据,视图没有结构也能存储数据 2.表访问数据来自于表中存储的数据,而视图的数据来自于它所封装的SQL语句; 视图的作用:让复杂的查询简单话,提高查询效率 /*3.关于数据库的只读,你了解多少?*/ 知道只读相关的知识:1.创建只读视图 2.数据字典里面的所有视图全是只读的/*4.序列是用来干什么的?*/ 序列:连续的整数生成器,用来给表中生成主键、编号、测试数据/*

3、6.tablespace、segment、extent、block之间是什么关系?*/ tablespace:表空间 segment:段 extent:区间 block:块具体表述:数据块(data block) 是oracle最小的逻辑部件,数据块大小合适的选择可以提高性能;区段(extent)由几个相邻的数据块组合在一起;段(segment)有一组区段构成;表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是包含数据的数据文件尺寸的总和,是oracle 主要的逻辑存储结构。/*7.系统自带的表空间有那些?*

4、/ system:系统表空间、users:用户表空间、临时表空间(事物临时on commit delete rows和会话临时on commit preserve rows )、回滚段表空间 分析函数是SQL语言的一种扩充,它不仅仅使得代码变得简单而已,它的速度比纯粹的SQL或者PL/SQL更快。 /*8.新建立的用户,要正常登陆数据库,需要授予什么权限?*/ grant resource to scott; grant connect to scott; /*9.什么是db-link?如何创建?*/ db_link:数据库提供的一种在本地数据库访问远程数据库的方法 创建:1.直接创建 2.先

5、将远程数据库的服务相关信息存储在本地数据的tnsnames.ora文档里面,然后再创建/*10.什么是分区表?有什么作用?你知道的都有那些分区表?*/¤分区表通过将数据存储在不同的段中,使得一张表中的数据在物理上分离,而逻辑上还属于一张表,从而提高了数据查询的效率,¤表分区的优缺点优点:1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;4、均衡I/O:可以把不同的分区映射到不同磁盘以平衡I/O,改善整个系统性能

6、。缺点: 分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。¤分区表包括:范围分区、列表分区、散列分区、复合分区。范围分区将数据基于范围映射到每一个分区,这个范围是在创建分区时指定的,当使用范围分区时,请考虑以下几个规则:1.每一个分区都必须有一个VALUES LESS THAN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中;2.所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值;3.在最高的分区中,MAXVALUE代表了

7、一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THAN的值,同时包括空值。/*11.drop、truncate、delete三者的作用*/ drop是直接删除表,系统自动提交,属于DDL语言命令; truncate是直接清空表中的所有数据,不删除表,无法添加限定条件,系统自动提交属于DDL语言命令; delete是根据where限定条件删除表中的一条或者多条语句,需要用户手动提交或者回滚,属于DML语言命令;DDL:数据定义语言(隐式事务),例:CREATE、ALTER、DROP、REVOKE、FLASHBACK、PURGE、COM

8、MENT、RENAME、TRUNCATE;DML:数据操作语音(显式事务),例:INSERT、UPDATE、DELETE、SELECT、MERGE /*12.什么是事务?有什么特点?*/ 一条或者多条SQL语句组成的一个逻辑单位,特点:统一提交统一回滚(事务是不可分割的工作单元,一个事务中的所有SOL语句要么全部执行,要么全部不执行) 分类:隐式事务(DDL) 显示事务(DML)/*13.如何删除一张表中的重复记录?*/ rowid:表中每以条记录的物理标识,系统自动生成,没有重复的rowid出现 删除重复记录可以通过rowid删除/*14.DML命令都有那些?*/ Insert,delete

9、,select,update,merge/*15.给一张表批量插入数据,用什么可以快速实现?*/insert into /*16.函数与存储过程的区别?*/存储: 存储过程实质上是通过一系列的SQL语句,根据传入的参数(也可以没有),通过简单的调用,完成比单个SQL语句更复杂的功能,存储过程存储在数据库的SQL程序段中。比较:与存储过程相比,函数有且只有一个返回值(返回值必须通过return定义),对于需要返回多值的情况,可用out来返回参数。一般存储过程实现的功能要复杂一些,函数实现的功能针对性很强,譬如计算等。/*17.什么是游标?分为几种?游标的作用?游标的缺点?如何改进?*/游标实际上

10、是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。分为显式游标和隐式游标和REF游标游标的作用:游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果游标的缺点:速度慢,占内存如何改进:通过for循环批量处理来实现和游标一样的功能/*18.什么循环需要设置结束条件(基本循环)?*/loop end loop、if-then end if、case-when-then end case、/*19.数据库中锁的概念*/ 数据库提供了很多类型的锁,主要目的是为了维护数据的完整性 死锁:多个进程陷入互相等待中,就会产生死锁。/*20.如何给用户授权?*/以管理员登录,grant命令/

11、*21.char与varchar2什么区别?BILOB,CLOB分别是什么意思?*/ number:数值型,特点是不能以0开头 date:日期型,特点不能指定长度,有固定格式 char:字符型 定长 varchar2:字符型 变长 blob:大对象类型 以二进制的形式存储大对象 一般是音频、视频 clob:大对象类型 存储的是字符型的大对象 譬如txt文档/*22.什么是情况下需要分组?*/ 分组用的是group by 当一条SQL语句出现了聚合函数(也叫列函数),和非聚合函数的列,必须用分组查询 将所有的非聚合函数的列,全部放在group by后面,列与列之间用逗号隔开。/*23.内连接、自

12、连接、外连接分别是什么意思?*/ 内连接:两张表进行关联查询,显示出来的结果是完全满足关联条件的 外连接:两张表进行关联。将其中一张表中不满足条件的结果也显示出来 自连接:特殊内连接,特殊在一张表被多次应用,是指上是用表中的一个列关联另外一个列;/*24.left join/right join/full join/left outer join/right outer join/inner join分别表示什么意思?*/ left join:左连接 left outer join:左外连接->结果是一样的 right join右连接 right outer join右外连接->结

13、果是一样的 full join:全连接 是将关联的两张表中不满足条件的记录全部显示出来 inner join:内连接/*26.一张删除的表,还能否找回来?*/ 一张表被删除之后,如果没有清空回收站的情况下,可以通过闪回(flashback)技术找回例:flashback table emp1 before drop;/*27.表中的数据被更改之后且已经提交,能否找回?*/基于时间的闪回:as of timestampselect * from myemp as of timestamp sysdate-1/1440;28. 什么是数据字典?存放有关数据库描述信息的数据,对用户来说是一组只读的表

14、29. 如何实现存储过程的自动调用?job是用来自动调用存储过程的30. 什么是触发器?触发器是一种特殊的存储过程,特殊在其是自动调用的,触发器按作用分为错误报告触发器、替代触发器、系统触发器等,按类型分为行级触发器和语句级触发器。行级触发器与语句级触发器的区别是:当某一操作结果只影响一行时,语句级触发器与行触发器效果相同,当操作影响到数据库多行数据时,语句级触发器只触发一次,而行级触发器触发多次。数据库优化问题:1. in与exists的区别? EXISTS 是判断是否存在,和in类似,但效率要比in高而 exists 与 in 最大的区别在于

15、0;in引导的子句只能返回一个字段 in先执行子查询,然后执行外部查询 exists先执行外部查询,然后与子查询进行匹配,满足条件就显示出结果 当限定性条件强的查询在子查询,用in,在外部查询,用exists,整体上来说,很多时候,exists都比in优化2.优化技巧 大表靠前 e.deptno=d.deptno 尽量调用索引列:限定条件里面能用到索引列,尽量用索引列 尽量不用子查询:子查询方便,但是所有的子查询在这行的过程中,其实都转换成了多表关联的形式 select ename,sal from emp where deptno in(select deptno from dept whe

16、re dname='A'); select e.ename,e.sal from emp e,dept d where e.deptno=d.deptno and d.dname='A' 避免隐式排序 union与union all的区别:union去除重复值,union all不去除重复值 distinct:也会隐式排序 加条件防止笛卡尔积 多张表进行关联的时候,一定得设置限定条件,不设定限定条件就会产生笛卡尔积 merge 两张表进行数据匹配的时候,用merge,整合了insert和update的用法 避免索引抑制 在索引列直接进行运算,在索引列使用强制转换

17、函数,在索引列使用不等于等等,经常对索引进行重构 均会抑制索引 在创建表的时候,创建为分区表(正常表将数据存储在一起,分区别是将数据分为好几块,存储在不同的地方) 时常清理回收站(purge recyclebin)、注意SQL语句书写的优化、绑定变量(减少CPU的损耗)3.大表更新(对一张数据量很大的表,如何更新数据,或者说给一张表插入大量的数据) 采用sqlloader更新数据,速度很快,还没讲,这两天就要学习5. 一张表数据量很大,如何维护?重建索引、数据分表存储、定期建立analyze(分析表)6. 如何提高数据库的运行性能1、 查看是不是网络环境造成的2、 增强服务器的硬件和周外配置3

18、、 优化数据库服务器4、 数据库对象。数据库对象包括表、视图、索引、关键字等。我们可以通过对这些对象的调整实现提升数据库性能的目标。例如,在视图设计时,应尽量把其显示的内容缩小,并且多增加视图。5、 SQL语句。需要和DBA的配合,DBA(数据库管理员)需要利用自身的管理经验和技巧,与SQL优化器配合操作,改进数据库运行性能。8.并行度 /*+paralell(emp,4)*/在SQL * LOADER中使用直接路径(direct path)装载数据; 执行create table . as select语句; 执行并行插入语句;执行串行插入语句并且使用append提示。11. decode、

19、case的用法decode(判断条件,条件1,结果1,条件2,结果2,默认值);case(when 判断条件,条件1,then 结果1 else 0 end)-linux1. 怎样实现任务的定时调度?crontab -e 编辑 -l 查看列出 -r 删除基本格式 :  *   *   *   *   *  command 分  时  日  月  周  命令 

20、2. 常见的安装软件类型,以及卸载?超链接3. SSH /FTP/TELNET作用?SSH:安全外壳协议,专为远程登录会话和其他网络服务提供安全性的协议FTP:文件传输协议,用于Internet上的控制文件的双向传输TELNET:远程终端协议,是常用于远程控制Web服务器的方法。4. 如何实现重命名?mv5. 在VI编辑中怎样添加序列号?set nu6. 进程命令?查进程:最常用的方法是ps -aux,(显示所有状态)然后再通过管道使用grep命令过滤查找特定的进程杀进程:killps和top的 区别:ps看到的是命令执行瞬间的信息,只是查看进程 Top可以持续的监视系统的性能,还可以操作进程

21、,查看优先级 7. 怎样修改IP?详细摘要:-修改ip地址-IP即时生效:# ifconfig eth0 55 netmask 重启生效:修改vi /etc/sysconfig/network-scripts/ifcfg-eth0-修改default gateway-网关即时生效:# route add default gw 重启生效:修改vi /etc/sysconfig/network-scripts/ifcfg-eth0-修改dns-域名系统修改vi /etc/resolv.conf修改后即时生效,重启同样有效-修改h

22、ost name-主机名即时生效:# hostname test1重启生效:修改vi /etc/sysconfig/network8. 网络配置?防火墙怎么关闭?1、 进行简单的配置#ifconfig eth0 XXX.XXX.XXX.XXX IP配置#route add default gw XXX.XXX.XXX.XXX 网关配置()#echo "nameserver XXX.XXX.XXX.XXX" DNS(域名系统)配置2、 用静态的方式配置网络,直接对配置文件进行修改由于不同的操作系统的网络配置文件位置不同,可以使用命令进行搜索:#locate ifcfg | grep ethX(X代表定义号)然后进入配置文档进行修改:#IPADDR=XXX.XXX.XXX.XXX#GATEWAY=XXX.XXX.XXX.XXX#DNS=XXX.XXX.XXX.XXX以上三个就是主要要修改的参数。防火墙的关闭:service iptables stop9. 怎样实现文本内容的检索?用通配符:grep 'xx|aa|bb' *.txt10. 删除,复制,移动?rmdir 或者 rm -rf cp- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为

温馨提示

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

评论

0/150

提交评论