数据库操作语言

/*相当于DECODE作用*/

CASE WHEN case when fv=2 then 0 else 1 end

 

/*存储:基于一个表数据生成另一个表数据*/

insert into temp (

f1,f2

)

select temp.nextval,

v1

)

from tName;

 

/*习练SQL时常用造数据*/

with temp as (

SELECT '练习' act FROM DUAL UNION ALL ...

)

 

/*列转行*/

list agg(f1,','),f2 within group (order by f1) from tName group by f2

list agg(f1,',') within group (order by f1) over (patition by f2) from tName

 

/*存储*/

create procedure createnotdet(newYMonth number) is

      firstDayNewMonth date;

      lastDayNewMonth date;

begin

      ....

      

 

/*数据库表的创建*/

CREATE TABLE COURCE(

 CNO VARCHAR2(8),

 CNAME VARCHAR2(20),

 CREDIT NUMBER(1),

 CTIME NUMBER(2),

 QUOTA NUMBER(3)

)

从上面来看,首先要明确编号是不是纯数字,如果不是应该建为 varchar2(8)

另外,从人数来看编号的位数,如老师,可以建 number(4),学生可建 number(6),

而系的话 number(2) 就可以了

 

/*接下来是表操作的语法*/

alter table COURCE add (constraint pk_cource primary key cno);

alter table COURCE MODIFY CNAME constraint NOT_NULL_CNAME NOT NULL ;

 

  改名:

  如果是表名的改名,直接 rename to ,而非对表的 alter 

  如果是改列,则是对表内部信息的 alter ,所以 alter tName rename column colName to 

 

  接下来的对列的精度、长度的修改,就不需要直点列名了:

  alter table tName modify colName 型号

 

  /*外键*/

  alter table tName add [constraint constraint_name](foreign key tName(tFie1) REFERRENCEs               tName1(tFie2) )

 

 

 

猜你喜欢

转载自liudingning.iteye.com/blog/2111059