openGauss数据库-实验1-4-数据库及表的创建

第3关:

任务描述
本关任务:创建表并且添加主键约束。

相关知识
主键,是表中一列或者多列的组合,主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的每一条记录,可以结合外键来定义与不同数据表之间的关系。
怎么理解主键呢?我们知道数据库中的表可以存放很多数据,如果把表中的每一个数据比作一个人的话,那么表的主键就可以看做是人的身份证。

为了完成本关任务,你需要掌握:怎么给表中的字段添加主键约束。

添加主键约束
有两种方式可以添加主键约束:
1.在定义列的同时指定主键;
2.在定义完字段之后再指定主键。

(1) 在定义列的同时指定主键:

CREATE TABLE tb1(
    id int PRIMARY KEY,
    name varchar(32),
    deptId int,
    salary float
); 
指定 id 列为主键。

(2) 在定义完所有列之后指定主键。

CREATE TABLE tb1(
    id int ,
    name varchar(32),
    deptId int,
    salary float,
    PRIMARY KEY(id)
); 
多字段联合主键
在开发中还有一种情况很常见,就是将几个字段联合在一起作为主键,那这个在代码中怎么实现呢?
举个例子,我们将员工的名字和部门 ID 联合起来作为主键:

CREATE TABLE tb1(
    id int ,
    name varchar(32),
    deptId int,
    salary float,
    PRIMARY KEY(id,name)
);  
语句执行后,会将name和id字段组合成为表tb1的多字段组合主键。

编程要求
在数据库MyDb中,创建两张表t_user1,t_user2,表结构如下,请为两张表分别创建主键约束,t_user1的主键为userId,t_user2的主键为联合主键,将字段name和phone作为t_user2的联合主键。

表t_user1

表t_user2

第4关

任务描述
本关任务:编写一个能计算数组平均值和最大值的小程序。

相关知识
在数据库的使用过程中我们经常要限制字段的取值,比如有些字我们不能让它为空,我们就需要添加非空约束,本关我们就来学习如何添加这些常用的约束。

为了完成本关任务,你需要掌握:
1.怎么添加唯一约束;
2.怎么添加非空约束;
3.怎么添加默认约束;
4.怎么设置字段的值自动增加。

怎么添加唯一约束
唯一约束(Unique Constraint)要求该列唯一,允许为空,但是只能有一个空值。唯一约束可以确保一列或者几列不出现重复值。

定义部门表的部门名称唯一,SQL语句如下:关键词 UNIQUE。

 CREATE TABLE t_dept(
    id INT PRIMARY KEY,
    name VARCHAR(22) UNIQUE,
    location VARCHAR(50)
);
怎么添加非空约束
关键词:NOT NULL;

例如:

CREATE TABLE t_dept(
    id INT PRIMARY KEY,
    name VARCHAR(22) NOT NULL,
    location VARCHAR(50)
); 
怎么使用默认约束
默认约束:即给字段一个默认值。
关键词:DEFAULT;

例如:

 CREATE TABLE t_emp(
    id INT PRIMARY KEY,
    name VARCHAR(22),
    sex VARCHAR(2) DEFAULT '男'
) ;
注意:

如果是添加字符串型默认值要使用单引号,如果是整型则不需要加任何符号;

设置表的属性值自动增加
在数据库应用中,经常有个需求就是,在每次插入新纪录时,系统自动生成字段的主键值,即:


关键词:serial,默认情况下初始值和增量都为1。

例如:

CREATE TABLE T1
(
    id    serial,
    name  text,
    primary key(id)
); 
编程要求
在数据库mydb中创建表t_user,表结构如下:

### OpenGauss 数据库空间管理使用指南 #### 什么是空间? 在数据库管理系统中,空间是一种逻辑存储结构,用于管理和分配物理磁盘上的数据文件。通过定义不同的空间,可以实现更灵活的数据存储策略,例如将频繁访问的数据存放在高性能磁盘上,而较少使用的数据则放置于较低性能的存储设备上。 对于 openGauss 而言,其支持创建和管理空间的功能,允许用户自定义存储位置以及优化资源利用效率[^1]。 --- #### 创建空间 要创建一个新的空间,在 openGauss 中可以通过 `CREATE TABLESPACE` 命令完成。以下是该命令的基本语法: ```sql CREATE TABLESPACE tablespace_name LOCATION 'directory_path'; ``` - **tablespace_name**: 定义新空间的名字。 - **LOCATION**: 指定空间对应的目录路径,此路径需事先存在于服务器端并具有适当权限。 例如,假设有一个名为 `/data/tables` 的目录可用作新的空间,则执行如下 SQL 语句即可建立相应的空间: ```sql CREATE TABLESPACE my_tablespace LOCATION '/data/tables'; ``` 注意:指定的位置应当由操作系统管理员预先配置好,并赋予 PostgreSQL 用户足够的读写权限[^2]。 --- #### 修改空间 如果需要更改现有空间的状态或者重新设置某些参数,可采用 `ALTER TABLESPACE` 命令来进行调整。比如改变某个特定空间的所有者身份或是将其设为只读模式等操作均能借助这一指令达成目的。 示例——变更空间所有权给另一名用户: ```sql ALTER TABLESPACE my_tablespace OWNER TO new_owner; ``` 另外还可以把整个空间标记成不可用状态(即进入“冻结”阶段),直到再次激活为止;这通常是在维护期间采取的安全措施之一。 --- #### 删除空间 当不再需要某张所占用的空间时,应该考虑彻底移除它以释放硬盘容量。此时需要用到的是 `DROP TABLESPACE` 命令,不过在此之前必须确认没有任何对象仍然依赖于此空间之上,否则将会引发错误提示无法继续下去。 删除样例代码展示如下所示: ```sql DROP TABLESPACE IF EXISTS old_unused_space CASCADE; ``` 这里加上了选项 `IF EXISTS` 来防止因误删不存在的目标而导致程序崩溃中断运行流程;同时附加关键字 `CASCADE` 可自动清理掉隶属于目标下的所有关联实体项目。 --- #### 备份与恢复涉及全局对象含空间的信息 为了保障系统的稳定性和可靠性,在日常运维工作中定期做好备份工作至关重要。针对 openGauss 平台来说,可以运用专门设计好的实用工具如 gs_dumpall 实现全面覆盖到各个层面细节程度较高的迁移过程之中去,其中包括但不限于有关联关系紧密相连在一起的各种角色账户资料、定制化设定规则集锦等等重要内容项都囊括进来一起打包处理完毕之后再转移到其他地方保存起来待日后必要时刻取回应用上去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值