传智播客我的Oracle复习‘路’2

来源:互联网 发布:微信办公系统php 编辑:程序博客网 时间:2024/06/14 06:27

【第二步:熟练sql语句】
练习一:从一个表查询,主要考察函数的使用
[函数复习]
单行函数---->横向     返回值只有一个
多行函数/分组函数----->纵向    返回值是多条记录

[字符函数]
replace/translate
rpad/rtrim
substr/instr
[时间日期函数]
add_months
last_day
months_between
next_day

d1-2  = d3
d1-d2 = 天数差 222.222
d1+3  = d3
d1+d2 = d3  不允许日期+日期

[转换函数]
to_char(sysdate,'mm')
to_date('1999-01-22','yyyy-mm-dd')
to_number('1111.11','999d99')

[数学函数]
ceil/floor
trunc/round

[混合函数]
nvl  注意不能冲突
user

[复杂的函数]
decode(x,y1,z1,y2,z2,z3)

练习二:从多个表查询,主要考察关联查询、子查询、外连接
8:30开始 暂停 15分钟
10:12开始 11:20

关联查询
等值连接
外连接

子查询
1)where 子句中嵌套子查询
2)用子查询的结果 作为字段来出现
相关子查询   -- 先执行子查询再执行主查询
无关子查询   -- 先执行主查询再执行子查询


练习三:多个表的复杂查询




【第三步:熟练oracle对象】
[用户]
增、删、改、查
[表]
增、删、改、查
[约束]
增、删、改、查
主键约束、唯一约束、为空约束、外键约束、检查约束、默认值约束

增:   alter table stu add constraint pk_01 primary key(xh);
删:   alter table stu drop constraint pk_01;
改:   删了再加
查:   user_constraints数据字典

[序列]
sequence

增:  create sequence seq1;  从1开始 每次自动增加1 没有最大值
create sequence seq2
start with 1000        --起始值1000
increment by 2         --步长2
maxvalue 9000          --最大值9000
minvalue 900           --最小值900
cycle                  --循环序列
删: drop sequence seq1;
改:     起始值不能修改
alter sequence seq002
maxvalue 9000    --最大值
minvalue 10    --最小值
increment by 10 --步长
cycle/nocycle   --循环
查:select * from user_sequences
.currval  .nextval(先)

[试图]
view  需授权

增:   create view v0 as select * from student;
create view v2 as select * from emp with read only;(只读试图)
删:   drop view v0;
改:   create or replace view v0 as select * from cla;
查:   select * from user_views;

[同义词]
synonym  需授权

增:   create synonym sy01 for cla;
删:   drop synonym sy01;
改:   删了再加
查:   select * from user_synonyms

公共同义词
create public synonym ok001 for emp;   
drop public synonym ok001;

可以给序列、表、索引等对象皆可创建同义词

[索引]
index

增:     create index i01 on cla(cname);
删:     drop index i01;
改:     删了再加
查:     select * from user_indexes;

原创粉丝点击