以學校資料模型為例,掌握在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
- GaussDB資料型別轉換介紹
- 通過公網連線GaussDB資料庫例項
- GaussDB資料型別介紹
- 如何通過DAS連線GaussDB
- 企業級分散式資料庫 - GaussDB介紹
- GaussDB 資料庫實驗環境搭建指導
- Tableau連線openGauss實踐
- 以學校資料模型為例,掌握在DAS下使用GaussDB
- openGauss資料庫共享儲存特性簡介
- openGauss資料庫原始碼解析系列文章——備份恢復機制:openGauss增量備份技術(上)
- openGauss資料庫客戶端接入認證詳解
- Excel連線openGauss資料庫實操
- openGauss資料庫原始碼解析系列文章——備份恢復機制:openGauss全量備份技術
- 超市進銷存之openGauss資料庫的應用與實踐
- 在WPS表格裡製作連線到openGauss的實時重新整理報表
- openGauss資料庫PostGIS 安裝與使用
- openGauss中Schema賦權小試
- openGauss Cluster Manager RTO Test
- 【我和openGauss的故事】openGauss獲獎專案講解
- openGauss易知易會的幾個實用特性