SQL修改数据库表的列属性

合集下载

sql server 中修改数据库排序规则的几种方式

sql server 中修改数据库排序规则的几种方式

sql server 中修改数据库排序规则的几种方式SQL Server 是一种关系数据库管理系统,在数据库中可以使用各种排序规则来确定数据的排列顺序。

本文将介绍如何在SQL Server 中修改数据库排序规则的几种方式。

1. 了解排序规则的概念排序规则是数据库用来确定字符数据(例如字符串和文本)排序顺序的规则集合。

它包括字母、数字、日期和特殊符号等等。

在SQL Server 中,排序规则由一个名称和一系列属性定义。

2. 利用SQL Server Management Studio 修改排序规则SQL Server Management Studio(SSMS)是SQL Server 的集成环境,它提供了用于管理数据库的图形化界面。

以下是用SSMS 修改排序规则的步骤:- 打开SSMS,并连接到目标数据库的服务器。

- 在“对象资源管理器”窗口中,展开数据库,然后展开“数据库名称”。

- 右键单击“表”,并选择“设计”选项。

- 在“设计面板”中,选择需要修改排序规则的列。

- 在“列属性”窗口中,展开“一般”选项卡,然后找到“排序规则”属性。

- 单击“排序规则”属性旁边的下拉箭头,并选择合适的排序规则。

- 在SSMS 工具栏上,点击“保存”按钮。

通过上述步骤,可以修改数据库表中特定列的排序规则。

3. 使用ALTER DATABASE 语句修改排序规则另一种修改数据库排序规则的方式是使用ALTER DATABASE 语句。

该语句用于修改数据库的属性,包括排序规则。

以下是使用ALTER DATABASE 语句修改排序规则的步骤:- 打开SQL Server Management Studio,并连接到目标数据库的服务器。

- 在查询编辑器中,键入以下ALTER DATABASE 语句:ALTER DATABASE [数据库名称] COLLATE [新排序规则名称];- 将“数据库名称”替换为目标数据库的名称,并将“新排序规则名称”替换为希望应用于数据库的新排序规则的名称。

sql修改列名方法

sql修改列名方法

sql修改列名方法在SQL中,如果你想修改表的列名,你可以使用`ALTER TABLE`语句配合`CHANGE`子句。

以下是具体的步骤和示例:1. 使用`CHANGE`子句:`CHANGE`子句用于修改列的名称和/或数据类型。

语法如下:```sqlALTER TABLE table_nameCHANGE old_column_name new_column_name column_type;```2. 示例:假设我们有一个名为`students`的表,其中有一个名为`first_name`的列,我们想将其重命名为`firstname`。

```sqlALTER TABLE studentsCHANGE first_name firstname VARCHAR(50);```注意:在上述示例中,我们还修改了数据类型为`VARCHAR(50)`,但这取决于你的需求。

如果原列的数据类型不需要更改,可以省略该部分。

3. 注意事项:在执行此类操作之前,建议备份数据库或表。

如果你只是想改变列的名称而不改变数据类型或属性,上面的语句就足够了。

但如果你还想更改数据类型或其他属性,你可能需要提供更多信息。

在某些数据库系统中,如MySQL,列的重命名可能需要使用不同的语法。

例如,在MySQL中,你可以使用以下语法:```sql`ALTER TABLE students CHANGE first_name firstname VARCHAR(50);````4. 检查修改:执行上述命令后,你可以使用`DESCRIBE`或`SHOW COLUMNS`命令来确认列名是否已成功更改。

总之,更改列名的基本方法是使用`ALTER TABLE`语句和`CHANGE`子句,但确切的语法可能因数据库系统而异。

因此,最好参考特定数据库的官方文档。

mssql数据库添加,修改,删除字段

mssql数据库添加,修改,删除字段

mssql数据库添加,修改,删除字段通⽤式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0alter table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为0alter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0alter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数alter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数alter table [表名] add 字段名 varchar(N) [null] 增加变长⽂本型字段⼤⼩为N(1~255)alter table [表名] add 字段名 char [null] 增加定长⽂本型字段⼤⼩固定为255alter table [表名] add 字段名 Datetime default 函数增加⽇期型字段,其中函数可以是 now(),date()等,表⽰缺省值(上⾯都是最常⽤的,还有其他的属性,可以参考下⾯的数据类型描述)删除字段: alter table [表名] drop 字段名修改变长⽂本型字段的⼤⼩:alter table [表名] alter 字段名 varchar(N)删除表: drop table [表名]alter table Category add IncreaseMonth varchar(10) nullalter table Category add IncreaseValue decimal(18,2) default0alter table Category add ReduceMonth varchar(10) nullalter table Category add ReduceValue decimal(18,2) default0select*from Student--修改表名EXEC SP_RENAME 'Student', 'Student88'--改表名--添加字段alter TABLE Student add kecheng2 varchar(20)---修改字段类型alter table Student alter column kecheng varchar(50)--删除字段alter TABLE Student drop column kecheng2--修改字段列名EXEC SP_RENAME 'Student.kecheng2', 'dizhi' ,'COLUMN'--改列名。

如何修改SQL数据库里面一组数据的某个属性

如何修改SQL数据库里面一组数据的某个属性

如何修改SQL数据库里面一组数据的某个属性要修改SQL数据库中的一组数据的一些属性,可以通过使用UPDATE 语句来实现。

UPDATE语句允许我们修改表中的记录,以更新指定的列的值。

下面是一个详细的步骤来修改SQL数据库中一组数据的一些属性。

步骤1:了解表结构和数据在修改数据库中的数据之前,我们首先需要了解要修改的数据所在的表结构和当前的数据。

可以通过使用DESCRIBE语句查看表的结构,以及使用SELECT语句查看要修改的数据。

步骤2:编写UPDATE语句根据了解到的表结构和数据,我们可以编写UPDATE语句来修改指定的属性。

UPDATE语句的基本语法如下:```UPDATE table_nameSET column_name = new_valueWHERE condition;```在这个语句中,`table_name`是要修改的表的名称,`column_name`是要修改的属性的名称,`new_value`是要更新的新值,`condition`是用于指定要修改哪些行的条件。

步骤3:执行UPDATE语句一旦编写好UPDATE语句,我们就可以执行它来修改数据库中的数据。

可以使用SQL客户端工具,如MySQL Workbench或phpMyAdmin,或者在编程语言中执行查询来执行UPDATE语句。

步骤4:验证修改在执行UPDATE语句之后,我们应该验证修改是否成功。

可以重新运行SELECT语句,查看更新后的属性值是否已经更改。

需要注意的是,修改数据库中的数据可能会对其他依赖于该属性的相关数据产生影响。

因此,在修改数据库中的数据之前,要事先确定修改的影响范围,并确保进行适当的测试。

此外,为了避免意外修改或数据丢失,建议在执行UPDATE语句之前,先备份数据库。

这样可以在需要时还原到先前的状态。

总结:要修改SQL数据库中一组数据的一些属性,需要了解表结构和数据,编写UPDATE语句,执行UPDATE语句并验证修改。

mysql命令行命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。

mysql命令行命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。

mysql命令⾏命令和SQL语句,MySQL修改删除增加字段类型,字段数据等。

⼀ . 常⽤mysql命令⾏命令1 .启动MYSQL服务 net start mysql停⽌MYSQL服务 net stop mysql2 . netstat –na | findstr 3306 查看被监听的端⼝ , findstr⽤于查找后⾯的在端⼝是否存在3 . 在命令⾏中登陆MYSQL控制台 , 即使⽤ MYSQL COMMEND LINE TOOL语法格式 mysql –user=root –password=123456 db_name或 mysql –uroot –p123456 db_name4 . 进⼊MYSQL命令⾏⼯具后 , 使⽤status; 或\s 查看运⾏环境信息5 . 切换连接数据库的语法 : use new_dbname;6 . 显⽰所有数据库 : show databases;7 . 显⽰数据库中的所有表 : show tables;8 . 显⽰某个表创建时的全部信息 : show create table table_name;9 . 查看表的具体属性信息及表中各字段的描述Describe table_name; 缩写形式 : desc table_name;⼆ . MySql中的SQL语句1 . 数据库创建 : Create database db_name;数据库删除 : Drop database db_name; 删除时可先判断是否存在,写成 : drop database if exits db_name2 . 建表 : 创建数据表的语法 : create table table_name (字段1 数据类型 , 字段2 数据类型);例 : create table mytable (id int , username char(20));删表 : drop table table_name; 例 : drop table mytable;8 . 添加数据 : Insert into 表名 [(字段1 , 字段2 , ….)] values (值1 , 值2 , …..);如果向表中的每个字段都插⼊⼀个值,那么前⾯ [ ] 括号内字段名可写也可不写例 : insert into mytable (id,username) values (1,’zhangsan’);9 . 查询 : 查询所有数据 : select * from table_name;查询指定字段的数据 : select 字段1 , 字段2 from table_name;例 : select id,username from mytable where id=1 order by desc;多表查询语句------------参照第17条实例10 . 更新指定数据 , 更新某⼀个字段的数据(注意,不是更新字段的名字)Update table_name set 字段名=’新值’ [, 字段2 =’新值’ , …..][where id=id_num] [order by 字段顺序]例 : update mytable set username=’lisi’ where id=1;Order语句是查询的顺序 , 如 : order by id desc(或asc) , 顺序有两种 : desc倒序(100—1,即从最新数据往后查询),asc(从1-100)Where和order语句也可⽤于查询select 与删除delete11 . 删除表中的信息 :删除整个表中的信息 : delete from table_name;删作表中指定条件的语句 : delete from table_name where 条件语句 ; 条件语句如 : id=3;12 . 创建数据库⽤户CREATE USER username1 identified BY ‘password’ , username2 IDENTIFIED BY ‘password’….⼀次可以创建多个数据库⽤户13 . ⽤户的权限控制:grant库,表级的权限控制 : 将某个库中的某个表的控制权赋予某个⽤户Grant all ON db_name.table_name TO user_name [ indentified by ‘password’ ];14 . 表结构的修改① 增加⼀个字段格式:alter table table_name add column (字段名字段类型); ----此⽅法带括号指定字段插⼊的位置:alter table table_name add column 字段名字段类型 after 某字段;②删除⼀个字段:alter table table_name drop字段名;③ 修改字段名称/类型alter table table_name change 旧字段名新字段名新字段的类型;④ 改表的名字alter table table_name rename to new_table_name;⑤ ⼀次性清空表中的所有数据truncate table table_name; 此⽅法也会使表中的取号器(ID)从1开始15 . 增加主键,外键,约束,索引。

mysql创建库的sql语句

mysql创建库的sql语句

mysql创建库的sql语句一、创建数据库1. 创建数据库:`CREATE DATABASE 数据库名;`2. 选择当前操作的数据库:`USE 数据库名;`二、创建数据表1. 创建一个新表:`CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);`2. 创建一个新表,且向其添加几行:`CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...) VALUES (值1, 值2, ...);`3. 创建一个新表,并增加一个主键:`CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型,...) PRIMARY KEY (列名);`4. 创建表的另一种方式,将表特定定义语句写到另一个文件中:`CREATE TABLE 表名 (Arg1Name Arg1Type, Arg2Name Arg2Type, ...) ``TYPE = MyISAM``COMMENT ='Table Comment'``AVG_ROW_LENGTH = 8192``ROW_FORMAT = FIXED;`三、创建字段1. 创建字段并添加说明:`CREATE TABLE 表名 (列名1 数据类型 COMMENT '列说明', 列名2 数据类型 COMMENT '列说明', ...);`2. 向指定表中添加字段:`ALTER TABLE 表名 ADD 列名数据类型;`3. 从一个已有表拷贝字段:`CREATE TABLE 表名 (SELECT * FROM 已有表);`四、修改字段名称1. 修改指定表中指定字段的名称:`ALTER TABLE 表名 CHANGE 原列名新列名数据类型;`2. 将指定表的字段的顺序重新排列:`ALTER TABLE 表名 MODIFY 列名数据类型 AFTER 在其之后的列名;`3. 将指定字段的内容大小写转换:`UPDATE 表名 SET 列名 = UPPER(列名) WHERE 条件;`五、更改字段属性1. 将字段类型修改为指定类型:`ALTER TABLE 表名 MODIFY 列名新类型;`2. 设置字段默认值:`ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;`3. 修改字段的长度:`ALTER TABLE 表名 ALTER 列名 TYPE VARCHAR(长度);`六、删除字段1. 从表中删除字段:`ALTER TABLE 表名 DROP 列名;`2. 从指定表中删除多个字段:`ALTER TABLE 表名 DROP 列名1, DROP 列名2;`3. 使用`DESC`命令查看表中字段信息:`DESC 表名;`七、删除表1. 从数据库中删除一个表:`DROP TABLE 表名;`2. 从指定数据库中删除多个表:`DROP TABLE 表名1, 表名2, 表名3;`。

oracle alter语句

oracle alter语句

oracle alter语句Oracle ALTER语句是用来修改数据库对象的结构或属性的命令。

下面列举了10个常用的Oracle ALTER语句及其用法。

1. ALTER TABLE语句用于修改现有表的结构。

可以添加、修改或删除表的列,以及修改列的数据类型、长度或约束条件。

例如,可以使用以下语句将一个新列添加到表中:```sqlALTER TABLE 表名 ADD 列名数据类型;```2. ALTER COLUMN语句用于修改表中现有列的属性。

可以修改列的数据类型、长度、约束条件等。

例如,可以使用以下语句将表中的某一列的数据类型修改为VARCHAR2(100):```sqlALTER TABLE 表名 MODIFY 列名 VARCHAR2(100);```3. ALTER INDEX语句用于修改现有索引的属性。

可以修改索引的名称、类型、列等。

例如,可以使用以下语句将索引重命名:```sqlALTER INDEX 索引名 RENAME TO 新索引名;```4. ALTER VIEW语句用于修改现有视图的定义。

可以修改视图的查询语句、列名等。

例如,可以使用以下语句修改视图的查询语句:```sqlALTER VIEW 视图名 AS 新查询语句;```5. ALTER SESSION语句用于修改当前会话的属性。

可以修改会话的时间区域、语言、日期格式等。

例如,可以使用以下语句将会话的时间区域修改为'Asia/Shanghai':```sqlALTER SESSION SET TIME_ZONE = 'Asia/Shanghai';```6. ALTER USER语句用于修改用户的属性。

可以修改用户的密码、默认表空间、临时表空间等。

例如,可以使用以下语句修改用户的密码:```sqlALTER USER 用户名 IDENTIFIED BY 新密码;```7. ALTER TABLESPACE语句用于修改表空间的属性。

postgres alter语法

postgres alter语法

Postgres是一种开源的关系型数据库管理系统,它提供了丰富的功能和灵活的语法,可以满足各种复杂的数据管理需求。

在Postgres中,ALTER命令用于修改数据库对象的结构或属性,包括表、索引、视图等。

本文将详细介绍Postgres中ALTER语法的使用方法和常见示例。

一、ALTER TABLE语法1. ALTER TABLE命令用于修改表的结构和属性,常见的语法格式如下:```sqlALTER TABLE table_name[ ONLY ] nameaction [, ... ][ * ]```其中,table_name是要修改的表的名称,ONLY关键字用于指定只修改指定表而不包括其子表,name是指定要修改的表的名称,action是指定要执行的操作,可以包括ADD、DROP、RENAME、ALTER等多种操作,*用于指定所有列。

2. 常见的ALTER TABLE操作包括:- 添加新列```sqlALTER TABLE table_nameADD column_name datatype;```- 删除列```sqlALTER TABLE table_nameDROP column_name;```- 修改列数据类型```sqlALTER TABLE table_nameALTER COLUMN column_name TYPE new_datatype; ```- 重命名列```sqlALTER TABLE table_nameRENAME column_name TO new_column_name;```- 添加主键约束```sqlALTER TABLE table_nameADD PRIMARY KEY (column_name);```- 添加外键约束```sqlALTER TABLE table_nameADD FOREIGN KEY (column_name) REFERENCESanother_table (another_column);```以上是常见的ALTER TABLE操作示例,通过这些操作可以对表的结构和约束进行灵活的修改和管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL修改数据库表的列属性(ALTER语句)我们可以用客户端的语句改写,psql比如把数据库表journal里的keyword,ekeyword属性改为character(350),原来为character(200),那么我们可以这样操作:psql postgres -c "ALTER TABLE journal ALTER keyword TYPE character(350)"psql postgres -c "ALTER TABLE journal ALTER ekeyword TYPE character(350)"好了,修改结束。

附ALTER语句的文档。

----------------------ALTER TABLE [ ONLY ]name[ * ]action[, ... ]ALTER TABLE [ ONLY ]name[ * ]RENAME [ COLUMN ]column TO new_columnALTER TABLE nameRENAME TO new_nameALTER TABLE nameSET SCHEMA new_schema这里action是下列之一:ADD [ COLUMN ]columntype[column_constraint[ ... ] ]DROP [ COLUMN ]column[ RESTRICT | CASCADE ]ALTER [ COLUMN ]column TYPE type[ USING expression]ALTER [ COLUMN ]column SET DEFAULT expressionALTER [ COLUMN ]column DROP DEFAULTALTER [ COLUMN ]column{ SET | DROP } NOT NULLALTER [ COLUMN ]column SET STATISTICS integerALTER [ COLUMN ]column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }ADD table_constraintDROP CONSTRAINT constraint_name[ RESTRICT | CASCADE ]DISABLE TRIGGER [trigger_name| ALL | USER ]ENABLE TRIGGER [trigger_name| ALL | USER ]CLUSTER ON index_nameSET WITHOUT CLUSTERSET WITHOUT OIDSOWNER TO new_ownerSET TABLESPACE new_tablespace描述ALTER TABLE变更一个现存表的定义。

它有好几种子形式:ADD COLUMN这种形式用和CREATE TABLE里一样的语法向表中增加一个新的字段。

DROP COLUMN这种形式从表中删除一个字段。

请注意,和这个字段相关的索引和表约束也会被自动删除。

如果任何表之外的对象依赖于这个字段,你必须说CASCADE,比如,外键参考,视图等等。

ALTER COLUMN TYPE这种类型改变表中一个字段的类型。

该字段涉及的索引和简单的表约束将被自动地转换为使用新的字段类型,方法是重新分析最初提供的表达式。

可选的USING子句声明如何从旧的字段值里计算新的字段值;如果省略,那么缺省的转换就是从旧类型像新类型的赋值转换。

如果从旧数据类型到新类型没有隐含或者赋值的转换,那么必须提供一个USING。

SET/DROP DEFAULT这种形式为一个字段设置或者删除缺省值。

请注意缺省值只应用于随后的INSERT命令;它们不会导致已经在表中的行的数值的修改。

我们也可以为视图创建缺省,这个时候它们是在视图的ON INSERT规则应用之前插入INSERT语句中去的。

SET/DROP NOT NULL这些形式修改一个字段是否标记为允许NULL 值或者是拒绝NULL 值。

如果表在字段中包含非空值,那么你只可以SET NOT NULL。

SET STATISTICS这个形式为随后的ANALYZE操作设置每字段的统计收集目标(default_statistics_target)。

目标的范围可以在 0 到1000 之内设置;另外,把他设置为-1 则表示重新恢复到使用系统缺省的统计目标。

有关PostgreSQL查询规划器使用的统计信息的更多信息,请参考Section 13.2。

SET STORAGE这种形式为一个字段设置存储模式。

这个设置控制这个字段是内联保存还是保存在一个附属的表里,以及数据是否要压缩。

PLAIN必需用于定长的数值,比如integer,并且是内联的,不压缩的。

MAIN用于内联,可压缩的数据。

EXTERNAL用于外部保存,不压缩的数据,而EXTENDED用于外部的压缩数据。

EXTENDED是大多数支持非PLAIN存储的数据之缺省。

使用EXTERNAL将令在text字段上的子字串操作更快,付出的代价是增加了存储空间。

请注意SET STORAGE本身并不改变表上的任何东西,只是设置将来的表操作时,建议使用的策略。

参阅Section 50.2获取更多信息。

ADDtable_constraint这个形式给表增加一个新的约束,用的语法和CREATE TABLE一样。

DROP CONSTRAINT这个形式删除一个表上的约束。

目前,在表上的约束不要求有唯一的名字,因此可能有多个约束匹配声明的名字。

所有这样的约束都将被删除。

DISABLE/ENABLE TRIGGER这个形式关闭或者打开属于该表的触发器。

一个被关闭掉的触发器是系统仍然知道的,但是在触发器事件发生的时候不会被执行。

对于一个推迟了的触发器,在事件发生的时候会检查打开状态,而不是在函数实际执行的时候。

我们可以通过申明名字的方法打开或者关闭任意一个触发器,或者是该表上的所有触发器,或者只是用户触发器(这个选项排除了那些用于实现外键约束的触发器)。

打开或者关闭约束触发器要求超级用户权限;这么做的时候应该小心,因为如果触发器不执行的话,约束保证的数据完整性也就没有办法确保了。

CLUSTER这种形式为将来的CLUSTER选项选择缺省索引。

它实际上并不重新对表建簇。

SET WITHOUT CLUSTER这种形式从表中删除最新使用的CLUSTER索引。

这样会影响将来那些没有声明索引的建簇操作。

SET WITHOUT OIDS这种形式从表中删除oid系统字段。

它和DROP COLUMN oid RESTRICT完全相同,只不过是如果表上已经没有oid 字段了,那么它不会报告错误。

请注意,不存在某种ALTER TABLE的变种可以在删除了OID 之后再把它们恢复回来。

RENAMERENAME形式改变一个表的名字(或者是一个索引,一个序列,或者一个视图)或者是表中一个独立字段的名字。

它对存储的数据没有任何影响。

OWNER这个形式改变表,序列或者视图的所有者为指定所有者。

SET TABLESPACE这种形式把表的表空间修改为指定的表空间并且把与表相关的数据文件移动到新的表空间去。

如果在表上呦索引,则不会移动。

但是他们可以通过额外的SET TABLESPACE命令移动。

参阅CREATE TABLESPACE。

RENAMERENAME形式改变一个表(或者一个索引,序列,或者视图)的名字,或者是表中独立字段的名字。

它们对存储的数据没有影响。

SET SCHEMA这种形式把表移动到另外一个模式。

相关的索引,约束,以及SERIAL 字段的序列都跟着移动。

除了RENAME和SET SCHEMA之外所有动作都可以捆绑再一个多次修改的列表中同时施用。

比如,我们可以在一个命令里增加几个字段和/或修改几个字段的类型。

对于大表,这么做特别有用,因为只需要对该表做一次处理。

要使用ALTER TABLE,你必需拥有该表。

要修改一个表的模式,你必须在新的模式上有CREATE权限。

要修改所有者,你必须还是新的所有角色的直接或者间接的成员,并且该角色在该表的模式上必须拥有CREATE权限。

(这样的限制就保证了修改所有者这个动作和删除、重建该表能做到的动作没有什么区别。

不过,超级用户可以修改任何表的所有者。

)参数table试图更改的现存表(可能有模式修饰)的名称。

如果声明了ONLY,则只更改该表。

如果没有声明ONLY,则该表及其所有后代表(如果有)都被更新。

我们可以在表名字后面附加一个*表示后代表都被扫描,但是在目前的版本里,这是缺省行为。

(在7.1之前的版本,ONLY是缺省的行为。

)缺省可以通过改变配置选项sql_inheritance来改变。

column现存或新的字段名称。

new_column现存字段的新名称。

new_name表的新名称。

type新字段的类型,或者现存字段的新类型。

table_constraint表的新的约束定义。

constraint_name要删除的现有约束的名字。

trigger_name要打开或者关闭的单个触发器的名字。

ALL打开或者关闭属于该表的所有触发器。

(如果这些触发器中有外键约束,那么就要求超级用户权限。

)USER打开或者关闭所有属于该表的非外键约束触发器。

index_name要标记为建簇的表上面的索引名字。

CASCADE自动删除依赖于被依赖字段或者约束的对象(比如,引用该字段的视图)。

RESTRICT如果字段或者约束还有任何依赖的对象,则拒绝删除该字段。

这是缺省行为。

new_owner该表的新所有者的用户名。

new_tablespace这个表将要移动往的表空间名字。

new_schema表将移动前往的模式的名字。

注意COLUMN关键字是多余的,可以省略。

如果用ADD COLUMN增加一个字段,那么所有表中现有行都初始化为该字段的缺省值(如果没有声明DEFAULT子句,那么就是NULL)。

用一个非空缺省增加一个字段或者是改变一个字段的现有类型会要求整个表的重写。

对于大表来说,这个操作可能会花很长时间;并且它还临时需要两倍的磁盘空间。

增加一个CHECK或者NOT NULL约束要求扫描该表以保证现有的行复合约束要求。

提供在一个ALTER TABLE里面声明多个修改的主要原因是原先需要的对表的多次扫描和重写可以组合成一个回合。

DROP COLUMN命令并不是物理上把字段删除,而只是简单地把它标记为SQL 操作中不可见的。

随后对该表的插入和更新将在该字段存储一个NULL。

因此,删除一个字段是很快的,但是它不会立即缩减你的表在磁盘上的大小,因为被删除了的字段占据的空间还没有回收。

相关文档
最新文档