精华内容
下载资源
问答
  • ALTER TABLE

    千次阅读 2007-07-23 13:01:00
    ALTER TABLE名称ALTER TABLE — 更改表属性语法ALTER TABLE table [ * ] ADD [ COLUMN ] column typeALTER TABLE table [ * ] ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }ALTER

    ALTER TABLE

    名称

    ALTER TABLE — 更改表属性

    语法

    ALTER TABLE table [ * ]
        ADD [ COLUMN ] column type
    ALTER TABLE table [ * ]
        ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
    ALTER TABLE table [ * ]
        RENAME [ COLUMN ] column TO newcolumn
    ALTER TABLE table
        RENAME TO newtable
    ALTER TABLE table
        ADD table constraint definition

    Inputs

    table
    试图更改的现存表的名称.
    column
    现存或新的列名称.
    type
    新列的类型.
    newcolumn
    现存列的新名称.
    newtable
    表的新名称.
    table constraint definition
    表的新的约束定义.


    New table constraint for the table

    输出

    ALTER
    从被更名的列或表返回的信息.
    ERROR
    如果一个列或表不存在返回的信息.

    描述

    ALTER TABLE 变更一个现存表的定义.ADD COLUMN 形式用与 CREATE TABLE一样的语法向表中增加一个新列/字段。ALTER COLUMN 形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME 子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADD table constraint definition 子句用与 CREATE TABLE一样的语法向表中增加一个新的约束。
     
    如果要改变表的属性,你必须是表的所有者.

    注意

    COLUMN 关键字是多余的,可以省略.

    如果"*"跟在一个表名后面,表示该命令要对该表和所有继承级别低于该表的表进行操作;缺省时,该属性(更改)不会增加到任何子表或修改任何子表的相关名称。当增加或修改一个上级表(译注:继承级别高的表)的属性时总是应该这样的。否则,象下面这样的在继承级上进行的查询

    SELECT NewColumn FROM SuperClass*
    将不能工作,因为子表会比上级表少一个属性。

    在目前的实现里,新列/字段的缺省(值)和约束子句会被忽略。你可以随后用 ALTER TABLESET DEFAULT 形式设置缺省(值)。(你还不得不用 UPDATE 把已存在行更新为缺省值。)

    在目前的实现里,只有 FOREIGN KEY 约束可以增加到表中.要创建或者删除一个唯一约束,可以创建一个唯一索引(参阅 CREATE INDEX).要想增加 check (检查)约束,你需要重建和重载该表,用的参数是 CREATE TABLE 命令的其他参数.

    要修改表的结构,你必须是表的所有人。不允许更改系统表结构的任何部分。PostgreSQL 用户手册 里有关于继承的更多信息.
     

    请参考 CREATE TABLE 部分获取更多有效参数的描述.

    用法

    向表中增加一个 VARCHAR 列:
    ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
    对现存列改名:
    ALTER TABLE distributors RENAME COLUMN address TO city;
    对现存表改名:
    ALTER TABLE distributors RENAME TO suppliers;
    向表中增加一个外键约束:
    ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL

    兼容性


    SQL92ADD COLUMN 形式是兼容的,除了上面说的缺省(值)和约束外。ALTER COLUMN 形式是完全兼容的。

    SQL92 对 ALTER TABLE 声明了一些附加的Postgres目前还不直接支持的功能:

    ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
    增加或删除表的约束(比如象检查约束,唯一约束或外键约束)。要创建或删除一个唯一约束,对应地创建或删除一个唯一索引,要修改其他类型的约束,你需要重建和重载该表,使用 CREATE TABLE  命令的其他参数.

    例如,删除表 distributors 的任何约束:

    CREATE TABLE temp AS SELECT * FROM distributors;
    DROP TABLE distributors;
    CREATE TABLE distributors AS SELECT * FROM temp;
    DROP TABLE temp;
    ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
    前,要删除一个现存的列,表必须重新创建和重新装载:
    CREATE TABLE temp AS SELECT did, city FROM distributors;    
    DROP TABLE distributors;
    CREATE TABLE distributors (
        did      DECIMAL(3)  DEFAULT 1,
        name     VARCHAR(40) NOT NULL,
    );
    INSERT INTO distributors SELECT * FROM temp;
    DROP TABLE temp;
    展开全文
  • alter table

    千次阅读 2005-04-21 17:53:00
    alter table TAB modify COL ; //更改字段alter table TAB add COL; //增加字段alter table TAB drop column COL; //删除字段

    alter table TAB modify COL ;  //更改字段

    alter table TAB add COL;  //增加字段

    alter table TAB drop column COL;  //删除字段

    展开全文
  • ALTER TABLE 语句

    千次阅读 2019-07-04 16:11:58
    ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 1 . ALTER TABLE table_name ADD column_name datatype 2. ALTER TABLE table_name DROP COLUMN column_name 3. ALTER TABLE table_name ALTER COLUMN column...

    ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
    1 . ALTER TABLE table_name ADD column_name datatype
    2. ALTER TABLE table_name DROP COLUMN column_name
    3. ALTER TABLE table_name ALTER COLUMN column_name datatype

    SQL ALTER TABLE 实例

    表 “Persons” 中添加一个名为 “Birthday” 的新列
    ALTER TABLE Persons ADD Birthday date

    删除 “Person” 表中的 “Birthday” 列:
    ALTER TABLE Person DROP COLUMN Birthday

    1,alter table table_name drop (字段1,字段2,字段3);
    2,alter table table1 drop column a,b
    增加一个列: ALTER TABLE 表名 ADD(列名 数据类型);
    ALTER TABLE emp ADD (weight NUMBER(38,0));

    修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):
    ALTER TABLE 表名 MODIFY(列名 数据类型);
    ALTER TABLE emp MODIFY(weight NUMBER(3,0) NOT NULL);
    给列改名:

    ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;
    如:
    ALTER TABLE emp RENAME COLUMN weight TO weight_new;

    删除一个列:
    ALTER TABLE 表名 DROP COLUMN 列名;
    如:
    ALTER TABLE emp DROP COLUMN weight_new;

    将一个表改名:
    ALTER TABLE 当前表名 RENAME TO 新表名;
    如:
    ALTER TABLE bouns RENAME TO bonus_new

    ALTER TABLE语句用于修改已经存在的表的设计。
    语法:
    ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index]
    ALTER TABLE table ADD CONSTRAINT multifieldindex
    ALTER TABLE table DROP COLUMN field
    ALTER TABLE table DROP CONSTRAINT indexname
    说明:
    table参数用于指定要修改的表的名称。
    ADD COLUMN为SQL的保留字,使用它将向表中添加字段。
    ADD CONSTRAINT为SQL的保留字,使用它将向表中添加索引。
    DROP COLUMN为SQL的保留字,使用它将向表中删除字段。
    DROP CONSTRAINT为SQL的保留字,使用它将向表中删除索引。
    field指定要添加或删除的字段的名称。
    type参数指定新建字段的数据类型。
    size参数用于指定文本或二进制字段的长度。
    indexname参数指定要删除的多重字段索引的名称。

    因为需要修改一个已存在的表的不允许为Null的列改为可为Null,网上查到的
    ALTER TABLE table1 ALTER COLUMN [name] varchar(60) NULL;
    不适用于Oracle,Oracle应该使用如下形式:
    ALTER TABLE TABLENAME MODIFY COLUMNNAME COLUMNTYPE NULL;

    TABLENAME:表名
    COLUMNNAME:字段名
    COLUMNTYPE:字段类型

    展开全文
  • hive中alter table的用法详解

    万次阅读 2016-07-26 15:07:59
    ALTER TABLE 语句 2011-07-22 11:02 ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 1 . ALTER TABLE table_name ADD column_name datatype 2. ALTER TABLE table_name DROP COLUMN column_name 3. ...
    ALTER TABLE 语句
    2011-07-22 11:02
    一、添加字段
     
    一次增加一个列(默认添加为最后一列)
    ALTER TABLE table_name ADD COLUMNS (new_col INT); 
    可以一次增加多个列
    ALTER TABLE table_name ADD COLUMNS (c1 INT,c2 STRING); 
    添加一列并增加列字段注释
    ALTER TABLE table_name ADD COLUMNS (new_col INT COMMENT 'a comment');
    二、改变列名/类型/位置/注释
    ALTER TABLE table_name CHANGE
    	[CLOUMN] col_old_name col_new_name column_type
    	[CONMMENT col_conmment]
    	[FIRST|AFTER column_name]
    	[CASCADE|RESTRICT];
    该命令将允许用户更改列的名称、数据类型、注释、位置或它们的任意组合,但必须先存在该字段才能修改名字及指定位置.列更改命令只修改Hive的元数据,不修改数据。用户应该确保表/分区的实际数据布局符合元数据定义。无论表或分区的保护模式如何,ALTER TABLE CHANGE COLUMN CASCADE子句都将覆盖表分区的列元数据。使用自由裁量权。
     
    CREATE TABLE test_change (a int, b int, c int);
     
    // 首先将列a的名称更改为a1:
    ALTER TABLE test_change CHANGE a a1 INT;
     
    //将列a1的名称更改为a2,将其数据类型更改为字符串,并将其放在列b之后:
    ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b;
    
    注意:列位置更换后数据位置还是不动的,若想让数据跟着字段一起移动,需更新表数据,
    使用insert overwrite table 从表中将移动之前对应的数据插入到移动之后对应的字段中
    
    // 新表的结构是: 
     b int, a2 string, c int.
     
    // 然后将c列的名称改为c1,并将其作为第一列:
    ALTER TABLE test_change CHANGE c c1 INT FIRST;
    
    // 此时新表的结构是: 
     c1 int, b int, a2 string.
    三、添加/更新列
    ALTER TABLE table_name 
      [PARTITION partition_spec]                 -- (Note: Hive 0.14.0 and later)
      ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
      [CASCADE|RESTRICT]                         -- (Note: Hive 1.1.0 and later)

    添加列允许您在现有列的末尾,但在分区列之前添加新列。对于Avro支持的表、Hive 0.14和更高版本,也支持这种方法。
    REPLACE列删除所有现有列并添加新的列集。这只能用于具有本机SerDe的表(DynamicSerDe、元数据类型pedcolumnsetserde、LazySimpleSerDe和ColumnarSerDe)。REPLACE列还可以用于删除列。
    删除列示例:

    原有Hive表test_change中有a,b,c,d,e这几个字段
       将从test_change中删除“d”列:
         ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string,e string);
       将d和e两列一起删除:
          ALTER TABLE test_change REPLACE COLUMNS (a int, b int,c string);
    注意:如果列字段比较多,可以用show create table table_name; 显示建表语句,将字段一次性复制进来,删除哪些字段就直接去除即可.
     
     
     
     
     
     
     
    展开全文
  • Mysql 常见ALTER TABLE操作

    千次阅读 2021-01-14 11:26:09
    alter table table_name drop col_name; 增加列(单列) alter table table_name add col_name col_type comment 'xxx'; 增加列(多列) alter table table_name add col_name col_type comment 'xxx', add col_name...
  • SQL中ALTER TABLE 语句

    千次阅读 2018-05-10 09:14:12
    ALTER TABLE 语句ALTER TABLE 语句用于在已有的表中添加、修改或删除列。SQL ALTER TABLE 语法如需在表中添加列,请使用下列语法:ALTER TABLE table_name ADD column_name datatype 要删除表中的列,请使用下列...
  • alter table t move和alter table t shrink space都可以用来进行段收缩,降低高水位HWM, 也都可以用来消除行链接(Row Chaining)和行迁移(Row Migration), 但是有如下区别: 1)使用alter table move,会把...
  • ALTER TABLE 表结构变更

    2017-09-14 16:17:26
    修改表明ALTER TABLE 当前表名 RENAME TO 新表名;ALTER TABLE old RENAME TO new给列改名ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;ALTER TABLE info RENAME COLUMN is_del TO del;添加列ALTER TABLE ...
  • Alter table emp cache; and Alter table emp storage (buffer_pool Keep); The ALTER TABLE EMP CACHE puts the table in the general buffer cache, but tries to keep the table in the Most Recently
  • hive Alter Table 语句

    千次阅读 2018-09-18 14:37:04
    它是在Hive中用来修改的表。 语法 声明接受任意属性,我们希望在一个表中修改以下语法。 ALTER TABLE name RENAME TO new_name ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) ...ALTER TABLE name CHA...
  • alter table语句修改表结构

    千次阅读 2018-12-12 14:11:56
    alter table 表名 modify 列名 列类型 [first|after 列名] 增加列 alter table 表名 add 列名 列类型 [first|after 列名] 删除列 alter table 表名 drop 列名 列改名 alter table 表名 change 旧列名 新列名 列...
  • SQL ALTER TABLE 语法

    2014-01-08 09:41:24
    如需在表中添加列,请使用下列语法:ALTER TABLE table_name ADD column_name datatype 要删除表中的列,请使用下列语法:ALTER TABLE table_name DROP COLUMN column_name
  • Hive Alter Table

    千次阅读 2016-04-25 16:15:52
    0x01:重命名表 1 ALTER TABLE table_name RENAME TO new_table_name; 上面这个命令可以重命名表,数据所在的位置和分区都没有改变。 0x02:改变列名/类型/位置/注释 ...ALTER ...TABLE table_nam
  • PostgreSQL修改表(alter table语句)

    千次阅读 2019-03-28 13:46:13
    PostgreSQL ALTER TABLE命令用于添加,删除或修改现有表中的列。您还可以使用ALTER TABLE命令在现有表上添加和删除各种约束。 语法: 使用ALTER TABLE语句在现有表中添加新列: ALTER TABLE table_name ADD column_...
  • Hive:Alter Table/Partition/Column

    千次阅读 2019-03-11 17:29:31
    Alter Table/Partition/Column Alter Table Rename Table Alter Table Properties Alter Table Comment Add SerDe Properties Alter Table Storage Properties Alter Table Skewed or Stored as Directories A...
  • 关于ALTER TABLE一些使用方法设置非空约束设置主键设置取值范围设置默认值引入外键删除约束 设置非空约束 USE CSDN alter table csdn alter column c1 int not null 设置主键 USE CSDN alter table csdn add ...
  • ALTER TABLE的用法

    2017-06-03 20:35:58
    转载自:https://www.w3schools.com/sql/sql_alter.asp 总的来说,就是更新(添加,删除)完整性约束(主键,外键,候选关键字) SQL ALTER TABLE ...The ALTER TABLE statement is used to add, delete, or
  • 一、alter table对列的操作 二、 alter table是对已有的表中的列进行添加、删除修改 #在表中添加列 alter table 表名 add 列名 指定列表数据类型 #在表中删除列 alter table 表名 drop column 列名 (禁用) #...
  • mysql中用alter table建立索引

    万次阅读 2019-01-06 20:54:20
    ALTER TABLE table_name ADD PRIMARY KEY ( column ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE table_name ADD UNIQUE ( column ) 3.添加INDEX(普通索引) mysql>ALTER TABLE table_name ...
  • ALTER TABLE 语句添加字段

    千次阅读 2018-11-10 16:11:26
    ALTER TABLE xx ADD is_repeat VARCHAR(4) DEFAULT NULL COMMENT '是否重复领取(0:否,1:是)'; ALTER TABLE xx ADD created_user_id VARCHAR(32) DEFAULT NULL COMMENT '记录创建人(user.id)'; ALTER TABLE xx ...
  • mysql 的alter table操作

    2018-10-08 09:08:46
    因为alter table带有隐式提交的操作。在回滚前已经提交了。 BEGIN; alter table XXX add contact_way varchar(11) COMMENT ‘联系方式’; ROLLBACK; 以下这些SQL语句会产生一个隐式的提交操作,即执行完这些语句后,...
  • sqlite3 alter table

    千次阅读 2015-06-17 09:41:45
    sqlite3 alter table只支持两个 1.alter table tableName rename to newTableName; 2.alter table tableName add column columnName integer(类型);
  • Oracle 的 nologging 的使用,同时满足一下三个...1.表空间:alter tablespace table_name nologging; 2.表:alter table table_name nologging; 3.插入:insert /+append/ into table_name select * from table_nam...
  • SQL ALTER TABLE 语句

    千次阅读 2011-08-02 09:31:27
    SQL ALTER TABLE 语句 ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 SQL ALTER TABLE 语法 如需在表中添加列,请使用下列语法: ALTER TABLE table_name ADD c
  • 关于alter table move

    千次阅读 2016-03-30 23:17:11
    alter table move主要有两方面的作用 1.用来移动table到其他表空间 2.用来减少table中的存储碎片,优化存储空间和性能 案例1:移动table到其他表空间 --alter table move SQL> create table t tablespace system ...
  • 【Mysql】Alter table 使用

    万次阅读 热门讨论 2018-03-26 16:41:49
    Alter table 可以对表进行相应的操作,包括:添加列,删除列,修改列,数据库重新命名 添加列: ALTER TABLE tb_family_info ADD COLUMN `graduate_school` varchar(50) DEFAULT NULL COMMENT '毕业院校' 修改列...
  • sql server中alter table语句的使用

    千次阅读 2020-04-07 15:30:56
    ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 SQL ALTER TABLE 语法: 如需在表中添加列,使用下列语法: ALTER TABLE table_name ADD column_name datatype 要删除表中的列,使用下列语法: ALTER TABLE...
  • MySQL alter table 的使用方法

    千次阅读 2018-05-24 16:44:33
    ALTER TABLE table_name ALTER COLUMN column_name datatype 1、SQL ALTER TABLE 语句 http://www.runoob.com/sql/sql-alter.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 398,166
精华内容 159,266
关键字:

altertable