openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句

文章目录

    • openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句
      • 35.1 语法格式
      • 35.2 参数说明
      • 35.3 示例

openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句

修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。

35.1 语法格式

  • 在一张已经存在的表上添加列。

    ALTER TABLE table_nameADD column_name data_type;
    
  • 在一张已经存在的表上删除列。

    ALTER TABLE table_name DROP COLUMN column_name;
    
  • 修改表的字段类型。

    ALTER TABLE table_nameMODIFY column_name data_type;
    
  • 为一张已经存在表的列增加/删除非空约束(NOT NULL)。

    ALTER TABLE table_nameALTER column_name { SET | DROP } NOT NULL;
    
  • 重命名表中指定的列。

    ALTER TABLE table_name RENAME  column_name TO new_column_name;
    
  • 更新多个列。

    ALTER TABLE table_name MODIFY ( { column_name data_type | column_name [ CONSTRAINT constraint_name ] NOT NULL [ ENABLE ] | column_name [ CONSTRAINT constraint_name ] NULL } [, ...] );
    
  • 对名称的修改不会影响所存储的数据。

    ALTER TABLE table_name RENAME TO new_table_name;
    

35.2 参数说明

  • table_name

    table_name是需要修改的表名。

    若声明了ONLY选项,则只有那个表被更改。若未声明ONLY,该表及其所有子表都将会被更改。另外,可以在表名称后面显示地增加*选项来指定包括子表,即表示所有后代表都被扫描,这是默认行为。

  • column_name

    现存的或新字段的名称。

  • data_type

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

  • new_table_name

    修改后新的表名称。

  • new_column_name

    表中指定列修改后新的列名称。

  • constraint_name

    约束的名称。

35.3 示例

表customer_t1的数据如下。

openGauss=# SELECT * FROM customer_t1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
---------------+---------------+--------------+-------------+--------3869 | hello         | Grace        |             |   10003869 | hello         | Grace        |             |   10003869 |               | Grace        |             |3869 | hello         |              |             |3869 | hello         |              |             ||               |              |             |6985 | maps          | Joes         |             |   22009976 | world         | James        |             |   50004421 | Admin         | Local        |             |   30006881 | maps          | Lily         |             |   10004320 | tpcds         | Lily         |             |   2000
(11 rows)
  • 新增列

    在上面的表中添加新的列。

    openGauss=# ALTER TABLE customer_t1 ADD date time;
    

    查询表customer_t1的结构如下,新增列date成功。

    openGauss=# \d customer_t1Table "public.customer_t1"Column     |          Type          | Modifiers
    ---------------+------------------------+-----------c_customer_sk | integer                |c_customer_id | character(5)           |c_first_name  | character(6)           |c_last_name   | character(8)           |amount        | integer                |date          | time without time zone |
    
  • 修改列数据类型

    修改列c的数据类型character(8) 为character(12)。

    openGauss=# ALTER TABLE customer_t1 MODIFY c_last_name character(12);
    

    查询表customer_t1结构,列c_last_name修改数据类型成功。

    openGauss=# \d customer_t1Table "public.customer_t1"Column     |          Type          | Modifiers
    ---------------+------------------------+-----------c_customer_sk | integer                |c_customer_id | character(5)           |c_first_name  | character(6)           |c_last_name   | character(12)          |amount        | integer                |date          | time without time zone |
    
  • 新增列约束

    删除列c_customer_sk为空的行。

    openGauss=# DELETE FROM customer_t1 WHERE c_customer_sk is NULL;
    

    为列c_customer_sk增加非空约束。

    openGauss=# ALTER TABLE customer_t1 ALTER c_customer_sk SET NOT NULL;
    

    查询表customer_t1结构,列c_customer_sk新增约束成功。

    openGauss=# \d customer_t1Table "public.customer_t1"Column     |          Type          | Modifiers
    ---------------+------------------------+-----------c_customer_sk | integer                | not nullc_customer_id | character(5)           |c_first_name  | character(6)           |c_last_name   | character(12)          |amount        | integer                |date          | time without time zone |
    
  • 修改列名称

    修改列date名称为purchase date。

    openGauss=# ALTER TABLE customer_t1  RENAME  date TO purchase_date;
    

    查询表customer_t1结构,列date名称修改成功。

    openGauss=# \d customer_t1Table "public.customer_t1"Column     |          Type          | Modifiers
    ---------------+------------------------+-----------c_customer_sk | integer                | not nullc_customer_id | character(5)           |c_first_name  | character(6)           |c_last_name   | character(12)          |amount        | integer                |purchase_date | time without time zone |
    
  • 删除列

    删除列purchase_date。

    openGauss=# ALTER TABLE customer_t1 DROP purchase_date;
    

    删除后,表customer_t1的数据如下。

    openGauss=# SELECT * FROM customer_t1;c_customer_sk | c_customer_id | c_first_name | c_last_name | amount
    ---------------+---------------+--------------+-------------+--------3869 | hello         | Grace        |             |   10003869 | hello         | Grace        |             |   10003869 |               | Grace        |             |3869 | hello         |              |             |3869 | hello         |              |             |6985 | maps          | Joes         |             |   22009976 | world         | James        |             |   50004421 | Admin         | Local        |             |   30006881 | maps          | Lily         |             |   10004320 | tpcds         | Lily         |             |   2000
    (10 rows)
    

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/83026.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于应用值迭代的马尔可夫决策过程(MDP)的策略的机器人研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

文章目录 具体步骤附录 笔者的操作环境: Spring Cloud Alibaba:2022.0.0.0-RC2 Spring Cloud:2022.0.0 Spring Boot:3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 具体步骤 因为 …

Three.js光源

目录 Three.js入门 Three.js光源 Three.js阴影 Three.js纹理贴图 本文我们将研究three.js中的灯光类型和JavaScript中的光源,探索不同的光源设置。我们的目标是全面理解光源设置和类型,比如环境光、半球光、矩形光、方向光、点光源和聚光灯。我们将…

智能安防监控:基于Java+SpringBoot实现人脸识别搜索

目录 引言背景介绍目的和重要性 人脸识别技术的基本原理图像采集和预处理特征提取与表示人脸匹配算法 人脸识别搜索的应用领域公告安全和监控社交网络和照片管理 参考实现步骤数据收集与预处理人脸特征提取查询处理 引言 背景介绍 结合人脸识别技术,在工厂、学校、…

Java后台生成ECharts图片

前言 通过echarts的jar包,Java后台生成一张图片,并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

gitlab-Runner搭建

root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行: gitlab-runner register --url https://git…

泊松损坏图像的快速尺度间小波去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Rocky Linux更换为国内源

Rocky Linux提供的可供切换的源列表:Mirrors - Mirror Manager 其中以 COUNTRY 列为 CN 的是国内源。 选择其中一个Rocky Linux 源使用帮助 — USTC Mirror Help 文档 操作前请做好备份 对于 Rocky Linux 8,使用以下命令替换默认的配置 sed -e s|^mirr…

实现静态资源访问的几种方法

什么是静态资源? 静态资源是指在服务器端存储的不会变化的文件,如HTML、CSS、JavaScript、图片、音频、视频等文件。这些文件一般不包含动态内容,每次请求时返回的内容都是固定的。 为什么要使用静态资源? 提升网站性能&#xf…

Docker学习(二十四)报错速查手册

目录 一、This error may indicate that the docker daemon is not running 报错docker login 报错截图:原因分析:解决方案: 二、Get "https://harbor.xxx.cn/v2/": EOF 报错docker login 报错截图:原因分析&#xff1a…

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底,ChatGPT火遍全球,全世界都见识了大语言模型的强大力量。人们对大模型不再陌生,开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等,而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2),这是一个…

Python中enumerate用法详解

目录 1.简介 2.语法 3.参数 4.返回值 5.详解 6.实例 7.补充 1.简介 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 2.语法 以下是 enumerate() 方法的语…

Sencha Ext.NET Crack 快速应用程序的正确工具集

Sencha Ext.NET Crack 快速应用程序的正确工具集 Sencha Ext.NET是一个高级的ASP.NET核心组件框架,它包含了强大的跨浏览器Sencha Ext JS库。通过140多个预构建和专业测试的UI组件实现企业级性能和生产效率。Sencha Ext.NET使用尖端的Web技术创建功能强大的Web应用程…

Transformer理论学习

Transformer出自于论文《attention is all you need》。 一些主流的序列模型主要依赖于复杂的循环结构或者CNN,这里面包含了编解码器等。而Transformer主要的结构是基于注意力机制,而且是用多头注意力机制去替换网络中的循环或者CNN(换言之就是transfor…

可靠传输-选择重传协议SR

一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃 (尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大费。 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,…

Python基础--序列操作/函数

Python基础 1.序列的操作 2.函数 1. 数据类型的具体操作 1.1 序列操作--列表具体操作: #定义列表 listA [] #定义一个空列表 listB [1,2.8,"你好",listA,[1,2,3]] # 访问列表 print(listB)#查看整个列表 print(listB[2])#查看单个…

OpenLayers入门,OpenLayers实现地图原地旋转动画效果

专栏目录: OpenLayers入门教程汇总目录 前言 OpenLayers实现地图原地旋转动画效果,顾名思义,就是站在原地转一圈。 二、依赖和使用 "ol": "^6.15.1"使用npm安装依赖npm install ol@6.15.1使用Yarn安装依赖yarn add olvue中如何使用: vue项目使用…

nodejs登录生成token并验证

目录 一、基础概念 二、JTW 三、实践 一、基础概念 "token": 是一个通用的术语,指代一种用于表示身份、权限或访问凭证的数据结构。它可以是一个字符串、数字或其他形式的数据。 主要用途: 身份验证:在身份验证过程…

(Python)Requests+Pytest+Allure接口自动化测试框架从0到1搭建

前言:本文主要介绍在企业使用Python搭建接口自动化测试框架,数据驱动读取excel表里的数据,和数据库方面的交互,包括关系型数据库Mysql和非关系型数据库MongDB,连接数据库,读取数据库中数据,最后…