學校作業,拿來記錄一下。(老師出的習題貌似是從一本書上拿到的)
Q1:
使用RAND()函式來獲得3個隨機值。
A1:
解析:rand()函式,獲得隨機值,產生0-1的隨機值。(random ,隨機)
Q2:
求3和4的平方根。
A2:
解析:sqrt()用於求解平方根。
Q3:
求7.2和-7.2的絕對值。
A3:
解析:直接使用abs()就行了(哦對了,解析一下,mysql的值是一個表,一個列也是一個表,所以可以直接用select function())
Q4:
求小於或等於-3.5或6.8的最大整數,大於或等於-3.5或6.8的最小整數。
A4:
解析:小於或者等於某個數使用floor() (floor 下限),大於或者等於某個數使用ceiling()(ceiling 天花板)
Q5:
求8.546小數點後2位的值和四捨五入的整數值。
A5:
解析:我覺得不用解析了。
Q6:
求X的ASCII碼值。
A6:
Q7:
將ASCII碼值88、89、90組合成字串。
A7:
Q8:
求joyful左側和右側開始的3個字元。
A8:
Q9:
查詢字串”計算機網路”的長度。
A9:
Q10:
將”資料庫原理與應用”中的”原理與應用”替換為”技術”。
A10:
Q11:
返回字串joyful的從第4個字元開始的3個字元。
A11:
Q12:
獲取當前日期。
A12:
Q13:
獲取當前時間。
A13:
Q14:
獲取當前日期和時間。
A14:
Q15:
查詢成績表score,如果分數列的值大於或等於80分,則輸出”良好”,否則輸出”一般, 不及格或空值”。
A15:
Q16:
使用IFNULL()函式做條件判斷。
A16:
解析:IFNULL() 函式用於判斷第一個表示式是否為 NULL,如果為 NULL 則返回第二個引數的值,如果不為 NULL 則返回第一個引數的值。(ifnull,將這裡的if看成mysql中的if語句就可以了)
Q17:
獲取當前資料庫的版本號。
A17:
Q18:
修改MySQL的結束符為“//”。
A18:
解析:delimiter,翻譯過來是定界符。
Q19:
建立一個不帶引數的儲存過程P_str,輸出“Hello MySQL!”。
A19:
解析:儲存過程需要修改定界符,儲存過程在之前的刷題中說過了。
Q20:
建立一個帶引數的儲存過程P_maxGrade,查詢指定學號學生的最高分。
A20:
解析:看實踐就懂了,很像類。
Q21:
建立儲存過程P_math,如果”高等數學”課程的平均成績大於80分,則顯示”高等數學成績良好”,否則顯示”高等數學成績一般”。
A21:
Q22:
建立儲存過程P_title,將教師職稱轉變為職稱型別。
A22:
解析:建議手打一遍。declare宣告儲存過程內部變數。into 關鍵詞是用在select語句的賦值關鍵詞。在儲存過程中,case語句是如上圖寫的那樣子。out 參數列示一定會輸出。
Q23:
建立儲存過程P_integerSum,計算1~100的整數和。:
A23:
解析:邏輯都很簡單。需要注意的是while 在儲存過程中的寫法。(有點像dowhile欸)
Q24:
建立儲存過程P_oddSum,計算1~100的奇數和。
A24:
解析:
然後就是,:= 和=都可以表示賦值,在set語句裡面。然後在其他語句裡面,=是表示比較的意思(目前來看是這樣的)
1、while是滿足條件才執行迴圈,repeat是滿足條件退出迴圈;
2、while在首次迴圈執行之前就判斷條件,最少執行0次,repeat是在首次執行迴圈之後才判斷條件,迴圈至少執行一次。
Q25:
建立儲存過程P_factorial,計算10的階乘。
A25:
解析:• 標籤label可以加在begin…end語句以及loop, repeat和while語句
• 語句中透過iterate和leave來控制流程,iterate表示返回指定標籤位置,leave表示跳出標籤
可以理解成一個想要變成誰就變成誰的變形怪。至於為什麼要有標籤這個東西我還沒有搜到。
Q26:
建立一個儲存過程,計算student表中行的數目。
A26:
解析:
1、解釋:
在mysql的儲存過程中經常會看到這句話:DECLARE CONTINUE HANDLER FOR NOT FOUND。
它的含義是:若沒有資料返回,程式繼續,並將變數IS_FOUND設為0 ,這種情況是出現在select XX into XXX from tablename的時候發生的。
2、每個遊標必須使用不同的declare continue handler for not found set done=1來控制遊標的結束。(參考自DECLARE CONTINUE HANDLER FOR NOT FOUND - 雨的印記o - 部落格園 (cnblogs.com))
大致意思其實是有一個declare ……handler ,如果沒有資料返回的話,那麼就將found設定成false。參考自MYSQL-DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND=FALSE_declare continue handler for not found set-CSDN部落格
後面的語句也很簡單,就是一個遊標在讀資料。
Q27:
建立向學生表插入一條記錄的過程P_insertStudent,並呼叫該過程。
A27:
Q28:
建立修改學生專業和總學分的過程P_updateSpecGrade,並呼叫該過程。
A28:
Q29:
建立刪除學生記錄的過程P_deleteStudent,並呼叫該過程。
A29:
Q30:
刪除儲存過程P_insertStudent。
A30:
Q31:
建立一個儲存函式F_courseName,由課程號查課程名。
呼叫儲存函式F_courseName。
刪除儲存函式F_courseName。
A31:
解析:deterministic , 確定性。