MySQL——存儲過程,觸發器

BaiduComate:

# 問題1:
# 問題1:
幫我創建兩個表student與score表,要求student表有id,createDate,userName,phone,age,sex,introduce,
要求score表有id,scoreName,result,result,studentId(student表的id外鍵)。
要求student表中插入5條學生信息,都要是中文的。
要求student表中對應studentId插入10條信息,每個學生ID要有2個科目的成績。
給出DDL與DML語句。

DDL

CREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, -- 學生ID,自增主鍵createDate DATETIME NOT NULL,       -- 創建日期userName VARCHAR(255) NOT NULL,     -- 用戶名phone VARCHAR(20),                   -- 電話號碼age INT NOT NULL,                    -- 年齡sex ENUM('男', '女', '其他'), -- 性別introduce TEXT                       -- 簡介
);
CREATE TABLE score (id INT PRIMARY KEY AUTO_INCREMENT,      -- 成績ID,自增主鍵scoreName VARCHAR(255) NOT NULL,        -- 成績名稱(科目)result INT NOT NULL,                     -- 成績結果studentId INT,                           -- 學生ID,外鍵FOREIGN KEY (studentId) REFERENCES student(id) -- 外鍵約束
);

DML

INSERT INTO student (createDate, userName, phone, age, sex, introduce) VALUES
('2023-04-01 08:00:00', '張三', '13800138000', 20, '男', '來自計算機科學專業'),
('2023-04-01 08:10:00', '李四', '13800138001', 21, '男', '數學系高材生'),
('2023-04-01 08:20:00', '王五', '13800138002', 19, '女', '物理系新生'),
('2023-04-01 08:30:00', '趙六', '13800138003', 20, '女', '化學系學生'),
('2023-04-01 08:40:00', '孫七', '13800138004', 22, '男', '文學愛好者');-- 張三的成績
INSERT INTO score (scoreName, result, studentId) VALUES
('數學', 95, (SELECT id FROM student WHERE userName = '張三')),
('英語', 88, (SELECT id FROM student WHERE userName = '張三'));-- 李四的成績
INSERT INTO score (scoreName, result, studentId) VALUES
('物理', 92, (SELECT id FROM student WHERE userName = '李四')),
('化學', 85, (SELECT id FROM student WHERE userName = '李四'));-- 王五的成績
INSERT INTO score (scoreName, result, studentId) VALUES
('計算機', 90, (SELECT id FROM student WHERE userName = '王五')),
('歷史', 80, (SELECT id FROM student WHERE userName = '王五'));-- 趙六的成績
INSERT INTO score (scoreName, result, studentId) VALUES
('生物', 85, (SELECT id FROM student WHERE userName = '趙六')),
('地理', 82, (SELECT id FROM student WHERE userName = '趙六'));-- 孫七的成績
INSERT INTO score (scoreName, result, studentId) VALUES
('政治', 89, (SELECT id FROM student WHERE userName = '孫七')),
('音樂', 93, (SELECT id FROM student WHERE userName = '孫七'));

DQL

多表聯合

# 問題2:
幫我創建一個多表聯合查詢以student為主表,查看學生的所有科目成績總分,并根據總分進行倒序排名,在查詢第一列添加排名順序

SELECT s.id AS studentId,s.userName,SUM(sc.result) AS totalScore
FROMstudent s
JOIN score sc ON s.id = sc.studentId
GROUP BY s.id, s.userName
ORDER BY totalScore DESC;

存儲過程

#問題3:存儲過程
幫我根據兩個DDL創建一個插入信息的存儲過程,先插入10條學生表信息,再根據插入的學生表信息插入18@條對應studentId的score成績,
所有信息隨機生成,學生表的自增序號從6開始。

DELIMITER //
CREATE PROCEDURE InsertStudentAndScoreData()
BEGINDECLARE v_student_id INT;DECLARE v_counter INT;DECLARE v_random_score_count INT;-- 設置學生ID自增值為6ALTER TABLE student AUTO_INCREMENT = 6;-- 插入10條隨機學生信息WHILE (SELECT COUNT(*) FROM student) < 10 DOINSERT INTO student (createDate, userName, phone, age, sex, introduce)VALUES (NOW(),CONCAT('Student_', FLOOR(RAND() * 10000)),CONCAT('+1', FLOOR(RAND() * 899999999) + 100000000), -- 隨機電話號碼FLOOR(RAND() * (50 - 18 + 1)) + 18, -- 隨機年齡在18到50之間ELT(1 + FLOOR(RAND() * 3), '男', '女', '其他'), -- 隨機性別CONCAT('Introduction for ', FLOOR(RAND() * 10000)) -- 隨機簡介);SET v_student_id = LAST_INSERT_ID(); -- 獲取最近插入的學生ID-- 為該學生隨機插入1到18條成績記錄SET v_random_score_count = FLOOR(RAND() * 18) + 1; -- 隨機決定成績記錄數SET v_counter = 0;WHILE v_counter < v_random_score_count DOINSERT INTO score (scoreName, result, studentId)VALUES (CONCAT('Subject_', FLOOR(RAND() * 100)), -- 隨機科目名FLOOR(RAND() * 101), -- 隨機分數0到100v_student_id -- 學生ID);SET v_counter = v_counter + 1;END WHILE;END WHILE;
END //
DELIMITER ;CALL InsertStudentAndScoreData();
DELIMITER //
CREATE PROCEDURE InsertStudentAndScoreData()
BEGINDECLARE v_student_id INT;DECLARE v_counter INT DEFAULT 0;DECLARE v_total_scores_to_insert INT DEFAULT 18;DECLARE v_scores_inserted INT DEFAULT 0;DECLARE v_random_student_index INT;DECLARE v_random_score_name VARCHAR(255);DECLARE v_random_result INT;-- 設置學生表的自增序號從6開始ALTER TABLE student AUTO_INCREMENT = 6;-- 插入10條隨機學生信息WHILE v_counter < 10 DOINSERT INTO student(createDate, userName, phone, age, sex, introduce)VALUES (NOW(),CONCAT('User', FLOOR(RAND() * 10000)),CONCAT('+', FLOOR(RAND() * 9999999999)),FLOOR(RAND() * 10 + 18),ELT(1 + FLOOR(RAND() * 3), 'Male', 'Female', 'Other'),'Random Introduction');SET v_counter = v_counter + 1;END WHILE;-- 初始化計數器SET v_counter = 0;-- 插入成績,直到達到18條記錄WHILE v_scores_inserted < v_total_scores_to_insert DO-- 隨機選擇一個已插入的學生IDSET v_random_student_index = FLOOR(RAND() * 10) + 6; -- 學生ID范圍從6到15-- 生成隨機成績數據和科目名稱SET v_random_score_name = CONCAT('Subject', FLOOR(RAND() * 10));SET v_random_result = FLOOR(RAND() * 101); -- 隨機分數從0到100-- 插入成績記錄INSERT INTO score(scoreName, result, studentId)VALUES (v_random_score_name, v_random_result, v_random_student_index);-- 更新已插入成績計數SET v_scores_inserted = v_scores_inserted + 1;END WHILE;
END //
DELIMITER ;CALL InsertStudentAndScoreData();

#問題4: 觸發器
幫我創建一個修改score表scoreName的觸發器,當修改scoreNlame的時候臉發,判斷修改的scoreName是否是數學,如果是數學就改成(天書).
并且給出測試示例。
#問題5:游標
創建一個兩個表的綜合游標查詢,要求根據學生姓名進行查詢,查詢的結果返回兩個表的綜合信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14635.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3實戰Easy云盤(四):使用空間+文件預覽+文件分享+文件下載

一、空間使用 Framework.vue中 &#xff08;1&#xff09;引入接口 const api {getUseSpace: "/getUseSpace",logout: "/logout", }; &#xff08;2&#xff09;回調 // 使用空間 const useSpaceInfo ref({ useSpace: 0, totalSpace: 1 }); const g…

達夢數據庫和Oracle對比

達夢數據庫和Oracle對比 達夢數據庫&#xff08;DM&#xff09;是中國自主研發的一款數據庫管理系統&#xff0c;在功能和應用上與 Oracle 數據庫有諸多類似&#xff0c;但也有其獨特的特點。以下是對達夢數據庫&#xff08;DM&#xff09;和 Oracle 數據庫的詳細對比&#xf…

unreal engine 5.0.3 創建游戲項目

根據虛幻官網介紹&#xff0c;虛幻引擎5可免費用于創建線性內容、定制項目和內部項目。你可以免費用它開發游戲&#xff0c;只有當你的產品營收超過100萬美元時&#xff0c;才收取5%的分成費用。所以目前國內也有許多游戲廠商在使用UE制作游戲。UE5源碼也已開源&#xff0c;有U…

[數據集][目標檢測]吸煙檢測數據集VOC+YOLO格式1449張1類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;1449 標注數量(xml文件個數)&#xff1a;1449 標注數量(txt文件個數)&#xff1a;1449 標注…

huggingface筆記:LLama 2

1 前提tip 1.1 使用什么數據類型訓練模型&#xff1f; Llama2模型是使用bfloat16訓練的 上傳到Hub的檢查點使用torch_dtype float16&#xff0c;這將通過AutoModel API將檢查點從torch.float32轉換為torch.float16。在線權重的數據類型通常無關緊要&#xff0c;這是因為模型…

QT 使用QZipWriter進行文件壓縮

目錄 1、QZipWriter 2、主要功能 3、示例 1、QZipWriter QZipWriter 是 Qt 提供的一個類&#xff0c;用于創建和管理 ZIP 文件。它屬于 Qt 的 QtGui 模塊&#xff0c;雖然在 Qt 6 中已經被移除&#xff0c;但在早期的 Qt 版本中&#xff0c;它被用作一種簡便的方式來創建 ZI…

CMMI模型的分析

CMMI模型的分析 CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是由美國卡內基梅隆大學軟件工程研究所(SEI)開發的一個過程級改進訓練和評估程序。CMMI模型為組織提供了一套綜合的指南,用于改進其過程和提升性能。 CMMI 3.0是CMMI模型的最新版本,于…

AWS計算之AWS Elastic Beanstalk

AWS Elastic Beanstalk是一項用于簡化應用程序部署和管理的托管服務。它允許開發人員上傳他們的應用程序代碼&#xff0c;并自動處理底層的部署、擴展、負載均衡和監控任務&#xff0c;從而使開發人員能夠專注于應用程序的開發而不必擔心基礎架構的管理細節。 借助Elastic Bea…

機器學習300問】95、什么是KNN算法?它和K-means什么關系?

一、KNN算法的定義 KNN&#xff08;K-Nearest Neighbors&#xff09;算法&#xff0c;是一種簡單而有效的監督學習方法。它既可以用在分類任務&#xff0c;也可用在回歸任務中。KNN算法的核心思想&#xff1a;在特征空間中&#xff0c;如果有一個數據點周圍的大多數鄰居屬于某個…

5. JVM面試題匯總

Java全棧面試題匯總目錄-CSDN博客 1. 說一下JVM的主要組成部分及其作用? JVM包含兩個子系統和兩個組件&#xff0c;兩個子系統為Class loader(類裝載)、Execution engine(執行引擎)&#xff1b;兩個組件為Runtime data area(運行時數據區)、Native Interface(本地接口)。 Cl…

linux mail命令及其歷史

一、【問題描述】 最近隔壁組有人把crontab刪了&#xff0c;crontab這個命令有點反人類&#xff0c;它的參數特別容易誤操作&#xff1a; crontab - 是刪除計劃表 crontab -e 是編輯&#xff0c;總之就是特別容易輸入錯誤。 好在可以通過mail命令找回&#xff0c;但是mai…

【計算機網絡】初識Tcp協議

&#x1f4bb;文章目錄 &#x1f4c4;前言Tcp基礎概念Tcp 的報文格式三次握手四次揮手 Tcp的滑動窗口機制概念超時重傳機制高速重傳 TCP傳輸控制機制流量控制擁堵控制慢啟動 Tcp的性能優化機制延遲應答捎帶應答 &#x1f4d3;總結 &#x1f4c4;前言 TCP三次握手、四次揮手&…

Java刷題總結(面試)

1、String類 String不可變 java 中String是 immutable的&#xff0c;也就是不可變&#xff0c;一旦初始化&#xff0c;其引用指向的內容是不可變的。 也就是說&#xff0c;String str “aa”&#xff1b;str“bb”&#xff1b;第二句不是改變“aa”所存儲地址的內容&#xf…

Overleaf是什么?如何升級到標準版OR專業版?

1. Overleaf介紹 Overleaf是一個使用LaTeX進行多人協同編輯的平臺&#xff0c;可以免費注冊和使用&#xff0c;不用下載LaTeX軟件&#xff0c;是最為著名的LaTeX在線協作系統。 主要特色是有LaTeX插件&#xff0c;編輯功能十分完善&#xff0c;有實時預覽&#xff08;即編即看…

Java 使用繼承和重寫父類方法寫一個商品入庫案例

package 練習.商品入庫;import java.util.Scanner; // 抽象手機類 public abstract class Phone {//測試方法public static void main(String[] args){// 華為手機huawei h new huawei();h.setName("華為P40");h.setPrice(1999.99);h.setConfiguration("8128GB…

docker 安裝 私有云盤 nextcloud

拉取鏡像 # 拉取鏡像 sudo docker pull nextcloud運行nextcloud 容器 # 內存足夠可以不進行內存 --memory512m --memory-swap6g # 橋接網絡 --network suixinnet --network-alias nextcloud \ sudo docker run -itd --name nextcloud --restartalways \ -p 9999:80 \ -v /m…

【排名公布】綿陽男科醫院排名發布,綿陽高水男科醫院究竟咋樣啊?

【排名公布】綿陽男科醫院排名發布&#xff0c;綿陽高水男科醫院究竟咋樣啊&#xff1f; 綿陽高水醫院&#xff0c;是一家醫保定點單位&#xff0c;地址位于綿陽市涪城區長虹大道北段113號。一所與國際接軌的現代化男子醫院&#xff0c;有良好地就醫環境,擁有多名有經驗的專家…

基于Tensorflow實現了三個模型對MNIST數據集的識別

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 MNIST手寫數字數據集是計算機視覺和機器學習領域的一個經典數據集&#xff0c;常用于評估圖像…

ubuntu安裝文件

ubuntu如何安裝deb文件? ubuntu離線安裝deb文件的兩種方法_系統工具_軟件教程_腳本之家 1. 雙擊安裝 2.命令安裝 1.、我們打開終端窗口&#xff0c;然后先使用cd命令進入deb文件所在的目錄&#xff0c;例如&#xff1a; cd ~/Downloads 2、接著我們就可以使用dpkg命令來安裝這…

攻防世界-mobile-easy-app詳解

序言 這道題網上很多分析&#xff0c;但是分析的都是arm版本的&#xff0c;我選了arm64的來分析&#xff0c;arm64相比arm難度高一些&#xff0c;因為arm64編譯器搞了inline優化&#xff0c;看起來略抽象 分析 這道題邏輯很簡單&#xff0c;輸入flag然后一個check函數驗證&a…