openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名

(一)任务描述

本关任务:修改表名,并能顺利查询到修改后表的结构。

(二)相关知识

为了完成本关任务,你需要掌握:
1.如何查看表的结构;
2.如何修改表的名称。

(三)查看数据表基本结构

有强迫症或健忘症的小伙伴们在建好数据库和表以后,通常会怀疑自己刚才是不是敲错了,怎么办?如果不是使用图形界面是不是就没法查看啦?

不存在的,这就告诉你查看口令:\d+
语法规则为:\d+ 表名;

比如本岛主新建了一个名叫t_emp22的表,结构如下:

  CREATE TABLE t_emp22(id INT PRIMARY KEY,id1 INT DEFAULT 2,name VARCHAR(22),sex VARCHAR(2) DEFAULT '男'
) ;


现在来看看“现场”,用\d+查表的结构是这样的。

 postgres=> \d+ t_emp22;Table "gaussdb.t_emp22"Column |         Type          |            Modifiers             | Storage  |Stats target | Description 
--------+-----------------------+----------------------------------+----------+
--------------+-------------id     | integer               | not null                         | plain    || id1    | integer               | default 2                        | plain    || name   | character varying(22) |                                  | extended || sex    | character varying(2)  | default '男'::character varying | extended |   | 
Indexes:"t_emp22_pkey" PRIMARY KEY, btree (id) TABLESPACE pg_default
Has OIDs: no
Options: orientation=row, compression=no


\d+ 可以查看表的字段信息,包括:字段名、字段数据类型、是否为主键、是否有默认值等。

(四)修改表名

随着表越来越多,有时候你会后悔之前的数据表的名字根本没有认真斟酌过,想要重新命名一下,可以做到吗?

答案是:可以!OpenGauss 是通过 ALTER TABLE 语句来修改表名的。

语法规则为: 

ALTER TABLE 旧表名 RENAME to 新表名; 


举个例子,我们先用 \d 看看我们的数据库中有什么表吧。

3b56ca2adb0144b2bc364fe4c74a2906.png

接下来,我们使用 ALTER TABLE 将 t_emp 改名 为 testtb。

ALTER TABLE t_emp RENAME TO testtb; 

db9280fd1b3f4adba8384d4afaa76012.png

改名成功!t_emp 成功变成了 testtb。

接下来你们可以自行体验一下了!

(五)编程要求

根据提示,在右侧编辑器补充代码:

把数据表 tb_emp 改名为jd_emp;

查看该数据库下数据表的列表;

(六)编程实现

56bf670aadd64ccfa63818c1e44dfc50.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、修改字段数据类型

(一)任务描述

本关任务:修改已有字段的数据类型。

(二)相关知识

为了完成本关任务,你需要掌握如何修改字段的数据类型。

(三)修改字段类型

有时,在我们建好一张表后会突然发现,哎呀!数据貌似写错了!怎么办?要删了表再重新建一个新表吗?还是要删了这个字段再新建一个新的字段?
都不用,OpenGauss 中修改字段类型也有专门的语句。

语法规则为:  

ALTER TABLE 表名 ALTER column_name TYPE data_type  ; 
举个例子:
现在我们要把表 t_emp22 中的字段 name 的数据类型改名为 varchar(25)。
表t_emp22结构如下:

CREATE TABLE t_emp22(id INT PRIMARY KEY,name VARCHAR(22),sex VARCHAR(2) DEFAULT '男'
) ; 


输入命令:

ALTER TABLE t_emp22 ALTER name TYPE  varchar(25); 


小提示: 列存表只支持添加字段ADD COLUMN、修改字段的数据类型ALTER TYPE、设置单个字段的收集目标SET STATISTICS、支持更改表名称、支持更改表空间,支持删除字段DROP COLUMN。

(四)编程要求

根据提示,在右侧编辑器补充代码:

把数据表 tb_emp 字段 name 的数据类型改为varchar(30)。

表 tb_emp 表结构如下:4703cc6771bc4263b69e46ae5db60ccb.png
 

(五)编程实现

e1049c8f7df84672bfb24c3345b81700.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、 添加与删除字段

(一)任务描述

本关任务:在指定表添加新的字段,并删除表中的指定字段。

(二)相关知识

为了完成本关任务,你需要掌握:
1.如何往表中添加一个或者多个新的字段,
2.如何删除指定的字段。

(三)添加字段

因为甲方的业务需求是不停变化的,所以在数据库操作中,添加字段可是常有的事。一个完整的字段包括:字段名、数据类型和完整性约束。

增加单列语法规则为:

alter table table_name ADD [ COLUMN ] column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ … ] ] 

增加多列语法规则为:

 alter table  table_name ADD ( { column_name data_type [ compress_mode ] } [, …] )


其中列约束column_constraint为:

[ CONSTRAINT constraint_name ]{ NOT NULL |NULL |CHECK ( expression ) |DEFAULT default_expr  |UNIQUE index_parameters |PRIMARY KEY index_parameters }[ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ] 

常用约束含义:

NOT NULL 约束:确保某列不能有 NULL 值。

DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

UNIQUE 约束:确保某列中的所有值是不同的。

PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

其中列的压缩可选项compress_mode为:

 [ DELTA | PREFIX | DICTIONARY | NUMSTR | NOCOMPRESS ]


举个例子:
现在我们要在表 t_emp22 中增加字段 addr varchar(100)。
表t_emp22结构如下:

CREATE TABLE t_emp22(id INT PRIMARY KEY,name VARCHAR(22),sex VARCHAR(2) DEFAULT '男'
) ; 


输入命令:

ALTER TABLE t_emp22 ADD  COLUMN  addr varchar(25); 

删除字段

有添加的需求就会有删除的需求。删除一个字段就是将数据表中的某个字段从表中移除。

语法规则为: 

 ALTER TABLE table_name DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ]


从表中删除一个字段,和这个字段相关的索引和表约束也会被自动删除。如果任何表之外的对象依赖于这个字段,必须声明CASCADE ,比如视图。
DROP COLUMN命令并不是物理上把字段删除,而只是简单地把它标记为对SQL操作不可见。随后对该表的插入和更新将在该字段存储一个NULL。因此,删除一个字段是很快的,但是它不会立即释放表在磁盘上的空间,因为被删除了的字段占据的空间还没有回收。这些空间将在执行VACUUM时而得到回收。

举个例子:
现在我们要把字段name从上表t_emp22中删除。

ALTER TABLE  t_emp22  DROP COLUMN IF EXISTS name

(四)编程要求

根据提示,在右侧编辑器补充代码:

在数据表 tb_emp 中添加字段 country,数据格式为 varchar(20);

删除数据表 tb_emp 中的字段 salary。

数据表结构如下:2762f42b010b400e9b6834d1c3e8f241.png

(五)编程实现

20cef2c41e414736af9c465be65b72a9.png

 

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

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

相关文章

树莓派5实时时钟(RTC)

树莓派5板载一个实时时钟模块。它可以通过 USB-C 电源插口右侧板上的 J5(BAT) 插口进行电池供电。如果没有互联网连接来通过 NTP 获取时间,RTC 可能会很有用。 可以设置唤醒警报,将树莓派5切换到非常低功耗的状态(大约3mA)。当到达…

分段线性回归

5. 分段线性回归 (Piecewise Linear Regression) 分段线性回归是一种简单的方式,尤其当数据的弧度变化不大但有多个不同趋势段时。可以将数据分为多个区间,每个区间内拟合一条直线。最终的模型是这些直线的组合。 优点:模型简单、易解释&am…

Git下载-连接码云-保姆级教学(连接Gitee失败的解决)

Git介绍 码云连接 一、Git介绍 二、Git的工作机制 下载链接:Git - 下载软件包 三、使用步骤 创建一个wss的文件夹,作为‘工作空间’ 四、连接码云账号 五、连接Gitee失败的解决方法 一、Git介绍 Git是一个免费的、开源的分布式版本控制…

网络工程师的瑞士军刀:深度解析20+常用工具

文章目录 网络工程师的瑞士军刀:深度解析20常用工具一、网络诊断与分析工具1.1 Wireshark1.2 Tcpdump1.3 Ping工具1.4 Tracert(Windows)/Traceroute(Linux)1.5 Nslookup 二、网络管理工具2.1 SNMP(Simple N…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30目录1. Step Guided Reasoning: Improving Mathematical Reasoning using Guidance Generation and Step Reasoning摘要研究背…

【再谈设计模式】原型模式~复制的魔法师

一、引言 在软件工程、软件开发中,创建对象的过程常常涉及复杂的初始化和配置。在某些情况下,直接复制现有对象比从头开始创建新对象更为高效。原型模式(Prototype Pattern)是一种创建型设计模式,允许我们通过复制现有…

【运动的&足球】足球运动员球守门员裁判检测系统源码&数据集全套:改进yolo11-DBBNCSPELAN

改进yolo11-FocalModulation等200全套创新点大全:足球运动员球守门员裁判检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.28 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示…

yocto中一些主要可被改写的函数

以下是 Yocto 中一些主要的可被改写的函数: 1. 源代码获取与准备阶段 do_fetch:从指定位置获取源代码。可用于自定义获取源代码的方式、处理认证或对获取的源进行预处理。do_unpack:解压获取到的源代码包。如果解压格式特殊或解压后需额外处…

React 组件生命周期与 Hooks 简明指南

文章目录 一、类组件的生命周期方法1. 挂载阶段2. 更新阶段3. 卸载阶段 二、函数组件中的 Hooks1. useState2. useEffect3. useContext4. useReducer 结论 好的,我们来详细讲解一下 React 类组件的生命周期方法和函数组件中的钩子(hooks)。 …

数据库连接池实现

目录 前提:如果我要操作多个表,那么就会产生冗余的JDBC步骤,另一个弊端就是每次都需要数据库连接对象(Connection),获取效率低下,每次使用时都需要先进行连接 数据库连接池的特点: …

软件测试基础三(前端知识)

前端基础 1. HTML(超文本标记语言) 1.1. 基本概念 定义:HTML 是用来描述网页的一种语言,指的是超文本标记语言(Hyper Text Markup Language)。它不是编程语言,而是一种标记语言,由…

优化用于传感应用的衬底集成波导技术

ANSYS HFSS 是一款功能强大的电磁仿真软件,支持为微流体生物传感器应用设计和分析衬底集成波导 (SIW) 技术。它为快速设计优化、材料选择、系统集成和虚拟原型制作提供了一个强大的平台。借助 ANSYS HFSS,研究人员和工程师可以高效…

Linux 开机自动挂载硬盘

在日常使用 Linux 系统的过程中,我们可能需要挂载一些机械硬盘或者移动硬盘来存储数据。手动挂载虽然简单,但每次重启后都需要重新操作,未免有些繁琐。那么,如何让硬盘在开机时自动挂载呢?本篇博客将详细介绍如何通过配…

[项目] C++基于多设计模式下的同步异步日志系统

[项目] C基于多设计模式下的同步&异步日志系统 文章目录 [项目] C基于多设计模式下的同步&异步日志系统日志系统1、项目介绍2、开发环境3、核心技术4、日志系统介绍4.1 日志系统的价值4.2 日志系统技术实现4.2.1 同步写日志4.2.2 异步写日志 5、相关技术知识5.1 不定参…

[论文阅读] | 智能体长期记忆

更新记录: 2024.11.2 人大高瓴长期记忆综述 文章目录 人大高瓴长期记忆综述智能体与环境交互记忆的来源/形式/操作来源:(1)当前任务历史信息 (2)其他任务的信息 (3)外部知识形式:如何表达记忆的内容,通过(1)文本 (2)参数(训练到模…

Rust 力扣 - 59. 螺旋矩阵 II

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 使用一个全局变量current记录当前遍历到的元素的值 我们只需要一圈一圈的从外向内遍历矩阵,每一圈遍历顺序为上边、右边、下边、左边,每遍历完一个元素后current 我们需要注意的是如果上…

AppInventor2能否用网络摄像头画面作为屏幕的背景?

// 视频是否可以作为背景? // 有会员提问:能否用网络摄像头的实时画面作为屏幕的背景?就跟这个一样背景全覆盖: 摄像头画面是一个在线的网站链接视频流。 // 原先思路 // 1、目前原生组件无法直接实现这个功能,屏幕…

国产操作系统卖疯了!最营收7.84亿,最低1.5亿

最近看各种报道,似乎国产化有提速的绩效,那么既然如此,各个国产操作系统厂商是不是都起飞了呢? 周末闲暇之余,我们来看看各家的营收表现。 银河麒麟2024年1-9月一共卖了多少钱? 前几天中国软件发布了202…

CDN加速实战:使用七牛云CDN加速阿里云OSS资源访问

今天是双11搞活动,在阿里云1元注册了个域名,想着在学CDN,想使用CDN做个加速项目,但是阿里的要收费,上网查了下七牛云的不收费,想着将七牛云的CDN结合阿里的DNS做个访问加速,刚好看到了阿里的一个文章,照着改了改,实践成功了。 阿里文章:使用CDN加速OSS资源访问_对象…

嵌入式学习——IIC协议

IIC(Inter-Integrated Circuit)是一种串行通信协议,由飞利浦公司于1980年代提出。它允许多个从设备通过两条线(SDA和SCL)与一个或多个主设备进行通信。IIC协议是多主、多从的,适合在短距离内的设备间通信。…