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_NAME                     CONSTRAINT_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。

转载来源:http://blog.csdn.net/aqszhuaihuai/article/details/4065482

时间: 2024-12-28 14:22:51

Oracle的常用修改表及字段的语句的相关文章

Oracle group by 多表多字段关联查询

group by 多表多字段关联查询 自己遇到一个问题,就是开始的时候需要一个字段的名字和数量,但是是同个一个表的. 数据库代码如下: select  l.batchnum,count(l.batchnum) batcount    from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left

Oracle查询用户所有表、字段等信息

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看. select * from all_tab_comments -- 查询所有用户的表,视图等 select * from user_tab_comments -- 查询本用户的表,视图等 select * from

Sqlite如何修改表结构字段类型

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称.数据类型.限定符等等. 改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名 增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名

PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变

怎样才能在修改表的字段Name的时候,Code不自动跟着变 tools-> General   Options-> Dialog:Operation   Modes: 去掉 NameToCodeMirroring 前面的√

mysql修改表、字段、库的字符集

修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET u

二、修改表、字段属性设置、索引设置、约束设置

 字段属性设置 not null 不为空 auto_increment 设定int类型字段的值可以"自增长",即其值无需"写入",而会自动获得并增加 注:此属性必须随同 primary key  或 unique key 一起使用. [primary] key: 设定为主键.是唯一键"加强":也不能重复并且不能使用null,并且可以作为确定任意一行数据的"关键值" unique  [key] : 设定为唯一键:表示该字段的

mysql alter 用法,修改表,字段等信息

一: 修改表信息 1.修改表名 alter table test_a rename to sys_app; 2.修改表注释 alter table sys_application comment '系统信息表'; 二:修改字段信息 1.修改字段类型和注释 alter table sys_application modify column app_name varchar(20) COMMENT '应用的名称'; 2.修改字段类型 alter table sys_application modif

MySQL修改表、字段、库的字符集及字符集说明

修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET u

MySQL5.7快速修改表中字段长度

在mysql 5.5版本时,商用环境升级,有一个表存在六千多万数据,升级时需要修改这个表其中一个varchar类型字段的长度,当时用了大概4个多小时,还没有结束,之后我们系统mysql升级到5.7版本,再一次升级模拟测试中,又修改了该表的字段长度,这次用时为7个多小时,下面是记录的时间.(进入mysql命令行,执行tee upgrade.log,之后执行的sql都会记录到该log中,当不需要记录时,执行notee) Query OK, 0 rows affected (7 hours 48 mi