Oracle增加修改删除字段/主键
修改字段名称
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增加修改删除字段/主键相关推荐
- oracle修改主键多字段,Oracle增加修改删除字段/主键
修改字段名称 alter table xgj rename column old_name to new_name; 修改字段类型 alter table tablename modify (colu ...
- Oracle 增加修改删除字段与添加注释
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter ...
- Oracle增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 例:alter table ...
- Oracle 增加修改删除字段
修改字段名语法:alter table tableName rename column oldCName to newCName; 例:alter table student rename colum ...
- oracle移除字段默认值,Oracle——增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 例:alter table ...
- HIVE 增加修改删除字段
HIVE 增加修改删除字段 非分区表 增加字段 修改字段(修改字段名称.类型.注释.顺序) 删除字段 分区表 新增字段 修改字段(change column) 替换字段(replace column) ...
- Oracle添加修改删除字段操作与注意事项
在Oracle中对字段进行操作的时候和MySQL是有些许不同的. 大部分修改字段都是在建表之后或者数据库中已有数据的时候,我们需要注意的有以下几点: 1.添加字段: alter table fnd_e ...
- oracle中设置表的主键字段为自增序列(实例)
oracle中设置表的主键字段为自增序列(实例) 1.首先创建一个表(如日志表) //删除库表中存在的日志表 drop table S_LOG_INFO cascade constraints; // ...
- oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作
oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作 查看当前用户的缺省表空间 SQL>select username,default_tablespace fromuser ...
最新文章
- 曾经用过的Sql Server分页方法小结
- 简书markdown支持html,简书上使用Markdown(超详细)
- 神策数据荣膺“2017 年度最受欢迎企业服务商 Top 10”
- java集成groovy
- PostCSS自学笔记(二)【番外篇二】
- Java中的函数传递
- 开源自研新基建,内核实践云数据,当此方为嘉年华 - 2020嘉年华大会侧记
- VisualStudio2022创建.ASP.NET应用程序
- 32位服务器系统支持8G内存,32位系统怎么支持8g内存条win10 64位系统闲置服务器...
- 计算机仿真实验碰撞实验原理,车辆正面碰撞中的耐撞性能仿真分析
- 海归首选“北上广” 薪资期望不太高 元芳你怎么看?
- Mac的日常使用之免费NTFS for Mac (mounty)一款免费的NTFS 。畅快的使用移动硬盘
- 用Python做三角形的面积
- 步进电机S曲线的生成
- 差分数组分析详解+例题
- U盘exe病毒解决方法
- 【WSL2】配置连接 USB 设备并使用主机的 USB 摄像头
- python做除法有不精确的尾数_python除法运算的一点讨论,大神指点一个问题没有解决。谢谢。。...
- Hive转换常用函数
- 思科模拟器之网络访问控制
热门文章
- mongodb update
- Python中的random模块
- 江西理工大学c语言程序设计,C语言程序设计
- 10. Leetcode 209. 长度最小的子数组 (数组-同向双指针-滑动窗口)
- Leetcode 剑指 Offer 53 - I. 在排序数组中查找数字 I (每日一题 20210928)
- scipy笔记:scipy.sparse
- Flink从入门到精通100篇(二十四)-对Flink SQL Client 源码做深度解析
- 【数学建模】MATLAB应用实战系列(八十二)-【数学建模】非线性多元回归(附MATLAB代码)
- 使用Python绘制热图的库
- ubuntu系统在vmware中无法联网问题解决