修改表字段操作(新增、修改、删除)
對于表字段的操作,有時總時忘記怎麼寫,不特意去記憶的話,總是不出來,喜歡百度以下。以下時介紹Sql Server與Oracle兩種資料結構的文法,對字段結構的增、改、删的差別。
- Sql Server 文法對表字段ddl操作
----sql server
--新增字段
ALTER TABLE [表名] ADD [列名] [列類型];
--在表UserTest添加字段IdNo類型為varchar(30),可為空
ALTER TABLE UserTest add Alias varchar(30) null;
--删除字段
ALTER TABLE [表名] DROP COLUMN [列名];
--删除表UserTest的IdNo字段
ALTER TABLE UserTest drop column IdNo;
---修改字段名
execute sp_rename [表名].[列名],[新列名]
--修改表UserTest的字段IdNo名為IdCode
execute sp_rename 'UserTest.IdNo','IdCode'
---修改字段類型
Alter table [表名] Alter column [列名] [列類型]
--修改表UserTest字段IdCode的類型為int
Alter table UserTest Alter column state int null;
--很奇怪的現象,絕大部分開發人員都不維護字段注釋的
--給表字段添加注釋
execute sp_addextendedproperty 'MS_Description',[注釋],'user','DB schema','table',[表名],'column',[列名];
----添加dbo下的userTest表的IdCode字段注釋為"證件号碼"
execute sp_addextendedproperty 'MS_Description','證件号碼','user','dbo','table','userTest','column','IdCode';
在建表,或新增字段的時候,絕大部分的開發人員是不去給字段添加注釋comment的。
- Oracle 文法對表字段ddl操作
--Oracle
ALTER TABLE [表名] ADD [列名] [列類型];
--在表UserTest添加字段IdNo類型為varchar(30),可為空
ALTER TABLE UserTest add Alias varchar2(30) null;
--修改字段名
alter table [表名] rename column [列名] to [新列名];
--修改表UserTest的字段IdNo名為IdCode
alter table UserTest rename column IdNo to IdCode;
--修改字段類型
alter table [表名] modify ([列名] [列類型]);
--修改表UserTest字段IdCode的類型為int
alter table UserTest modify (IdCode varchar2(30));
--删除
alter table [表名] drop column [列名];
--删除表UserTest的IdNo字段
ALTER TABLE UserTest drop column IdNo;
--很奇怪的現象,絕大部分開發人員都不維護字段注釋的,都不會去編寫如下sql
--添加字段注釋
COMMENT on column [表名].[字段名] is '證件号碼';
--添加userTest表的userName字段注釋為"使用者姓名"
COMMENT on column UserTest.IdNo is '證件号碼';
-
變更表字段類型時注意點
1、如果修改的字段無資料,那麼可以直接執行。
--修改字段類型
alter table [表名] modify ([列名] [列類型]);
--修改表UserTest字段IdNo的類型為int
alter table UserTest modify (IdCode varchar2(30));
2、如果該字段有資料并且新類型和原類型不相容
那麼需要臨時建立一個字段來過度
--1. 先修改原字段名為臨時名
alter table UserTest rename column IdNo to IdNo_temp;
--2. 再新增一個原來字段名字段
ALTER TABLE UserTest add IdNo varchar2(30) null;
--3. 将IdNo_temp資料更新到IdNo字段
Update UserTest set IdNo = IdNo_temp;
--4. 删除掉臨時字段
ALTER TABLE UserTest drop column IdNo_temp;
這四步下來,就更改好了IdNo的字段類型。