以学校数据模型为例,掌握在DAS下使用GaussDB

news/2024/4/25 15:03:27/文章来源:https://blog.csdn.net/GaussDB/article/details/129118376

文章目录

  • 题目
  • 具体操作
    • 一、表的创建
    • 二、表数据的插入
    • 三、数据查询

目的: 这里以学校数据库模型为例,介绍GaussDB数据库、表等常见操作,以及SQL语法使用的介绍。

题目

假设A市B学校为了加强对学校的管理,引入了华为GaussDB数据库。
在B学校里,主要涉及的对象有学生、教师、班级、院系和课程。本实验假设在B学校数据库中,教师会教授课程,学生会选修课程,院系会聘请教师,班级会组成院系,学生会组成班级。

其关系模型如下:

对于B校中的5个对象,分别建立属于每个对象的属性集合,具体属性描述如下:

l 学生(学号,姓名,性别,出生日期,入学日期,家庭住址)

l 教师(教师编号,教师姓名,职称,性别,年龄,入职日期)

l 班级(班级编号,班级名称,班主任)

l 院系(系编号,系名称,系主任)

l 课程(课程编号,课程名称,课程类型,学分)

上述属性对应的编号为:

l student(std_id,std_name,std_sex,std_birth,std_in,std_address)

l teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in)

l class(cla_id,cla_name,cla_teacher)

l school_department(depart_id,depart_name,depart_teacher)

l course(cor_id,cor_name,cor_type,credit)

对象之间的关系:

l 一位学生可以选择多门课程,一门课程可被多名学生选择

l 一位老师可以选择多门课程,一门课程可被多名老师教授

l 一个院系可由多个班级组成

l 一个院系可聘请多名老师

l 一个班级可由多名学生组成

看到这里是不是觉得很麻烦,不过给出了E-R图可供理解。
在这里插入图片描述

具体操作

一、表的创建

    根据B学校的场景描述,本实验分别针对学生(student),教师(teacher),班级(class),院系(school_department)和课程(course)创建相应的表。具体的实验步骤如下所示:

step1:创建学生信息表。

DROP TABLE IF EXISTS student;// 创建student表:CREATE TABLE student
(std_id INT PRIMARY KEY,std_name NCHAR(20) NOT NULL,std_sex NCHAR(6),std_birth DATE,std_in DATE NOT NULL,std_address VARCHAR(100)
);

在这里插入图片描述

step2:创建教师信息表。

DROP TABLE IF EXISTS teacher;
CREATE TABLE teacher
(tec_id INT PRIMARY KEY,tec_name CHAR(20) NOT NULL,tec_job CHAR(15),tec_sex CHAR(6),tec_age INT,tec_in DATE NOT NULL
);

在这里插入图片描述

step3:创建班级信息表。

DROP TABLE IF EXISTS class;
CREATE TABLE class
(cla_id INT PRIMARY KEY,cla_name CHAR(20) NOT NULL,cla_teacher INT NOT NULL
);

在这里插入图片描述

step4:创建院系信息表。

DROP TABLE IF EXISTS school_department;
CREATE TABLE school_department
(depart_id INT PRIMARY KEY,depart_name NCHAR(30) NOT NULL,depart_teacher INT NOT NULL
);

在这里插入图片描述

step5:创建课程信息表。

DROP TABLE IF EXISTS course;
CREATE TABLE course
(cor_id INT PRIMARY KEY,cor_name NCHAR(30) NOT NULL,cor_type NCHAR(20),credit numeric
);

在这里插入图片描述

二、表数据的插入

向student表中插入数据。
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) 
VALUES (1,'张一','男','1993-01-01','2011-09-01','江苏省南京市雨花台区');

实际上这里需要插入很多数据,笔者为了不显得文章臃肿,就只用了一条,下面也是类似。

向teacher表中插入数据。
INSERT INTO teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in) 
VALUES (1,'王五','讲师','男',35,'2009-07-01');
向class表插入数据。
INSERT INTO class(cla_id,cla_name,cla_teacher) VALUES (1,'计算机',1);
向school_department表插入数据。

INSERT INTO school_department(depart_id,depart_name,depart_teacher) VALUES (1,‘计算机学院’,2);
向course表插入数据。

INSERT INTO course(cor_id,cor_name,cor_type,credit) VALUES (1,'数据库','选修',3);

三、数据查询

查询B校课程信息表的所有信息。
SELECT * from course;
例:在教师信息表中查询教师编号大于45的老师的入学年份。(条件查询)
SELECT tec_id, tec_in FROM teacher WHERE tec_id>45;

登录后复制
修改/更新课程信息表数据。

例:

UPDATE course SET cor_name='python程序设计',cor_type='必修',credit=3.5 WHERE cor_id=1;
SELECT * FROM course WHERE cor_id=1;

赶紧来试试吧!!
作者:kk

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

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

相关文章

GEE学习笔记 六十三:新的地图图层ui.Map.CloudStorageLayer

在GEE中导出数据有一种方式是直接导出地图到Google Cloud Storage中,也就是Export.map.toCloudStorage(xxx),这种方式是将我们计算生成影像导出成为静态瓦片的格式存放在Google Cloud Storage中。我们可以在其他的前端程序比如OpenLayer、Mapbox GL JS等…

实时数仓Hologres新一代弹性计算组实例技术揭秘

作者:王奇(花名慧青) 阿里云Hologres研发 随着实时数仓在业务生产系统的普及,资源弹性、资源隔离等保障业务稳定性方面的技术需求开始变得越来越迫切。Hologres在保障业务方面持续优化核心技术竞争力,过去一年中&…

自建商城或会员系统如何对接在线客服咨询系统,例如商城系统、物流订单系统接入在线客服功能...

自建商城或会员系统如何对接在线客服咨询系统,例如商城系统、物流订单系统接入在线客服功能 对接在线客服咨询系统可以帮助您的客户更快地获得问题解答和支持,提升客户满意度和忠诚度。 在商品详情页面传递产品信息 在进入产品详情页面以后,需…

FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(一)

在最后一个例程中笔者精挑细选了一个较为综合性的项目实战,其中覆盖了很多知识点,也是从一个转产产品中所提炼出来的,所以非常贴近实战项目。 整个工程实现了用户通过对上位机PC端人机界面的操作,即可达到控制豌豆开发并行DAC输出…

计算时间序列周期的三种方法

周期是数据中出现重复模式所需的时间长度。更具体地说,它是模式的一个完整周期的持续时间。在这篇文章中,将介绍计算时间序列周期的三种不同方法。 我们使用City of Ottawa 数据集,主要关注的是每天的服务呼叫数量。所以不需要对病房名称进行…

选型最佳实践|从业务场景分析直播SDK

摘要 近两年即时通讯/直播产品炙手可热,市场上针对ToB的产品日益增多,企业该如何去选型呢?本文分享了笔者对于直播产品的思考,将从直播SDK实例功能特性、常见业务场景、注意事项及最佳实践等方面介绍如何进行实例选型,…

【C++】2.类和对象(上)

1.面向过程和面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2.类的引入…

Umi框架

什么是 umi umi 是由 dva 的开发者 云谦 编写的一个新的 React 开发框架。umi 既是一个框架也是一个工具,可以将它简单的理解为一个专注性能的类 next.js 前端框架,并通过约定、自动生成和解析代码等方式来辅助开发,减少开发者的代码量。 u…

算法18:LeetCode_链表相关算法题

链表无小事,只要是涉及到链表的算法题,边界值的设定尤为重要,而且及其容易出错误。这就要求我们平时多加练习。但是,我们在面试和笔试的过程中往往会碰到链表相关的题目,所以我们在笔试的时候一般都会借助系统提供的工…

Netty (三):进阶

文章目录1. 粘包与半包1.1 粘包现象1.2 半包现象1.3 现象分析1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度2. 协议设计与解析2.1 为什么需要协议?2.2 redis 协议举例2.3 http 协议举例2.4 自…

前端二面react面试题集锦

react diff 算法 我们知道React会维护两个虚拟DOM,那么是如何来比较,如何来判断,做出最优的解呢?这就用到了diff算法 diff算法的作用 计算出Virtual DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而…

「TCG 规范解读」第七章 TPM工作组 TPM 总结

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

【Azure 架构师学习笔记】-Azure Data Factory (1)-调度入门

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 前言 在开发好一个ADF pipeline(功能)之后,需要将其按需要运行起来,这个称之为调度。下图是一个简单的ADF 运作图, 按照需要的顺序&am…

【YOLOv5】 02-标注图片,训练并使用自己的模型

在上一篇文章中,我们完成了YOLOv5的安装和测试。如果想检测自定义目标,就需要用到LabelImg来对图片打标签,本篇文章介绍了LabelImg安装与使用,以及如何训练并使用自己的模型。一、安装LabelImg输入如下命令进行安装:pi…

seo优化案例截图

点击进入》》三支一扶课程聚合页面 百度统计数据 流量稳步增长, 2022年9月比2021年9月 同期增长 约30%。

rocketmq延时消息自定义配置;一个topic下tag分组

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分: nameserver:保存路由信息broker:保存消息生产者:生产消息消费者:消费消息 延时消息的处理是在其中的broker中。 但是…

项目中异常信息的统一处理以及JSR03校验

在项目中,我们经常会对前端传过来的数据判断是否有一些错误,比如:id是否为空,传过来的名称是否合格,如果不符合我们通常会抛出异常,那么小的项目可能每次抛出异常也不是很麻烦,但是对于一个大型…

小程序上新(2022.12.12~2023.02.20)

20221216关于小程序违规收集用户隐私行为的规范20221222优先使用本地版本设置功能上线备注:已和微信官方工作人员确认,开启本地优先后,用户打开小程序过程中,异步去下载新版包,打开完成后,功能是新包,异步下载完成后提示用户重启小…

actipro-winforms-controls-23.1.0 Crack

actipro-winforms一组用于构建漂亮的 Windows 窗体桌面应用程序的 UI 控件,用于构建 IDE 的高级停靠窗口、MDI、属性网格、树控件和文件夹/文件浏览器,用于常见数据类型、自动完成、屏蔽编辑和代码编辑的强大编辑器,功能区、图表、微型图表、…

JavaScript中怎么实现链表?

JavaScript中怎么实现链表? 学习数据结构的的链表和树时,会遇到节点(node)这个词,节点是处理数据结构的链表和树的基础。节点是一种数据元素,包括两个部分:一个是实际需要用到的数据&#xff1b…