最近用Oracle数据库开发教务管理系统,发现Oracle真的是一个功能相当强大,而且使用方便的数据库,以前使用SQL Server2000的时候也注意到了它的优势,可是在使用了Oracle后,真的汗颜了......
现在将Oracle编程中遇到的一些大家比较关心或者经常用的到的东西写下来,供大家分享:
首先是视图:
对于创建视图或者修改视图我不再啰嗦了,相信只要是计算机专业的都会的,我将语法写下来:
创建视图:CREATE VIEW 视图名 AS SQL语句。
修改视图:ALTER VIEW 视图名 AS select 语句 with check option强制数据修改必须满足定义视图时的select语句
删除视图 drup view 视图名
大家都知道,视图在相应的基表被删除的时候视图也会被删除,当然数据也就不存在了。
相反,如果大家将视图中的某条语句删除掉,其对应的父表(基表)中的相应的数据也被删除。呵呵,相信大家也是第一次发现吧。如果高手早就发现的话也不要批评我啊,我是菜鸟刚学,所以学到新的东西当然很高兴呢。
再次是Oracle中主键增长:
大家编程的时候想让相应的主键值自动增长,免得在插入语句的时候每次要插入主键值,所以设定主键自动增长是一个非常好的编程习惯。能够数量应用主键自动增长以及触发器在数据库编程中是非常重要的。
下面分享下我在设定主键自动增长上的一些见解:高手指教。
首先要创建一个序列,来指定对于那个主键进行增长。注意:序列名不能和主键名同名;要符合命名规范,一般是sq_相应表(主键)英文所写 如 sq_studentID 学生编号序列。创建好序列后就创建触发器,触发器命名要符合命名规范。我将不再啰嗦。
创建序列语法:
create sequence sq_studentID
minvalue 1 --最小值
maxvalue 10000 --最大值
increment by 1 --主键每次增长1
start with 1 --主键从1开始添加
cache 20 --设定CPU缓存 20
order;
--创建触发器
create trigger tr_into_studentInf --相对与studentInfo表
before --在执行语句前,还是后。
insert on studentInfo for each row --执行插入操作
begin --开始执行语句
select sq_studentID.nextval into :new.student_id from dual; --该句我的理解是将查询到的下一个主键值即自动增长的值插入到学生编号列上。 新增的id在临时表dual中存放。
end;