当前位置:文档之家› oracle ALTER 用法

oracle ALTER 用法

oracle ALTER 用法1.如果sql语句中有''(单引号或者双引号)括的字符串,则需要同表中严格一致,不然会显示“找不到行”这个错误。

alter语句的用法需要修改结构的,就用到alter语句,方法如下:1.ALTER TABLE语句用于修改已经存在的表的设计。

2.语法:ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index ]3.ALTER TABLE table ADD CONSTRAINT multifieldindex4.ALTER TABLE table DROP COLUMN field5.ALTER TABLE table DROP CONSTRAINT indexname6.7.说明:table参数用于指定要修改的表的名称。

8.ADD COLUMN为SQL的保留字,使用它将向表中添加字段。

9.ADD CONSTRAINT为SQL的保留字,使用它将向表中添加索引。

10.DROP COLUMN为SQL的保留字,使用它将向表中删除字段。

11.DROP CONSTRAINT为SQL的保留字,使用它将向表中删除索引。

12.field指定要添加或删除的字段的名称。

13.type参数指定新建字段的数据类型。

14.size参数用于指定文本或二进制字段的长度。

15.indexname参数指定要删除的多重字段索引的名称。

16.17.用sql*plus或第三方可以运行sql语句的程序登录数据库:18.19.ALTER TABLE (表名) ADD (列名数据类型);20.ALTER TABLE (表名) MODIFY (列名数据类型);21.ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); /////不需要括号22.ALTER TABLE (表名) DROP COLUMN (列名);23.ALTER TABLE (当前表名) RENAME TO (新表名);24.25.如:26.Alter Table Employ Add (weight Number(38,0)) ;27.28.Alter Table Employ Modify (weight Number(13,2)) ;29.30.Alter Table Emp Rename Cloumn weight To weight_new ;31. ALTER TABLE emp DROP COLUMN weight_new ;32.33. ALTER TABLE bouns RENAME TO bonus_new;34.增加一个列:35.ALTER TABLE 表名 ADD(列名数据类型);36.如:37.ALTER TABLE emp ADD(weight NUMBER(38,0));38.39.修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):40.ALTER TABLE 表名 MODIFY(列名数据类型);41.如:42.ALTER TABLE emp MODIFY(weight NUMBER(3,0) NOT NULL);43.44.给列改名:45.ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;46.如:47.ALTER TABLE emp RENAME COLUMN weight TO weight_new;48.49.删除一个列:50.ALTER TABLE 表名 DROP COLUMN 列名;51.如:52.ALTER TABLE emp DROP COLUMN weight_new;53.54.将一个表改名:55.ALTER TABLE 当前表名 RENAME TO 新表名;56.如:57.ALTER TABLE bouns RENAME TO bonus_new58.============================================================================59.alter USER user IDENTIFIEDBY ’newpassword’REPLACE’oldpassword’;Oracle中使用alter table来增加,删除,修改列的语法alter table tablename add (column datatype [default value][null/not null],….);alter table tablename m odify (column datatype [default value][null/not null],….); alter table tablename drop (column);这里分别是使用alter table 来增加、删除和修改一个列。

下面是具体的例子:create table test1(id varchar2(20) not null);alter table test1add (name varchar2(30) default ‘无名氏’ not null);alter table test1modify (name varchar2(16) default ‘unknown’);alter table test1drop column name;以上分别建立一个表,增加,更改,删除一个列。

其中需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要窄的列宽这样将会出现一个错误。

例如前面如果我们插入一个值insert into test1values (’1′,’我们很爱你’);然后曾修改列:alter table test1modify (name varchar2(8));将会得到以下错误:ERROR 位于第2 行:ORA-01441: 无法减小列长度, 因为一些值过大PS:改变已存在的表的列名alter table table_name rename column col_old to col_newORACLE中通过SQL语句(alter table)来增加、删除、修改字段ORACLE中通过SQL语句(alter table)来增加、删除、修改字段添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法:alter table tablename modify (column datatype [defaultvalue][null/not null],….);删除字段的语法:alter table tablename drop (column);添加、修改、删除多列的话,用逗号隔开。

使用alter table 来增加、删除和修改一个列的例子。

创建表结构:create table test1(id varchar2(20) not null);增加一个字段:alter table test1add (name varchar2(30) default ‘无名氏’ not null);使用一个SQL语句同时添加三个字段:alter table test1add (name varchar2(30) default ‘无名氏’ not null,age integer default 22 not null,has_money number(9,2));修改一个字段alter table test1modify (name varchar2(16) default ‘unknown’);另:比较正规的写法是:-- Add/modify columnsalter table TABLE_NAME rename column FIELD_NAME to NEW_FIELD_NAME; 删除一个字段alter table test1drop column name;需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要小的列宽这样将会出现一个错误。

例如前面如果我们插入一个值insert into test1values (’1′,’我们很爱你’);然后曾修改列: alter table test1modify (name varchar2(8));将会得到以下错误:ERROR 位于第 2 行:ORA-01441: 无法减小列长度, 因为一些值过大---------------------------------------------高级用法:重命名表ALTER TABLE table_name RENAME TO new_table_name;修改列的名称语法:ALTER TABLE table_name RENAME COLUMN supplier_name to sname;范例:alter table s_dept rename column age to age1;附:创建带主键的表>>create table student (studentid int primary key not null,studentname varchar(8),age int);1、创建表的同时创建主键约束(1)无命名create table student (studentid int primary key not null,studentname varchar(8),age int);(2)有命名create table students (studentid int ,studentname varchar(8),age int,constraint yy primary key(studentid));2、删除表中已有的主键约束(1)无命名可用 SELECT * from user_cons_columns;查找表中主键名称得student表中的主键名为SYS_C002715alter table student drop constraint SYS_C002715;(2)有命名alter table students drop constraint yy;3、向表中添加主键约束alter table student add constraint pk_student primary key(studentid); Oracle中alter语句用法需要修改库表结构的时候,就用到alter语句,方法如下:ALTER TABLE语句用于修改已经存在的表的设计。

相关主题