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

 

文章目录

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


目的: 这里以学校数据库模型为例,介绍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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/gaussdb/blog/8388663

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。