以學校資料模型為例,掌握在DAS下使用GaussDB

語言: CN / TW / HK

 

文章目錄

  • 題目
  • 具體操作
    • 一、表的建立
    • 二、表資料的插入
    • 三、資料查詢


目的: 這裡以學校資料庫模型為例,介紹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