注释:comment
对表本身或者每个字段加以说明,使初次接触该表的人能尽快了解
表注释:
语法:
comment on table 表名 is '注释内容'
comment on table emp is '员工信息表'
列注释:
comment on column 表名.列名 is ''
comment on column emp.empno is '员工编号'
修改注释:
comment on table 表名 is '新注释内容'
comment on column emp.empno is '新内容'
删除注释:
comment on column 表名 is '空,什么都不写,两个单引号'
comment on column 表名.列名 is '空,什么都不写,两个单引号'
注释:
1.删除注释的时候不能用null,只能用''
2.添加注释只能一个个添加
3.使用快捷建表所有的注释都会被忽略
索引:index
指向表中的数据,通过建立索引可以提高查询效率,依赖于表存在,添加索引的列最好是唯一列
oracle 会自动使用和维护索引,会影响dml操作效率
伪列:可以理解为一种伪装起来,不容易看到的列,除非你特意查询才能看到
rownum:是对查询结果自动生成的从1开始连续的自然数序号
select *,rownum from emp /* 想要和其他列一同展示,必须加表名归属
select emp.*,rownum from emp
///找到emp 中前三个员工信息
select emp.*,rownum from emp where rownum<=3
第三个员工信息,第三个以后查询都是空
找到不是第三个员工信息,查询返回第一个第二个员工信息
结论:
查询必须包含第一条数据
工资前三名:
select * from emp order by sal desc
select a.*,rownum from (select * from emp order by sal desc) a where rownum<=3
rowid
类似于身份证,每一条数据存入数据库时,oracle 会自动生成一条固定不变的惟一的18位的字符串
,用来记录该条数据在数据库中的物理位置
select emp.*,rowid from emp
总结:
1.伪列需要查询才能看到
2伪列不能修改
3.伪列在查询时不需要加表名归属
索引:index
指向表中的数据,通过建立索引可以提高查询效率,依赖于表存在,添加索引的列最好是唯一列
oracle 会自动使用和维护索引,会影响dml操作效率
全盘扫描
按照条件在对应的数据列,从第一条数据检索到最后一条数据,然后一旦条件符合取出对应的rowid,然后根据rowid找到物理位置取出整行数据
索引扫描
按照条件在对应的索引列,从大概位置开始检索,检索到最后一条符合条件的数据为止,
取出对应的rowid,然后根据rowid找到物理位置取出整行数据
rowid扫描
取出对应的rowid,然后根据rowid找到物理位置取出整行数据