您的位置:首页 > 数据库 > Oracle

传智播客java培训ORACLE总结(3)

2010-04-22 19:18 405 查看

 

ORACLE的学习已经告一段茖,今天已经开始HIBERNATE的学习,总体感觉挺良好的,虽然很多的知识不能记住,但是在使用的时候能够迅速的找对方法来解决相应的问题,只要勤加练习,就可以记住。只不过,时间有珢,HIBERNATE的课程也只有三天的时间,所以在这期间我的任务是尽量吸引,在花放假的时候来复习。今天把ORACLE最后的的笔记整理。
我们班的学习氛围非常的好,以前上大学的时候一个教室都没有上自己的习惯,但是现在在这儿,我感觉比我上大学那儿,完全不是一个层次的,放假的时候教室也有很多人来这儿学习,我想即使不能在短时间成为高手,但付出和收获的永远是相辅相成的。
约束的类型及各自的定义方法:
1. 非空 not null
2. 唯一,uniqu
3. 主键 primary key
a) 定义表时直接在字段上定义
b) Constraint名称 primary key(列)
c) Alter table 表名
Add constraint 名 primary key (列)
d) 组合主键
1.表内部。constraint名primary key(列1,列2)
2.表外部
Alter table 表名
Add constraint 名 primary key(列1,列2);
按B种方法是在项目中使用较频繁的,因为这样可以将语句和约束相分开来,便于查看。
4.外键
Constraint 名 foreign key()  references 表名(字段)
一张表的一个字段可以引用一个本表的主键。
查看约束
Select * from user_constraints where table_name=’’;
4. CHECK 约束
a) Add constraint 名字 check(salary>6000)

删除约束:
Alter table tableName
Drop constraint 约束的名称
删除主键和相关属性

Constraint :约束
1.为指定的人群(比如重庆人)提供供餐
2.提供会员机制

在实际的应用中是,单独创建约束,这样就要以实现了表与约束的分离。

索引:
--加快查询速度
Create INDEX index on table (column[,column]);
Drop INDEX index;
1. 是怎么整一千万条记录的啊?
2. 现在才知道当初我的做法是多么的笨!
3. 在实现项目中创建索引的技巧。

同义词  
就是数据库的一个别名
语法格式:
CREATE SYNONYM synonya
For Object;
删除
DROP SYNONYM 名

视图:
就是一个命名的查询,是一个虚表.
创建语法格式:
CREATE[OR REPLACE] VIEW view
[(alias[,alias])….]
As subquery
[WITH READ ONLY];  设置为只读
修改视图:
  加上OR REPLACE 
禁止对视力执行,虽然可以,所以设置为只读
删除视图:
 Drop VIEW viewName;
查询视图:
Select * from use_views

行内视图:
TOP-ON分析法:
Rowunm这个伪列.
子查询这是标准的行内视图的使用
只返回最什么的前几行
Rownumber是谁给的值。
英文单词:alias :别名
匿名块:只使用一次的PL/SQL
存储过程:用于在数据库中完成特定的操作或者任务
执行速度特别快
Create procedure name
创建一个简单的存储过程,其的任务就是往DEPT表中插入数据,虽然没有多大的实际用途,也算是
create or replace procedure insertdept
(
 v_deptno in number,
 v_dname in varchar2,
 v_loc in varchar2,
)
is
begin 
     insert into dept(deptno,dname,loc)
     values(v_deptno,v_dname,v_loc)
end
执行存储过程的方法
exec insertdept(56,'A','C');

创建一个存储过程,该存储过程有返回值。
create or replace procedure updatedept
(
 v_deptno in number,
 v_dname in varchar2,
 v_loc in varchar2
  v_demo out varchar2
)
is
begin
(
 update dept set ...
 commit;
 v_demo='success';
)
end

declare
  v_demo varchar2(54)
 begin
  updatedept(...,v_demo);
  dbms_output.put_line(v_demo);
 end

ORACLE的课程完了,但是学习的步伐永远不会停止,IT行业人人都说新技术日新月异,每个程序员都得抓紧时间学习新技术,特别是我们做为新人,更应该付出比别人更多的时间,否则何必弥补曾经我们逝去的时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息