修改字段名称

alter table xgj  rename column  old_name to new_name;

修改字段类型

alter table tablename modify (column datatype [default value][null/not null],….);

栗子

假设表xgj,有一个字段为name,数据类型char(20)。

create table xgj(
id number(9) ,
name char(20)
)

1、字段为空,则不管改为什么字段类型,可以直接执行:

SQL> select  * from xgj ;ID NAME
---------- --------------------SQL> alter table xgj modify(name varchar2(20));Table alteredSQL> 

2、字段有数据,若兼容,改为varchar2(20)可以直接执行:

--紧接着第一个情况操作,将name的类型改为创建时的char(20)
SQL> alter table xgj modify(name char(20));Table altered
--插入数据
SQL> insert into xgj(id,name) values (1,'xiaogongjiang');1 row insertedSQL> select * from xgj;ID NAME
---------- --------------------1 xiaogongjiangSQL> alter table xgj modify(name varchar2(20));Table alteredSQL> desc xgj;
Name Type    Nullable Default Comments
---- ------------ -------- ------- --------
ID NUMBER(9) Y
NAME VARCHAR2(20) Y                        SQL> alter table xgj modify(name varchar2(40));
Table alteredSQL> alter table xgj modify(name char(20));
Table altered

3、字段有数据,当修改后的类型和原类型不兼容时 ,执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”

栗子:

--建表
create table xgj (col1 number, col2 number) ;
--插入数据
insert into  xgj(col1,col2) values (1,2);
--提交
commit ;
--修改col1 由number改为varchar2类型 (不兼容的类型)
alter table xgj modify ( col1 varchar2(20))

解决办法:

  • 修改原字段名col1 为col1 _tmp
alter table xgj rename column col1  to col1_tmp;
  • 增加一个和原字段名同名的字段col1
alter table xgj add col1 varchar2(20);
  • 将原字段col1_tmp数据更新到增加的字段col1
update xgj  set col1=trim(col1_tmp);
  • 更新完,删除原字段col1_tmp
alter table xgj drop column col1_tmp;

总结:
1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。
2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。


添加字段

alter table tablename add (column datatype [default value][null/not null],….);

使用一个SQL语句同时添加多个字段:

alter table xgjadd (name varchar2(30)  default ‘无名氏’ not null,age integer default 22 not null,salary number(9,2));

删除字段

alter table tablename drop (column);

创建带主键的表

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_C002715

alter 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增加修改删除字段/主键相关推荐

  1. oracle修改主键多字段,Oracle增加修改删除字段/主键

    修改字段名称 alter table xgj rename column old_name to new_name; 修改字段类型 alter table tablename modify (colu ...

  2. Oracle 增加修改删除字段与添加注释

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter ...

  3. Oracle增加修改删除字段

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 例:alter table ...

  4. Oracle 增加修改删除字段

    修改字段名语法:alter table tableName rename column oldCName to newCName; 例:alter table student rename colum ...

  5. oracle移除字段默认值,Oracle——增加修改删除字段

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 例:alter table ...

  6. HIVE 增加修改删除字段

    HIVE 增加修改删除字段 非分区表 增加字段 修改字段(修改字段名称.类型.注释.顺序) 删除字段 分区表 新增字段 修改字段(change column) 替换字段(replace column) ...

  7. Oracle添加修改删除字段操作与注意事项

    在Oracle中对字段进行操作的时候和MySQL是有些许不同的. 大部分修改字段都是在建表之后或者数据库中已有数据的时候,我们需要注意的有以下几点: 1.添加字段: alter table fnd_e ...

  8. oracle中设置表的主键字段为自增序列(实例)

    oracle中设置表的主键字段为自增序列(实例) 1.首先创建一个表(如日志表) //删除库表中存在的日志表 drop table S_LOG_INFO cascade constraints; // ...

  9. oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作

    oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作 查看当前用户的缺省表空间 SQL>select username,default_tablespace fromuser ...

最新文章

  1. 曾经用过的Sql Server分页方法小结
  2. 简书markdown支持html,简书上使用Markdown(超详细)
  3. 神策数据荣膺“2017 年度最受欢迎企业服务商 Top 10”
  4. java集成groovy
  5. PostCSS自学笔记(二)【番外篇二】
  6. Java中的函数传递
  7. 开源自研新基建,内核实践云数据,当此方为嘉年华 - 2020嘉年华大会侧记
  8. VisualStudio2022创建.ASP.NET应用程序
  9. 32位服务器系统支持8G内存,32位系统怎么支持8g内存条win10 64位系统闲置服务器...
  10. 计算机仿真实验碰撞实验原理,车辆正面碰撞中的耐撞性能仿真分析
  11. 海归首选“北上广” 薪资期望不太高 元芳你怎么看?
  12. Mac的日常使用之免费NTFS for Mac (mounty)一款免费的NTFS 。畅快的使用移动硬盘
  13. 用Python做三角形的面积
  14. 步进电机S曲线的生成
  15. 差分数组分析详解+例题
  16. U盘exe病毒解决方法
  17. 【WSL2】配置连接 USB 设备并使用主机的 USB 摄像头
  18. python做除法有不精确的尾数_python除法运算的一点讨论,大神指点一个问题没有解决。谢谢。。...
  19. Hive转换常用函数
  20. 思科模拟器之网络访问控制

热门文章

  1. mongodb update
  2. Python中的random模块
  3. 江西理工大学c语言程序设计,C语言程序设计
  4. 10. Leetcode 209. 长度最小的子数组 (数组-同向双指针-滑动窗口)
  5. Leetcode 剑指 Offer 53 - I. 在排序数组中查找数字 I (每日一题 20210928)
  6. scipy笔记:scipy.sparse
  7. Flink从入门到精通100篇(二十四)-对Flink SQL Client 源码做深度解析
  8. 【数学建模】MATLAB应用实战系列(八十二)-【数学建模】非线性多元回归(附MATLAB代码)
  9. 使用Python绘制热图的库
  10. ubuntu系统在vmware中无法联网问题解决