第二次测试中出现的知识不足

来源:互联网 发布:阿里云提供的服务 编辑:程序博客网 时间:2024/06/03 11:19

视图:视图是一个或多个表的部分数据,它可以像表一样进行操作。但没有具体的存储数据结构,他以一个select语句的形式存在数据库中,视图修改后的数据在表中也会被修改。
本质:是一条有名字的select语句
表现:一到多张表的部分内容
作用:提高检索的效率
防止未授权用户查看特定的行列,用户只能看到表中特定行的方法如:
1、表中增加一个标志用户名的列。
2、建立Oracle视图,用户只能看到标有自己用户名的行。
3、把视图授权给其他用户。

索引:Oracle中的一种对象,数据库用其以加快检索速度,几乎所有关系型数据库中都采用b*tree类型索引,也是被最多使用的其树结构与二叉树类似,根据rowid快速定位所访问的记录。相当于目录。
在创建主键约束、唯一性约束以及使主键约束、唯一性约束生效时会自动创建唯一索引。

游标:从表中检索出结果集,从中每次指向一条记录进行交互的机制。
作用:
1、指定结果集中特定行的位置。
2、基于当前的结果集位置索引一行或连续的几行。
3、在结果集的当前位置修改行中数据。
4、对其他用户所做的数据更改定义不同的敏感级别。
5、可以以编程的方式访问数据库。

DDL语言 数据库定义语言:用于定义数据库的三级结构,包括外模式、概念模式、内模式及相互之间的映像,定义数据的完整性、安全控制等约束,不需要commit;
比如:cteate,alter,drop,truncate,comment,rename,
DML语言
数据操控语言,需要commit
比如:select,insert,update,delete,marge,call,explain,plan,lock table
TCL事务控制语言
savepoint设置保存点
rollback回滚
set transaction
DCL数据库控制语言,授权,角色控制等
grant授权 revoke取消授权

nvl(可能出现空的位置,出现空值后的默认值)
nvl2(可能出现空值的位置,没出现空值返回的值,出现空值返回的值)

伪列rownum
使用伪列实现分页技术
select *
from (
select id as i,t.*
from table_name t
where id<大值
) a
where a.i>小值

trunc对指定小数截去前或后的部分。
trunc(被处理的数字,保留小数点后的位数,默认0)
round四舍五入
ceil(n)取大于等于等于n的最小整数
floor(n)取小于等于数值n的最大整数
mod取余

显示当前时间的方式
select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’)
from dual;

数据库事务的特性:原子性,一致性,隔离性,持久性

执行脚本sql文件的两种方式@name.sql,start name.sql

delete 删除数据,不删除表结构,慢,需要commit,保存在日志文件中
truncate 删除数据,不删除表结构,快,不需要commit,无法恢复。
drop 删除表结构,删除数据,快,不需要commit;

oracle中_表示占位符,可以代表一个字符
%表示通配符,可以代表0个或多个字符

查询last_name首字母大写用户
select * from s_emp,
where substr(upper(last_name),0,1)=substr(last_name,0,1)

删除用户drop user user_name cascade;
授权 grant 权限(角色) to 用户;

Dom解析把文档中的所有元素,按照出现的层次关系,基于内存的一种解析方式。
优点:把xml文件在内存中构造树形结构,可以遍历和修改节点。
缺点:如果文件比较大,内存有压力,可能无法解析或者解析时间延长。
Sax解析速度更快,更有效。逐行扫描文档,一边扫描,一遍解析。sax可以在解析文档的任意位置停止,是基于事件的一种解析方式。
优点:解析可以立即开始速度快没有内存压力。
缺点:不能对节点做修改。

PrepareStatement和Statement的关系和区别
1、PrepareStatement是Statement的子类。
2、statement直接执行拼接好的sql语句,无法防止sql注入,而prepareStatement是预编译,后面传入的直接当作一个字符串处理。
3、性能
prepareStatement
一、addBatch()将一组参数添加到prepareStement对象内部。
二、executeBatch()将一批参数提交给数据库执行,如果全部命令执行成功,则返回更新计数组成的数组。
Statement
一、addBatch()在批处理缓存中加入一条sql语句。
二、executeBatch()执行批处理缓存中所有的sql语句。