行号(rownum)
关于rownum:
rownum 有个特点要么等于1 要么小于某个值, 不能直接等于某个值, 不能大于某个值。
rownum常用于分页显示。
rownum只用于读入内存的数据。
关于同义词:
同义词:相当于别名的作用(***只需了解***)系统自建的同义词:
user_tables
create synonym asd_s_emp for asd_0606.s_emp ;
目的就是为了给asd_0606_s_emp表起另一个代替的名称asd.s_emp;注意这个同义词只能自己使用;
create public synonym p_s_emp fro asd_0606.s_emp; 创建公共的同义词,但是要权限.
删除同义词:
drop synonym 同义词名称
索引(index)
创建索引:Creating indexes(概念很重要对系统的性能影响非常大)
建索引的目的就是为了加快查询速度。
索引就相于一本的书的目录。索引点系统空间,属于表的附属物。删除一个表时,相对应的索引也会删除。索引是会进行排序。
truncate 表时索引结构在,但是数据不存在。
full table scan 全表扫描
用索引就是为了快速定位数据:(理解时就以字典的目录为例)
创建索引就是创建key和记录的物理位置(rowid)组成的键值对。索引是有独立的存储空间,但是和表是逻辑关联的,索引和表的关系是依附关系,表被删除了,索引也没有存在的意义也就被删除了
在建表时会根据表中的PK或UK自动的建立唯一性索引。
查看表的rowid:
select rowid,first_name from s_emp;
rowid 定义的信息有:object block table
每条记录都有自己的rowid
索引由谁创建:用户,建索引后会使DML操作效率慢,但是对用户查询会提高效率,这就是我们建索引的最终目的。
创建一个索引:
create index 索引名 on 表名 (字段名);
create insex testindex on test(c1, c2);
索引分为唯一性索引,联合索引。索引中是不会维护空值的。
哪些字段应该建索引:创建索引就是为了减少物理读,索引会减少扫描的时间。
经常要用where的子句的地方,所以要用索引.用不用索引,关键要看所查询的数据与所有数据的百分比,表越大,查询的记录越少,索引的效率就越高.
替换变量:用&符号来定义替换变量支持交互性提示,对于字符性的数字,一定要写在单引号之间
set verify on 替换开启
set verify off 替换关闭
定义变量:
define p_dname='abc'; 用define定义的替换变量的作用范围是整个sqlplus
更改交互的提示信息:
accept p_dname prompt ' 提示信息';
accept就是可以加入提示信息其他方面和define功能相同
相当于开关变量,用于控制是否显示新旧的sql语句
例:select id,last_name,salary from s_emp where title='&job_title';