一.rowid和rownum 伪列
1.rowid相当于对象的地址,唯一标识每一条记录;如果没有主键或唯一字段,可根据rowid去重;
2.rownum 是结果集的序号,只要有一个结果集,结果集中的每一条数据就有对应rownum的值;
3.rownum还具有分页的功能,前提是有满足条件的数据源 这个结果集中已经确定了rownum;在根据规律来;
二.视图和索引
1.视图:建立在表和临时结果集之间的视图;视图为虚拟表:不是真实存在,但是可以使用;
2.创建:create or replace view 视图名 as 查询语句 with read only;
删除:drop view 视图名;
3.授权: grant dba to SCOTT; 回收: revoke dba from SCOTT;
4.索引的特点:1》对用户而言是透明的;2》在大量的数据的查询时候,提高查询效率,大量做增删效率低;3》索引是数据库对象之一,需要维护;4》索引的添加与删除不影响数据库中数据的使用;
5.create index 索引名 on 表(字段);drop index 索引名;
三.表设计
1.表由表名、字段(名称+类型+约束)、记录 组成;
2.三范式:列不可再分,主键依赖,确定唯一;建立主外关联,拆分表;
3.约束:主键,外键,唯一,非空,检查;
4.约束的添加:1》物理的约束:在表中的字段上添加;2》逻辑的约束:java代码上使用逻辑判断;
5.添加时机:1》先创建表,后续追加约束;2》创建表结构结束之前添加约束;3》创建表的同时为字段添加约束 1)指定约束名字 2)不指定约束名字;
6.创建表的同时,在字段后直接添加约束,不指定约束名: 简单 ,不便于后期维护;
7.创建表同时添加约束 字段后直接指定约束并指定约束名,便于后期维护;
8.删除表:1》默认先删除从表,再删除主表;2》casecade constraints 删除主表的同时级联删除主从表约束;
9.删除数据:1》删除从表数据 可以直接删除;2》删除主表数据:1》删除的为主表中没有被从表中数据所引用的主表数据,可以直接删除;2》有引用时默认先删除从表引用的数据,再删除主表中数据;