主頁 > 軟體工程 > 大一資料庫題(希望大家幫忙解答,不要運用太難的知識)

大一資料庫題(希望大家幫忙解答,不要運用太難的知識)

2020-09-15 06:53:06 軟體工程

【試題1】
    1任 務
你作為《建設工程監管資訊系統》專案開發組的程式員,請按要求完成: 
?資料庫的創建;
?資料表的創建;
?資料的操作。
    2要 求
《系統權限管理》子模塊的E-R圖如圖2.1 所示,邏輯資料模型如圖2.2 所示,物理資料模型如圖2.3所示,資料表欄位名定義見表2.3。請按以下設計完成資料庫創建、資料表創建和資料操作任務:

圖2.1 E-R圖

圖2.2 邏輯資料模型

圖2.3 物理資料原型
表2.3 欄位名定義表
欄位名                     欄位說明            欄位名              欄位說明
Func_id                   功能id           User_passwd              用戶密碼
Func_name           功能名稱          Dept_id              所屬部門
Func_role_id           功能角色id  Telephone              聯系電話
Func_role_name   角色名稱           Address                      聯系地址
User_id                   用戶id         Handphone              手機號
User_name           用戶姓名          Usb_no                      密碼鎖號
Reserve                   備注
    3 資料庫操作
    3.1 創建資料庫
創建資料庫ConstructionDB。
    3.2創建資料表
根據圖2.2和表2.3,創建資料表T_user、T_func_item、T_func_role_def。
    3.3創建資料表間的關系
根據物理資料原型,創建資料關系表。
    3.4資料操作
用SQL陳述句完成如下操作:
?在T_user表插入資料:“id01,劉德華,123,KBB,5678900,湖南長沙,13899005678,ldh123,admin”; 
?查詢出所屬部門為“KBB”的操作員的基本資訊;
?查詢出姓名為“劉德華”的操作員具有哪些功能權限;
?查詢出“投標責任人”角色所擁有的功能;
?創建視圖查詢操作員的姓名,密碼和所屬部門;
創建存盤程序,查詢指定操作員所具有的功能權限

uj5u.com熱心網友回復:

請求大家講解,我有點蠢,可能不難,但是剛入門,不太會。謝謝大家了

uj5u.com熱心網友回復:

# 創建資料庫ConstructionDB
CREATE DATABASE ConstructionDB;
# 使用ConstructionDB
use ConstructionDB;
# 創建資料表操作員基本資訊表
CREATE TABLE T_user(
User_id CHAR ( 4 ) PRIMARY KEY COMMENT '用戶ID',
User_name CHAR ( 16 ) COMMENT '用戶姓名',
User_password CHAR ( 16 ) COMMENT '用戶密碼',
Dept_id CHAR ( 3 ) COMMENT '所屬部門',
Telephone VARCHAR ( 16 ) COMMENT '聯系電話',
Address VARCHAR ( 32 ) COMMENT '聯系地址',
Handphone VARCHAR ( 16 ) COMMENT '手機號',
Usb_no VARCHAR ( 64 ) COMMENT '密碼鎖號',
Reserv VARCHAR ( 64 ) COMMENT '備注' 
);

# 創建一級功能權限定義表
CREATE TABLE T_func_item(
Func_id CHAR ( 3 ) PRIMARY KEY COMMENT '功能ID',
Func_name VARCHAR ( 32 ) COMMENT '功能名稱',
Reserv VARCHAR ( 64 ) COMMENT '備注'
);

# 創建功能角色定義表
CREATE TABLE T_func_role_def(
Func_role_id CHAR ( 3 ) PRIMARY KEY COMMENT '功能ID',
Func_role_name VARCHAR ( 32 ) COMMENT '功能名稱',
Reserv VARCHAR ( 64 ) COMMENT '備注'
);
# 創建關系表1

CREATE TABLE Realationship_1(
Func_id CHAR ( 3 ) COMMENT '功能ID',
Func_role_id CHAR ( 3 ) COMMENT '功能角色ID',
PRIMARY KEY ( Func_id, Func_role_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_I FOREIGN KEY ( Func_id ) REFERENCES T_func_item ( Func_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_R FOREIGN KEY ( Func_id ) REFERENCES T_func_role_def ( Func_role_id )
);

# 創建關系表2
CREATE TABLE Realationship_2(
Func_role_id CHAR ( 3 ) COMMENT '功能角色ID',
User_id CHAR ( 4 ) COMMENT '用戶ID',
PRIMARY KEY ( Func_role_id, User_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_R1 FOREIGN KEY ( Func_role_id ) REFERENCES T_func_role_def ( Func_role_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_USER FOREIGN KEY ( User_id ) REFERENCES T_user ( User_id )
);

# 插入資料
INSERT into T_user values
('01','劉德華','123','KBB','5678900','湖南長沙','13899005678','ldh123','admin');

# 查詢出所屬部門為“KBB”的操作員的基本資訊;
SELECT
*
FROM
T_user 
WHERE
Dept_id = 'KBB';

# 查詢出姓名為“劉德華”的操作員具有哪些功能權限;
SELECT
f.Func_name '功能權限'
FROM
T_user u,Realationship_2 r2,Realationship_1 r1,T_func_item f
WHERE
Dept_id = '劉德華'
AND
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = f.Func_id;

# 查詢出“投標責任人”角色所擁有的功能;
SELECT
fi.Func_name '功能權限'
FROM
T_user u,
Realationship_2 r2,
Realationship_1 r1,
T_func_item fi,
T_func_role_def fr
WHERE
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = fi.Func_id
AND
r2.Func_role_id = fr.Func_role_id
AND
fr.Func_role_name = '投標責任人';

# 創建視圖查詢操作員的姓名,密碼和所屬部門;
CREATE VIEW view_T_user AS
SELECT
User_name '姓名',User_password '密碼',Dept_id '所屬部門'
FROM
T_user;
# 創建存盤程序,查詢指定操作員所具有的功能權限
delimiter $$
CREATE PROCEDURE check_func(IN user_name CHAR(16))
BEGIN
SELECT
f.Func_name '功能權限'
FROM
T_user u,Realationship_2 r2,Realationship_1 r1,T_func_item f
WHERE
Dept_id = input_name
AND
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = f.Func_id;
END $$

不客氣

uj5u.com熱心網友回復:

E-R圖都能做出來,后面就擼起袖子,干就是了撒

uj5u.com熱心網友回復:

重新改了下格式,讓你看起來方便些

創建資料庫ConstructionDB
CREATE DATABASE ConstructionDB;


使用ConstructionDB
如果不使用無法創建下面的表
use ConstructionDB;


創建資料表操作員基本資訊表
CREATE TABLE T_user(
User_id CHAR ( 4 ) PRIMARY KEY COMMENT '用戶ID',
User_name CHAR ( 16 ) COMMENT '用戶姓名',
User_password CHAR ( 16 ) COMMENT '用戶密碼',
Dept_id CHAR ( 3 ) COMMENT '所屬部門',
Telephone VARCHAR ( 16 ) COMMENT '聯系電話',
Address VARCHAR ( 32 ) COMMENT '聯系地址',
Handphone VARCHAR ( 16 ) COMMENT '手機號',
Usb_no VARCHAR ( 64 ) COMMENT '密碼鎖號',
Reserv VARCHAR ( 64 ) COMMENT '備注' 
);


創建一級功能權限定義表
CREATE TABLE T_func_item(
Func_id CHAR ( 3 ) PRIMARY KEY COMMENT '功能ID',
Func_name VARCHAR ( 32 ) COMMENT '功能名稱',
Reserv VARCHAR ( 64 ) COMMENT '備注'
);


創建功能角色定義表
CREATE TABLE T_func_role_def(
Func_role_id CHAR ( 3 ) PRIMARY KEY COMMENT '角色ID',
Func_role_name VARCHAR ( 32 ) COMMENT '角色名稱',
Reserv VARCHAR ( 64 ) COMMENT '備注'
);


創建關系表1
因為上面已經創建了對應表,可以在創建關系表時直接加上外鍵,也可以創建表后用alter加上
CREATE TABLE Realationship_1(
Func_id CHAR ( 3 ) COMMENT '功能ID',
Func_role_id CHAR ( 3 ) COMMENT '功能角色ID',
PRIMARY KEY ( Func_id, Func_role_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_I FOREIGN KEY ( Func_id ) REFERENCES T_func_item ( Func_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_R FOREIGN KEY ( Func_id ) REFERENCES T_func_role_def ( Func_role_id )
);


創建關系表2
同上
CREATE TABLE Realationship_2(
Func_role_id CHAR ( 3 ) COMMENT '功能角色ID',
User_id CHAR ( 4 ) COMMENT '用戶ID',
PRIMARY KEY ( Func_role_id, User_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_FUNC_R1 FOREIGN KEY ( Func_role_id ) REFERENCES T_func_role_def ( Func_role_id ),
CONSTRAINT FK_RELATION_RELATIONS_T_USER FOREIGN KEY ( User_id ) REFERENCES T_user ( User_id )
);


插入資料
這個簡單
INSERT into T_user values
('01','劉德華','123','KBB','5678900','湖南長沙','13899005678','ldh123','admin');


查詢出所屬部門為“KBB”的操作員的基本資訊;
如果要查角色名稱,或權限要用多表連查

SELECT
*
FROM
T_user 
WHERE
Dept_id = 'KBB';


查詢出姓名為“劉德華”的操作員具有哪些功能權限;
也是用多表連查,根據對應的id關聯查出權限
SELECT
f.Func_name '功能權限'
FROM
T_user u,Realationship_2 r2,Realationship_1 r1,T_func_item f
WHERE
Dept_id = '劉德華'
AND
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = f.Func_id;


查詢出“投標責任人”角色所擁有的功能;
也是多表連查
SELECT
fi.Func_name '功能權限'
FROM
T_user u,
Realationship_2 r2,
Realationship_1 r1,
T_func_item fi,
T_func_role_def fr
WHERE
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = fi.Func_id
AND
r2.Func_role_id = fr.Func_role_id
AND
fr.Func_role_name = '投標責任人';


創建視圖查詢操作員的姓名,密碼和所屬部門;
創建視圖的基本格式:CREATE VIEW 視圖名稱 AS 查詢條件
CREATE VIEW view_T_user AS
SELECT
User_name '姓名',User_password '密碼',Dept_id '所屬部門'
FROM
T_user;


創建存盤程序,查詢指定操作員所具有的功能權限
CREATE PROCEDURE 名稱(IN|OUT|INOUT 變數名 資料型別)
BEGIN 開始
 查詢條件
END 結束
IN 輸入引數:表示呼叫者向程序傳入值(傳入值可以是字面量或變數)
OUT 輸出引數:表示程序向呼叫者傳出值(可以回傳多個值)(傳出值只能是變數)
INOUT 輸入輸出引數:既表示呼叫者向程序傳入值,又表示程序向呼叫者傳出值(值只能是變數)
delimiter $$ 陳述句結束符 是一種定義;的陳述句,如果不想讓資料庫立馬執行 可以這么定義,$$可以自定義,默認是; 
臨時改為兩個 $$
寫完代碼運行時輸入delimiter; 改回分號就可以讓資料庫執行了
這個可以不寫

delimiter $$
CREATE PROCEDURE check_func(IN user_name CHAR(16))
BEGIN
SELECT
f.Func_name '功能權限'
FROM
T_user u,Realationship_2 r2,Realationship_1 r1,T_func_item f
WHERE
Dept_id = input_name
AND
u.User_id = r2.User_id
AND
r2.Func_role_id = r1.Func_role_id
AND
r1.Func_id = f.Func_id;
END $$
delimiter;

uj5u.com熱心網友回復:

我以后能經常問你問題嗎?如果方便的話

uj5u.com熱心網友回復:

參考 5 樓 yueyetu_yy 的回復:
我以后能經常問你問題嗎?如果方便的話

可以,因為我也在學習,不知道你學的是哪個專業,可能有些問題我解決不了

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/43733.html

標籤:數據庫

上一篇:VC中文全集

下一篇:求助: 怎么用VBA把提取的CAD中的塊的屬性資料輸出到TXT文本

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more