Oracle的一些的一些

单行注释:--

多行注释:/* */

Oracle中修改表结构

增加字段
ALTER TABLE table_name

ADD column_name data_type;

删除字段
ALTET TABLE table_name

DROP COLUMN column_name;
修改字段类型
ALTER TABLE table_name

ALTER COLUMN column_name new_data_type;

设置主键
ALTER TABLE table_name ADD CONSTRAINT PK_ID PRIMARY KEY(ID) ;

重命名

RENAME obj_name TO new_obj_name;

约束视图
两个数据字典视图提供了约束的详细信息:USER_CONSTRAINTS和USER_CONS_COLUMNS.
一张表可能有也可能没有约束,对于一张表的每一个约束在USER_CONSTRAINTS中都有一条记录描述这个约束。包括约束应用到的表名称。如果你知道约束名想知道约束类型,查询USER_CONSTRAINTS表。这个视图描述了约束的定义。它不提供约束定义在哪些字段名称上。
在USER_CONS_COLUMNS视图中显示约束的字段名称。如果主键是个联合主键,这个视图中将有这个约束的两条记录。联合主键的每一个字段对应一条记录。每一条记录通过POSITION(在联合主键中的位置)来区别。 USER_CONSTRAINTS 和USER_CONS_COLUMNS都有字段CONSTRAINT_NAME 和TABLE_NAME.
---------------------------------------------------------------------

USER_CONSTRAINTS USER_CONS_COLUMNS
---------------------------------------------------------------------
CONSTRAINT_NAMECONSTRAINT_NAME
CONSTRAINT_TYPE TABLE_NAME
TABLE_NAME COLUMN_NAME
POSITION

参考信息

http://blog.sina.com.cn/s/blog_4c22550c010007s3.html

VARRAY的应用

一个例子:

CREATE TYPE phone_type IS VARRAY(20) OF VARCHAR2(20);
/
CREATE TABLE employee(
id NUMBER(4),
name VARCHAR2(10),
sal NUMBER(6,2),
phone phone_type);
/

插入示例:

INSERT INTO employee values(1,'NewName',1000,phone_type('1','2'));

nestedTable的应用

一个例子:

CREATE OR REPLACE TYPE emp_type2 AS OBJECT
(empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2)
);
/

CREATE OR REPLACE TYPE emp_tab_type AS TABLE OF emp_type2;
/

--使用嵌套表

CREATE TABLE dept_and_emp2
(deptno NUMBER(2) PRIMARY KEY,
dname VARCHAR2(14),
loc VARCHAR2(13),
emps emp_tab_type
)NESTED TABLE emps STORE AS emp_nest2;

插入示例:

insert into dept_and_emp2 values(1,'NewName','NewLoc',emp_tab_type(emp_type2(1,'newName','newJob',7788,sysdate,1000,100),emp_type2(......)));

这两种集合的插入方式是一样的。

IS EMPTY 操作符只适用于嵌套表,而不适用于VARRAY,用于判断集合里的元素是否为空,如果判断是否初始化(是否为null)应该用 IS NULL。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值