首页 > 其他分享 >openGauss维护管理之学校数据模型

openGauss维护管理之学校数据模型

时间:2023-03-19 20:32:02浏览次数:28  
标签:std cor name tec id teacher openGauss 维护 数据模型

一、关系模型

1、关系

对于B校中的5个对象,分别建立属于每个对象的属性集合,具体属性描述如下:
● 学生(学号,姓名,性别,出生日期,入学日期,家庭住址)
● 教师(教师编号,教师姓名,职称,性别,年龄,入职日期)
● 班级(班级编号,班级名称,班主任)
● 院系(系编号,系名称,系主任)
● 课程(课程编号,课程名称,课程类型,学分)

上述属性对应的编号为:
● student(std_id,std_name,std_sex,std_birth,std_in,std_address)
● teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in)
● class(cla_id,cla_name,cla_teacher)
●school_department(depart_id,depart_name,depart_teacher)
● course(cor_id,cor_name,cor_type,credit)

对象之间的关系:
● 一位学生可以选择多门课程,一门课程可被多名学生选择
● 一位老师可以选择多门课程,一门课程可被多名老师教授
● 一个院系可由多个班级组成
● 一个院系可聘请多名老师
● 一个班级可由多名学生组成

2、E-R图

openGauss维护管理之学校数据模型_数据库

二、学校数据模型表操作

1、表的创建

步骤 1 创建学生信息表。
DROP TABLE IF EXISTS 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)
);
步骤 2 创建教师信息表。
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
);
步骤 3 创建班级信息表。
DROP TABLE IF EXISTS class;
CREATE TABLE class
(
cla_id INT PRIMARY KEY,
cla_name CHAR(20) NOT NULL,
cla_teacher INT NOT NULL
);
步骤 4 创建院系信息表。
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
);
步骤 5 创建课程信息表。
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
);

2、表数据的插入

步骤 1 向student表中插入数据。
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (1,'张一','男','1993-01-01','2011-09-01','江苏省南京市雨花台区');
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (2,'张二','男','1993-01-02','2011-09-01','江苏省南京市雨花台区');
INSERT INTO student(std_id,std_name,std_sex,std_birth,std_in,std_address) VALUES (3,'张三','男','1993-01-03','2011-09-01','江苏省南京市雨花台区');
步骤 2 向teacher表中插入数据。
INSERT INTO teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in) VALUES (1,'张一','讲师','男',35,'2009-07-01');
INSERT INTO teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in) VALUES (2,'张二','讲师','男',35,'2009-07-01');
INSERT INTO teacher(tec_id,tec_name,tec_job,tec_sex,tec_age,tec_in) VALUES (3,'张三','讲师','男',35,'2009-07-01');
步骤 3 向class表插入数据。
INSERT INTO class(cla_id,cla_name,cla_teacher) VALUES (1,'计算机',1);
INSERT INTO class(cla_id,cla_name,cla_teacher) VALUES (2,'自动化',3);
INSERT INTO class(cla_id,cla_name,cla_teacher) VALUES (3,'飞行器设计',5);
步骤 4 向school_department表插入数据。
INSERT INTO school_department(depart_id,depart_name,depart_teacher) VALUES (1,'计算机学院',2);
INSERT INTO school_department(depart_id,depart_name,depart_teacher) VALUES (2,'自动化学院',4);
INSERT INTO school_department(depart_id,depart_name,depart_teacher) VALUES (3,'航空宇航学院',6);
步骤 5 向course表插入数据。
INSERT INTO course(cor_id,cor_name,cor_type,credit) VALUES (1,'数据库系统概论','必修',3);
INSERT INTO course(cor_id,cor_name,cor_type,credit) VALUES (2,'艺术设计概论','选修',1);
INSERT INTO course(cor_id,cor_name,cor_type,credit) VALUES (3,'力学制图','必修',4);

3、数据查询

单表查询
查询B校课程信息表的所有信息。
SELECT * from course;

条件查询
在教师信息表中查询教师编号大于45的老师的入学年份。
SELECT tec_id, tec_in FROM teacher WHERE tec_id>45;

查询B校中所有选修的课程的信息。
SELECT * FROM course WHERE cor_type='选修';

4、数据的修改和删除

修改数据
修改/更新课程信息表数据。
UPDATE course SET cor_name='C语言程序设计',cor_type='必修',credit=3.5 WHERE cor_id=1;
SELECT * FROM course WHERE cor_id=1;

删除指定数据
在B校中删除教师编号8和15所管理的院系。
DELETE FROM school_department WHERE depart_teacher=8 OR depart_teacher=15;
SELECT * FROM school_department;

附录一:openGauss数据库基本操作

查看帮助信息:
postgres=# \?

切换数据库:
\c dbname

切换用户:
\c – username

列举数据库:
使用\l元命令查看数据库系统的数据库列表。
\l

使用如下命令通过系统表pg_database查询数据库列表。
SELECT datname FROM pg_database;

列举表:
\dt

列举所有表、视图和索引:
\d+

使用gsql的\d+命令查询表的属性。
\d+ tablename

查看表结构:
\d tablename

列举schema:
\dn

查看索引:
\di

查询表空间:
使用gsql程序的元命令查询表空间。
postgres=# \db

检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。
postgres=# SELECT spcname FROM pg_tablespace;

查看数据库用户列表:
postgres=# SELECT * FROM pg_user;

要查看用户属性:
postgres=# SELECT * FROM pg_authid;

查看所有角色:
postgres=# SELECT * FROM PG_ROLES;

退出数据库:
postgres=# \q

标签:std,cor,name,tec,id,teacher,openGauss,维护,数据模型
From: https://blog.51cto.com/u_13236892/6131335

相关文章

  • Zabbix监控OpenGauss数据库指南
    1.1、 简介OpenGauss作为开源数据库官方支持使用zabbix作为监控运维系统,并提供了源码安装包的下载地址和操作指导。同样Zabbix也是开源软件并发布了许多成熟稳定的LTS版......
  • 文心一言,通营销之学,成一家之言,百度人工智能AI大数据模型文心一言Python3.10接入
    “文心”取自《文心雕龙》一书的开篇,作者刘勰在书中引述了一个古代典故:春秋时期,鲁国有一位名叫孔文子的大夫,他在学问上非常有造诣,但是他的儿子却不学无术,孔文子非常痛心。......
  • 我上一次给B站做游戏维护
    我上一次给B站做游戏维护,把spring项目的console日志输出改成了debug级别,没想到把游戏服务器写满崩溃了,然后我被干掉了,为什么是干掉,因为我是外包.用辞退有点碰瓷的嫌疑......
  • Azure虚拟桌面专题之十八:使用排出模式隔离会话主机以进行维护
    如果Azure虚拟桌面会话主机要应用补丁并进行维护而不中断用户会话,则可以使用排出模式,排出模式可隔离会话主机。隔离时,会话主机不会接受新的用户会话。任何新连接都会重定......
  • 十、openGauss安装用户和用户组
    一、概述为了实现安装过程中安装帐户权限最小化,及安装后openGauss的系统运行安全性,安装脚本在安装过程中会自动按照用户指定内容创建安装用户,并将此用户作为后续运行和维护o......
  • 物联网技术在工业空调设备维护中的应用
     1.方案简介    本解决方案是基于钡铼技术物联网网关和工业物联网的空调远程监测解决方案,通过4G网关读取空调的控制器,将数据上传至云平台,用户可以用手机电脑远程......
  • opengauss集群安装报错
    DB_VERSION:opengauss3.0.31.[GAUSS-51632][GAUSS-51632]:Failedtodogs_sshexkey.Error:Pleaseenterpasswordforcurrentuser[root].Error:Failedtoreg......
  • 四、openGauss存储引擎
    一、简介openGauss存储引擎是可插拔、自组装的,支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。早期计算机程序通过文件系统管理数据,......
  • 磁盘维护命令之 dd 命令在Windows上的用法
    注意:新手不要轻易尝试,否侧容易把系统写挂掉1.网址:http://www.chrysocome.net/dd 下载dd工具,选择dd-0.5.zip下载      2.将下载后的文件解压后拷贝到E盘 ......
  • BOSHIDA三河博电科技 模块电源的安装与维护
    BOSHIDA三河博电科技模块电源的安装与维护 由于各生产的模块电源的类别、系列、规格品种难以数计,故其功能特性和物理特性不尽相同,因此在安装、使用与维护方面亦各有不......