子查询 oracle输入 set语句 MERGE 事务 数据类型 约束 视图 外键

来源:互联网 发布:汽车车身尺寸数据大全 编辑:程序博客网 时间:2024/05/18 08:33
 

1- 子查询
select  count(*)  from t1 where t1.score > any (select score from t1 where t1.name='zhangjia' )
等价于 :select * from t1 where t1.score >  (select min(score) from t1 where t1.name='zhangjia' )
等价于:select count(*) from t1 where t1.score  in (select score from t1 where t1.name='zhangjia' );
select * from t1 where t1.score > all (select score from t1 where t1.name='zhangjia' )
all 大于最大的
any 大于最小的
in  进行等值判断

2- oracle输入 
select &a+&b from dual --oracle输入输出:会提示输入参数a、b

3- set语句
set pagesize 10 设置页大小
set linesize 20 设置列的显示宽度

4- 格式控制:控制长度等属性
可以控制列显示的宽度;
对于字符用'a' 数字用
col NAME FOR  a10 --设置设置name列的显示宽度为10

select
注:oracle输入、set语句、格式控制三种命令属于sqlplus 不属于oracle

5 - MERGE
oracle的DML共四条语句  insert /update /delete /merge

merge into t2 using t1 on (t1.emp_no=t2.emp_no)
when matched then
  update set  t2.name=t1.name;                 --若编号相同 更新t2表数据 ;编号不匹配插入数据
  when not matched then
    insert value(t1.emp_no);

create table t3 as select name myname from t2; --创建有字段myname的表 t3
insert update 也可以有子查询
insert into (select name from t2) values('fff');
truncate --删除数据 直接从内存删除;
truncate table t3
select * from t3

alter table t3 rename to t4                    --表改名

6- 事务
原子性、并发性、持久性 、隔离性
可以建立保留点,将来可以回滚到指定点
savepoint t1                  --保留点
rollback                      --回滚所有忽略保留点
rollback  to savapoint t1     --回滚到保留点t1;
隐式事务处理

7- 数据类型
timestamp                     --时间精度更高
INTERVAL
timestamp (4) with time zone  --时间精度为‘4’ 设置时区


8- 约束;对数据库的数据进行控制
not null
unique  --唯一性 针对非空
check
alter table user_info modify id not null ;                                  --新增非空约束
alter table user_info add constraint pk_aa_ID  unique(ID,SEX);              --创建唯一约束
alter table user_info add constraint pk_aa_SEX  check( sex in('男','女'));  --新增约束限定sex输入必须是这两项之一
alter table user_info drop constraint pk_aa_id  ;                           --删除约束
约束的禁用和启用
alter table user_info disable constraint pk_aa_id  cascade;                 --禁止约束
alter table user_info enable constraint pk_aa_id  ;                         --启动约束

select * from dba_constraints t where t.owner='FUJIA'  AND t.constraint_name='PK_AA_SEX' --查询索引:存在数据字典的数据都是大写
select * from user_constraints t  --查询当前用户的约束
select * from all_constraints     -- 查询所有约束

9- 外键约束
create table user_level (id number primary key,
levelname varchar2(100) )
--创建user_info外键
alter table user_info add constraint foreign_key foreign key (userlevel) references user_level(id) on delete cascade;
select * from user_info
desc user_info                                    --查看表结构

10- 视图: 
作用:1 简化sql将经常查询的数据单独提取出来;2 可以隐藏一部分表信息
create or replace view v_t1 as select * from t1 with check option  --创建视图:视图中的数据与原表数据保持一致

select * from v_t1  r where  r.EMP_NO='1'         --查询视图

insert into v_t1 (name) values('jiajia');

select * from t1 where name = 'jiajia'   --差得原表中同样新增了一条记录

查询视图

11- TOP-N
rownum
select rownum,score,name from t1 where rownum<10 order by score asc,rownum
select rownum,score,name from t1 where rownum<>10  --结果与‘<’等号
select rownum,score,name from t1 where rownum=10   -- '=' '>'在这里边无法显示,在结果接种不能指定到莫一列。
仅限于‘<’ 与‘!=’等效

12- 动态性能视图

 

其他:扩展知识
OCI  oracle对C的开发接口
 
select ADD_MONTHS(SYSDATE,-12) from DUAL

 

select (INTEVAL '1-6' YEAR TO MONTHS) FROM DUAL