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