Oracle自学日记(3)

1.AUTO INCREMENT

AUTO INCREMENT会在新纪录插入表中时声称一个唯一的数字,通常是希望在插入新纪录时,自动创建主键字段的值。方法为:

oracle必须通过sequence对创建 auto-increment(该对象声称熟悉序列)。

首先 create sequence:

create sequence sqe_name   --命名
minvalue 1          --最小值    
start with 1        --从1开始
increment by 1     --每次加1
NOMAXVALUE        -- 不设置最大值  
NOCYCLE               -- 一直累加,不循环 
cache 10

上面的代码创建名为 seq_person 的序列对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高性能。CACHE 选项规定了为了提高访问速度要存储多少个序列值。

要在 "Persons" 表中插入新记录,我们必须使用 nextval 函数(该函数从 seq_person 序列中取回下一个值):

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 的赋值是来自 seq_person 序列的下一个数字。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。

oracle删除序列化:

 DROP SEQUENCE seq_name;

oracle修改序列化:Alter Sequence  
Alter sequence 的例子         

 ALTER SEQUENCE  emp_sequence  
        INCREMENT BY 10  
        MAXVALUE 10000  
        CYCLE    -- 到10000后从头开始  
        NOCACHE ;

 如果想要改变 start值,必须 drop  sequence 再  re-create 

2.NUll函数

在ORACLE中有个函数为       NVL(param1,param2)

这个函数的功能是,如果param1为NULL,则此表达式的运算结果为param2,否则为param1。

3.Group by

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

根据 column_name 的内容来进行分类。

选中的列,在select语句执行时能生成一张表,才能执行。

Having 的加入,给select的结果加入筛选条件,即Having 替代 where,作为Group by 结果的筛选条件。


你可能感兴趣的:(Oracle自学日记(3))