oracle_DDL

表 create table 表名(字段1 类型, 字段2 类型, …)

类型有varchar2、char、number、date、long

       constraint约束(主键、外键、唯一、非空、check):字段级约束、表级约束

       create table class

(

              cidnumber(4),

              cnamevarchar2(20) not null,

              constraintclass_cid_pk primary key(cid)

);

create table stu

(

              stunonumber(9) primary key,

              namevarchar2(10) constraint stu_name_not_null not null,

              sexnumber(1),

              classnumber(4),

              sdatedate default sysdate,

              telchar(11) unique,

              agenumber(3),

              constraintstu_class_fk foreign key(class) references class(cid)

);

       create table dept2 as select * from dept; 相当于将表dept备份

       alter 修改表结构

              alter table dept2 add(tell number(11));增加字段

      alter table dept2 modify(tell varchar2(11)); 修改字段

              alter table dept2 drop(tell); 删除字段

              alter table dept2 add constraint dept2_pk_deptno primarykey(deptno);增加约束

              alter table dept2 dropconstraint dept2_pk_deptno;删除约束

       drop 删除表 drop table dept2;

索引 相当于字典里的索引,当某1个或几个字段访问次数比较多时可在该字段上建立索引

create index idx_dept2_dname on dept2 (dname);

drop index idx_dept2_dname;

视图 一个子查询(虚表),一般以v$开头 简化查询、维护麻烦、保护私有数据,视图也可更新表数据,但一般不这么用

       例如:求平均薪水的等级最低的部门名称

create view v$_dept_avg_sal_info as

select deptno, grade,avg_sal from

  (selectdeptno,avg(sal) avg_sal from emp group by deptno) t

join salgrade s on (t.avg_sal between s.losal ands.hisal);

select dname, t1.deptno, grade, avg_sal from

v$_dept_avg_sal_info t1 join dept on(t1.deptno =dept.deptno)

where t1.grade =

(select min(grade) from v$_dept_avg_sal_info);

删除视图  drop view v$_dept_avg_sal_info;

序列 sequence 产生唯一、不间断的序列,用来作主键

       create sequence seq; 自动递增

       create sequence sequ start with 1 increment by 1;

select seq.nextval from dual;

insert into dept2 values(sequ.nextval, 'A', 'Beijing');

删除序列drop sequence seq;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值