以學校數據模型為例,掌握在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易知易會的幾個實用特性