小弟刚刚开始学sql不知道您说得如何写,能不能写出来学习一下

解决方案 »

  1.   

    序列(Sequences)  Oracle序列是一个连续的数字生成器。序列常用于人为的关键字,或给数据行排序否则数据行是无序的。像约束一样,序列只存在于数据字典中。序列号可以被设置为上升、下降,可以没有限制或重复使用直到一个限制值。创建序列使用SET SEQUENCE语句。CREATE SEQUENCE [schema] sequence KEYWORD   KEYWORD包括下面的值:
    KEYWORD  描述 
    START WITH  定义序列生成的第一个数字,缺省为1 
    INCREMENT BY  定义序列号是上升还是下降,对于一个降序的序列INCREMENT BY为负值 
    MINVALUE  定义序列可以生成的最小值,这是降序序列中的限制值。缺省情况下该值为NOMINVALUE,NOMINVALUE,对于升序为1,对于降序为-10E26. 
    MAXVALUE  序列能生成的最大数字。这是升序序列中的限制值,缺省的MAXVALUE为NOMAXVALUE,NOMAXVALUE,对于升序为10E26,对于降序为-1。 
    CYCLE  设置序列值在达到限制值以后可以重复 
    NOCYCLE  设置序列值在达到限制值以后不能重复,这是缺省设置。当试图产生MAXVALUE+1的值时,将会产生一个异常 
    CACHE  定义序列值占据的内存块的大小,缺省值为20 
    NOCACHE  在每次序列号产生时强制数据字典更新,保证在序列值之间没有间隔当创建序列时,START WITH值必须等于或大于MINVALUE。   删除序列使用DROP SEQUENCE语句DROP SEQUENCE sequence_name
     
    先看看上面的说明,你可以按楼上朋友说的,创建一个初始值为200,增长人2的序列,当你需要使用这个序列的时候,你只要用一条SQL语句去查询就要可以得到你需要的数了:Select seq_stockEXPORT.nextval from dual其中seq_stockexport这个就是你定义的序列的名称定义序列的方法你可以在ORACLE的CONSOLE或是在SQL PLUS完成
      

  2.   

    是插入,还有要查询一个DATE类型的年份是1997怎么查找阿?不限定月份和日期,请给写个语句例子
      

  3.   

    ok , i already create the sequence, but I want a table named customer, I would want it's attribuate named c# to use this sequence.Does it mean to add a constraint to the table customer which to check the value of c# is sequence?
    i try this statement
    CREATE SEQUENCE Cus_sequence
    START WITH 200 
    INCREMENT BY 2;
    ALTER TABLE Customer
    ADD CONSTRAINT Cus_CHK1 CHECK(c#=rsequence.nextval);
    but the statement doesn't work, when i run it in sql-plus,it says "RSEQUENCE"."NEXTVAL":
    invalid identifiercan anyone tell me what's wrong?
      

  4.   

    ADD CONSTRAINT Cus_CHK1 CHECK(c#=rsequence.nextval);
    你建立的SEQUENCE不是叫Cus_sequence吗?rsequence是什么??
    上面的你把rsequence.nextval改为Cus_sequence.nextval看看行不?
      

  5.   

    It also doesn't work!!! what's the problem?