当前位置: 首页 > news >正文

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

 

相关文章:

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

一、查看表结构与修改表名 (一)任务描述 本关任务:修改表名,并能顺利查询到修改后表的结构。 (二)相关知识 为了完成本关任务,你需要掌握: 1.如何查看表的结构; 2.如…...

《JVM第3课》运行时数据区

无痛快速学习入门JVM,欢迎订阅本免费专栏 运行时数据区结构图如下: 可分为 5 个区域,分别是方法区、堆区、虚拟机栈、本地方法栈、程序计数器。这里大概介绍一下各个模块的作用,会在后面的文章展开讲。 类加载子系统会把类信息…...

阅读笔记 Contemporary strategy analysis Chapter 14

来源:Robert M. Grant - Contemporary strategy analysis (2018) Chapter 14 External Growth Strategies: Mergers, Acquisitions, and Alliances 合并、收购和联盟 Ⅰ Introduction and Objectives 企业并购与联盟是公司实现快速扩张的重要战略工具。通过这些手段…...

2024网鼎杯青龙组wp:Crypto2

题目 附件内容如下 # coding: utf-8 #!/usr/bin/env python2import gmpy2 import random import binascii from hashlib import sha256 from sympy import nextprime from Crypto.Cipher import AES from Crypto.Util.Padding import pad from Crypto.Util.number import long…...

能通过Ping命令访问CentOS 9 Stream,但在使用Xshell连接

能通过Ping命令访问CentOS 9 Stream,但在使用Xshell进行SSH连接失败 1. **确认SSH服务状态**:2. **检查SSH配置**:要检查和设置PermitRootLogin选项,您需要编辑SSH配置文件/etc/ssh/sshd_config。以下是具体步骤:1. 打…...

Oracle 第19章:高级查询技术

在Oracle数据库中,高级查询技术是数据库管理员和开发人员必须掌握的重要技能。这些技术能够帮助优化查询性能,简化复杂的查询逻辑,并提高数据处理的效率。本章将重点讨论两个关键概念:子查询和连接与并集操作。 子查询 定义: 子…...

Excel:vba运行时错误“7“:内存溢出错误

我这里出现这个错误是在批注中插入图片时报错 原因:我插入的图片不都是jpg的类型的,但是其中的两张图片是webp类型的,但是我把文件后缀名修改成了jpg,以为变成了jpg类型的图片,但是图片在批注里面无法显示,所以运行到第…...

【MyBatis源码】BoundSql分析

基础 BoundSql是对SQL语句及参数信息的封装,它是SqlSource解析后的结果。Executor组件并不是直接通过StaticSqlSource对象完成数据库操作的,而是与BoundSql交互。BoundSql是对Executor组件执行SQL信息的封装,具体实现代码如下: …...

KTHREAD--InitialStack和KernelStack和TSS的esp0

InitialStack和TSS.esp0的关系,在这里可以看到 mov ecx, [esi_KTHREAD.InitialStack] ; esi: newthread lea eax, [ecx-210h] ; 越过FPXSAVE指令存储地址 test byte ptr [eax-1Ah], 2 ; 判断efalgs寄存器的VIF位是否为1 jnz short loc_458743 sub eax, 10h…...

Skia基础运用(Ubuntu环境下使用BUILD.gn)

1.拉取代码 git clone https://skia.googlesource.com/skia python tools/git-sync-deps // 这一步可能会出现部分错误,再次执行直到成功 // 这里面拉取完三方库之后会拉取node,linux等压缩包,从google下载上面执行完,代码就完全…...

Vue中props和data的优先级哪个更高?

前言 Vue组件之间的数据传递是一个非常重要的环节。而在组件内部,我们经常会用到props和data来管理和传递数据。那么,问题来了:当props和data有冲突时,哪个优先级更高呢? 为了更好地理解这个问题,我们先来…...

springboot2.x使用SSE方式代理或者转发其他流式接口

文章目录 1.需求描述2.代码2.1.示例controller2.2.示例service2.3.示例impl 3.测试 1.需求描述 使用SSE的方式主要还是要跟前端建立一个EventSource的链接,有了这个连接,然后往通道里写入数据流,前端自然会拿到流式数据,写啥拿啥…...

consul入门教程

一、介绍Consul Consul是由HashiCorp开发的一种服务发现和配置管理工具,它可以提供分布式系统所需的多个关键功能,如服务发现、配置管理、键值存储等。Consul可以帮助开发人员轻松构建分布式系统,提高系统的可靠性和可扩展性。 二、Consul实…...

软考:大数据架构设计

大数据总结 大数据处理系统的特征 1、鲁棒性和容错性 2、低延迟读取和更新能力 3、横向扩容 4、通用性 5、延展性 6、即席查询能力 7、最少维护能力 8、可调试性 Lambda架构 批处理层 存储数据集和生成Batch View 管理主数据集,原始的,不可变的&…...

token无感刷新+处理并发的后端方案

问题描述: 当用户通过登陆后进入一个web网站,会把token保存到localStorage。假设token过期时间30min。 那么当用户在网站快乐地玩耍了30min后,这时进行了一次提交表单,它会被重定向到登陆页面。 作为用户:我表单填了…...

【系统设计】让 Java “动起来”:动态语言与静态语言的比较及 DSL 实现

在编程语言的世界里,语言的特性决定了它们在不同场景下的适用性。动态语言和静态语言是两种常见的编程范式,它们的差异不仅影响开发者的使用习惯,还决定了它们在某些应用场景中的表现。在这篇博文中,我们将通过Python和Java这两种…...

TCP Analysis Flags 之 TCP Keep-Alive

前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…...

mfc140u.dll丢失怎么办? mfc140u.dll文件缺失的修复技巧

mfc140u.dll 是 Microsoft Foundation Classes (MFC) 库的一部分,它是 Visual Studio 2015 的组件之一,主要服务于使用 C 编写的 Windows 应用程序。这个动态链接库文件包含了 MFC 14.0 Unicode 版本的实现代码,为应用程序提供运行时支持。当…...

Spring Security使用

文章目录 Spring Security的起点FilterChain重写重写登录验证逻辑增加CSRF Token增加方法权限校验 Spring Security的起点 在AbstractApplicationContext.refresh()方法时,子类ServletWebServerApplicationContext会创建一个ServletContextInitializerBeans这个Bea…...

CSS网页布局综合练习(涵盖大多CSS知识点)

该综合练习就是为这个学校静态网页设置CSS样式&#xff0c;使其变成下面的模样 其基本骨架代码为&#xff1a; <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content…...

解决 Hardhat Verify 超时

问题背景 今天在学习使用Hardhat进行verify 合约 到 Ethscan的时候&#xff0c;出现了如下报错 fafafafadeMacBook-Air Web3_Solidity_Study % npx hardhat verify --network sepolia XXXXXXXXXXXXXXXXXXXXXXXX "10" Successfully verifie…...

ACIS创建各种基本体,举例说明

ACIS&#xff08;Advanced CAD Interoperability System&#xff09;是一个广泛使用的三维几何建模内核&#xff0c;它支持创建和操作各种基本的三维几何体。虽然ACIS没有专门的函数来直接创建某些特定的基本体&#xff08;如椭球体&#xff09;&#xff0c;但可以通过一系列变…...

[CISCN 2019华北]PWN1-好久不见7

Partial RELRO 表示部分 RELRO 保护已启用。在这种情况下&#xff0c;只有某些部分&#xff08;如 GOT 中的只读部分&#xff09;是只读的。 NX enabled 表示这个二进制文件启用了 NX 保护&#xff0c;数据段是不可执行的。这可以防止某些类型的代码注入攻击。 这里是ida识别…...

代码随想录day16| 513找树左下角的值 、 路径总和 、 从中序与后序遍历序列构造二叉树

代码随想录day16| 找树左下角的值 、 路径总和 、 从中序与后序遍历序列构造二叉树 513找树左下角的值层序遍历法递归法 路径总和112. 路径总和113. 路径总和 II 从中序与后序遍历序列构造二叉树思路 513找树左下角的值 层序遍历法 使用层序遍历&#xff0c;找到最后一层最左边…...

使用 MMDetection 实现 Pascal VOC 数据集的目标检测项目练习(二) ubuntu的下载安装

首先&#xff0c;Linux系统是人工智能和深度学习首选系统。原因如下: 开放性和自由度&#xff1a;Linux 是一个开源操作系统&#xff0c;允许开发者自由修改和分发代码。这在开发和研究阶段非常有用&#xff0c;因为开发者可以轻松地访问和修改底层代码。社区支持&#xff1a;…...

书生大模型实战营(第四期)——入门岛

第 1 关 Linux 前置基础 闯关任务完成SSH连接与端口映射并运行hello_world.py10min可选任务 1将Linux基础命令在开发机上完成一遍10min可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min 完成SSH连接 创建python文件 建环境 运行 第 2 关 Python 前置基础 Leet…...

压强随着时间的变化

import numpy as np import matplotlib.pyplot as plt# 参数设置 L 50 # 长度 (m) D 4 # 直径 (m) d 0.01 # 洞的直径 (m) P0 101300 # 初始压力 (Pa) P_final 0.3 * P0 # 最终压力 (Pa) R 287 # 理想气体常数 (J/(kgK)) T 20 273.15 # 温度 (K) M 0.029 # 空…...

2024年大厂AI大模型面试题精选与答案解析

前言 随着AI市场&#xff0c;人工智能的爆火&#xff0c;在接下来的金九银十招聘高峰期&#xff0c;各大科技巨头和国有企业将会对AGI人才的争夺展开一场大战&#xff0c;为求职市场注入了新的活力。 为了助力求职者在面试中展现最佳状态&#xff0c;深入理解行业巨头的选拔标…...

Linux开发讲课47--- 详解 Linux 中的虚拟文件系统

虚拟文件系统是一种神奇的抽象&#xff0c;它使得 “一切皆文件” 哲学在 Linux 中成为了可能。 什么是文件系统&#xff1f;根据早期的 Linux 贡献者和作家 Robert Love 所说&#xff0c;“文件系统是一个遵循特定结构的数据的分层存储。” 不过&#xff0c;这种描述也同样适用…...

全球银行常用英语

Earn OCBC$ or 90 Miles or VOYAGE Miles today! Get the most out of your OCBC Card with OCBC Privileges. 今天赚取华侨银行美元或 90 英里或航程英里&#xff01;通过华侨银行特权充分利用您的华侨银行卡。 Check out the rewards catalogue. Apply for a OCBC Credit Car…...