1.AUTO INCREMENT
AUTO INCREMENT会在新纪录插入表中时声称一个唯一的数字,通常是希望在插入新纪录时,自动创建主键字段的值。方法为:
oracle必须通过sequence对创建 auto-increment(该对象声称熟悉序列)。
首先 create sequence:
create sequence sqe_name --命名minvalue 1 --最小值 start with 1 --从1开始increment by 1 --每次加1NOMAXVALUE -- 不设置最大值 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_nameWHERE column_name operator valueGROUP BY column_name
根据 column_name 的内容来进行分类。
选中的列,在select语句执行时能生成一张表,才能执行。
Having 的加入,给select的结果加入筛选条件,即Having 替代 where,作为Group by 结果的筛选条件。