首发微信公众号:SQL数据库运维

原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1&sn=450e9e94fa709b5eeff0de371c62072b&chksm=ea37536cdd40da7a94e165ce4b4c6e70fb1360d51bed4b3566eee438b587fa231315d0a5a5b3&token=1491694448&lang=zh_CN#rd


日常工作中,很多情况下都会遇到对原数据表的修改,特别是修改数据字段的长度,会经常的遇到,那么要修改现有表的结构或者新增字段或修改字段长度,就可以使用ALTER TABLE语句了,基础语法如下:

ALTER TABLE table_name action;

ALTER TABLE语句可用来:

  • 添加一个或多个列

  • 修改列定义

  • 删除一列或多列

  • 重命名列名称

  • 重命名表名称


在之前我们新建了一个stuinfo的数据表,新建数据表参考链接:Oracle中新建数据表的两种方法(点击文字可跳转),下面将使用这个表进行ALTER TABLE语句应用的相关操作演示。

原表信息如下:

1. Oracle ALTER TABLE ADD列示例

将新列添加到stuinfo表中,可以使用以下语法:

ALTER TABLE table_name
ADD column_name type constraint;

举例,将一个列名为birthdate的新列添加到stuinfo表中:

ALTER TABLE JT_CS.STUINFO
ADD birthdate DATE ;

添加新列后的结果显示

如果需要同时向stuinfo表中添加多列,可以按如下所示语法将新列置于括号内:

ALTER TABLE table_name
ADD (
column_name type constraint,
column_name type constraint,
...
);

举例,将phone、email两列添加到stuinfo表中:

ALTER TABLE JT_CS.STUINFO
ADD (
phone VARCHAR(20),
email VARCHAR(100)
);

添加新列后的结果显示

注意:请谨记在添加新列时,如果添加新列时需要使用NOT NULL约束,则需要保证在约束添加前数据表必须为空,不然将无法添加新列(提示如下图);不能添加表中已经存在的列,不然会导致错误。另外,ALTER TABLE ADD列语句在表的末尾添加新列。Oracle没有提供直接的方法来允许您像其他数据库系统(如MySQL)那样指定新列的位置。

由于之前新建的数据表已经插入了数据,为了方便操作,这里我就不添加约束了,如果想要添加,在DATA数据类型后边添加NOT NULL即可。

点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。

Oracle中ALTER TABLE的五种用法(一)的更多相关文章

  1. webpack中,require的五种用法

    a.js: module.exports = function(x){ console.log(x); } 一,commonjs同步: var b = require('./a');b('你好')// ...

  2. oracle中的exists 和not exists 用法 in与exists语句的效率问题

    博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源(  in与exi ...

  3. Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题

    转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: ...

  4. ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

    ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...

  5. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  6. C#this的五种用法

    this的五种用法: 1.使用被掩盖的成员变量: class AA { int a; public void set1(int a) { this.a = a;//right } public voi ...

  7. ASP.NET MVC中Area的另一种用法

    ASP.NET MVC中Area的另一种用法 [摘要]本文只是为一行代码而分享 context.MapRoute("API", "api/{controller}/{ac ...

  8. js中声明Number的五种方式

    转载自:http://www.jb51.net/article/34191.htm <!DOCTYPE html> <html> <head> <meta c ...

  9. 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

    ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...

  10. 下面介绍mysql中模糊查询的四种用法:

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

随机推荐

  1. https安全性 带给im 消息加密的启发

    大家好,我是蓝胖子,在之前# MYSQL 是如何保证binlog 和redo log同时提交的?这篇文章里,我们可以从mysql的设计中学会如何让两个服务的调用逻辑达到最终一致性,这也是分布式事务实现 ...

  2. ET介绍——数值组件设计

    类似魔兽世界,moba这种技能极其复杂,灵活性要求极高的技能系统,必须需要一套及其灵活的数值结构来搭配.数值结构设计好了,实现技能系统就会非常简单,否则就是一场灾难.比如魔兽世界,一个人物的数值属性非 ...

  3. 前端使用 Konva 实现可视化设计器(1)

    使用 konva 实现一个设计器交互,首先考虑实现设计器的画布. 一个基本的画布: [展示]网格.比例尺 [交互]拖拽.缩放 "拖拽"是无尽的,"缩放"是基于鼠 ...

  4. 深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践

    Java 线程 线程使程序能够通过同时执行多个任务而更有效地运行. 线程可用于在不中断主程序的情况下在后台执行复杂的任务. 创建线程 有两种创建线程的方式. 扩展Thread类 可以通过扩展Threa ...

  5. 深入了解 Java 方法和参数的使用方法

    Java 方法 简介 方法是一块仅在调用时运行的代码.您可以将数据(称为参数)传递到方法中.方法用于执行特定的操作,它们也被称为函数. 使用方法的原因 重用代码:定义一次代码,多次使用. 提高代码的结 ...

  6. skywalking源码流程

    我们已经知道skywalking的入口就是premain方法: public static void premain(String agentArgs, Instrumentation instrum ...

  7. CentOS 6.5 LAMP分主机平台的搭建及测试

    CentOS 6.5 LAMP分主机平台的搭建及测试 看似非常之完备,转来抽空测试学习 原文地址:http://www.it165.net/os/html/201403/7595.html 前言   ...

  8. 实训篇-JavaScript-陶渊明去没去过桃花源

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. java调用QQ影音进行截图

    import java.awt.Graphics2D; import java.awt.Image; import java.awt.Robot; import java.awt.Toolkit; i ...

  10. pypinyin 获取拼音,作为智能设备的唤醒比对结果

    from pypinyin import lazy_pinyin,TONE,TONE2,TONE3,NORMAL a = "小七同学" b = "小琦同学" c ...