實驗樓挑戰3 簡化資料操作提公升效能

2021-08-14 17:32:54 字數 1769 閱讀 9618

wget 

.aliyuncs

.com/courses/9/createdb2.sql

資料庫 gradesystem 中有三張表分別用於記錄學生資訊、課程資訊和成績資訊。

資料庫表的資料如下:

學生表(student):學生 id 、學生姓名和性別

課程表(course):課程 id 和課程名

成績表(mark):成績 id 、學生 id 、課程 id 和分數

成績更新表(modifymark):成績 id (m_mid)、學生 id (m_sid)、課程 id(m_cid) 、分數(m_score)和更新時間(m_time),表結構與 mark 表大致類似。

伺服器中的 mysql 還沒有啟動,請注意 mysql 的 root 賬戶預設密碼為空。

mysql 服務處於執行狀態

sudo service mysql start

mysql -u root

source /home/shiyanlou #sql檔案位址
建立觸發器 trigger_modify 實現當 mark 表有分數被修改時,將更新後的整條資料插入到 modifymark 表中。
create

trigger trigger_modify before

update

on mark

foreach

rowbegin

insert

into modifymark value (null,new.sid, new.cid, new.score,now());

測試將 tom 的化學成績在原來的基礎上加3分
update mark set score = score + 3

where sid = (select sid from student where sname = 'tom') and cid = (select cid from course where cname = 'chemistry');

檢視 modifymark 中是否插入了資料
select * from modifymark ;
建立儲存過程 math_proc 將數學課的全部學生的成績按降序排列顯示。包括課程名(cname) math、學生姓名(sname)以及分數(score)
create

procedure

math_proc

()begin

select 'math', sname, score

from

student, mark

where

mark.cid = (select cid from course where cname = 'math')

andstudent.sid = mark.sid

order

byscore

desc;

#call語句呼叫乙個先前使用create

procedure建立的程式。

call

math_proc

();

建立使用者 testuser,密碼為 123456,並為其分配在資料庫 gradesystem 下所有表的 select 許可權
grant

select

on *.* to

'testuser'@'localhost' identified by

'123456';

實驗樓python3學習挑戰專案

在實驗樓學習python3做的挑戰專案做的 整理。能夠計算出乙個半徑為2的圓的面積,並且把面積列印出來,保留小數點後10位。不要使用 input 等方法獲得輸入,程式不需要輸入任何引數,可以使用 python3 circlearea.py 執行,並直接輸出 半徑為2 的圓的面積數字。usr bin ...

挑戰 備份日誌 實驗樓

備份日誌 小明是乙個伺服器管理員,他需要每天備份論壇資料 這裡我們用日誌替代 備份當天的日誌並刪除之前的日誌。而且備份之後檔名是年 月 日的格式。alternatives.log在 var log 下面。目標 為shiyanlou使用者新增計畫任務 每天凌晨3點的時候定時備份alternatives...

實驗樓 Linux基礎入門 挑戰1

有乙個非常重要的檔案 sources.list 但是你忘了它在哪兒了,你依稀記得它在 etc 目錄下。現在要你把這個檔案找出來,然後設定為自己可以訪問,但是其他使用者不能訪問。1.找到sources.list檔案 2.把檔案所有者改為自己 shiyanlou 3.把許可權修改為僅僅只有自己可讀可寫 ...