看一条sql语句的执行时间:
打开:set timing on
关闭:set timing off
显示表的信息:
desc 表名;
-----------------
*******视图:
第一次一般是不能创建视图
因为没用权限,需要超级管理员给权限给scott用户
1. 登陆conn /as sysdba
2 grant create view to scott
3.切换用户 conn scott/root
创建视图:
create view myview
as
select empno id ,ename name,sal ,(sal*12) total from emp
with read noly
with read noly 只读,不能进行增删改
使用视图不可提高效率
创建一个视图,用于方便的查询:部门名称,员工数量,平均工资
create view myview2
as
select dname 部门名称,count(d.dname) 员工数量 ,avg(sal)平均工资
from emp e,dept d
where e.deptno =d.deptno
group by d.dname ,sal
修改视图:
alter view 视图名
as
.....与创建同理
drop view 视图名;
----------------------
序列:
创建序列: 有两个虚列:nextval,currval
注意:当一次使用时,用currval是报错的,这是因为第一次情况下指定不是1,所以不能显示;
所以第一次一定是使用nextval
create sequence 序列名;
例: 其实就是相当于mysql中的auto_increment,sql server中的identity(1,1)
作为自增长的一列:
创建序列: create sequence myseq;
insert into t_user(id,name) values(myseq.nextval'张三');
修改序列:
alter sequence myseq
maxvalue 20
cache 10
cycle
删除序列
drop sequence 名称;
查询:
下一个:select myseq.nextval from dual;
当前值:select myseq.currval from dual;
使用序列可能出现裂缝:
1.回滚
2.系统异常
3.多个表同时使用一个序列
查询当前用户序列
select *from user_sequences;
---------------------
索引:
create index T_user_deptno
on 表名(列名)
查看索引信息:
select *from user_indexs;
drop index 索引名:
-------------------
同义词: 也就是相当于给表创建一个别名,只是说那个别名仅限于当前sql 语句,而这个一直能用
创建同义词:
create synonym 现名 for 原表名
一般情况下:需要对当前用户进行授权
用超级管理员登陆:conn /as sysdba
进行创建同义词授权: grant create sysnonym to 当前用户;
切换到当前数据库:
conn scott/root
创建同义词:
create synonym tt for T_user;