資料庫學習筆記2018 12 22(函式)

2021-09-05 06:31:15 字數 1806 閱讀 8570

一.單行函式

轉換函式: to_char(), to_number(), to_date()

1.列印出「2023年12月22日 8:41:56」格式為當前系統的日期和時間。(注意使用雙引號向日期中新增字元)。

select tochar(sysdate 'yyyy"年m"m"月"dd"日" hh:mi:ss ')from dual
2.格式化數字: 1234567.89 為 1,234,567.89

select tochar(1234567.89,'999,999,999.99')from dual
3.字串轉為數字時

1). 若字串中沒有特殊字元, 可以進行隱式轉換:

select '1234567.89'+200 from dual
2). 若字串中有特殊字元, 例如 '1,234,567.89', 則無法進行隱式轉換, 需要使用 to_number() 來完成(括號中兩種格式必須一致)

select tonumber('1,234,567.89','999.999.999.99')+100 from dual
4.對於把日期作為查詢條件的查詢, 一般都使用 to_date() 把乙個字串轉為日期, 這樣可以不必關注日期格式

select name,id_no,frist_date from student where tochar(frist_date,'yyyy-mm-dd')='2018-12-22'
5.查詢每個月倒數第 3 天生日的學生的資訊

select name,birthday from student where birthday=last_day(birthday)-2
二.多行函式

nvl,nvl2,case.....when.....then....else...end,decode

1.計算公司員工的年薪

注:nvl(commission_pct,0)如果commission_pct為空則輸出0

select last_name,salary*12*(1+nvl(commission_pct,0)) year_sal from employees
2.查詢部門號為 10, 20, 30 的員工資訊, 若部門號為 10, 則列印其工資的 1.1 倍, 20 號部門, 則列印其工資的 1.2 倍, 30 號部門列印其工資的 1.3 倍數

1).使用case-when-then-else-end

注:當別名中有空格時一定要使用雙引號

select name,department_id, salary,case department_id when 10 then salary*1.1

when 20 then salary*1.2

when 30 then salary*1.3

else salary end new_salary from employees where department_id in (10, 20, 30)

2).使用decode

select name,salary,department_id,decode(department_id,10,salary*1.1,

20,salary*1.2,

30,salaey*1.3)

end new_sal from employees where department_id in (10, 20, 30)

資料庫學習筆記

組員 徐文棟11511010057,王清德11511010022 徐文棟學習筆記 1.學習登入進入,使用資料庫開始 執行 cmd 進入 c mysql uroot p 密碼 建立 create database 資料庫名 檢視 show databases 使用 use 資料庫名 刪除 drop d...

資料庫學習筆記

mysql是乙個關係型資料庫管理系統,由瑞典mysqlab公司開發,目前屬於oracle旗下產品。mysql 最流行的關係型資料庫管理系統,在 web 應用方面mysql是最好的rdbms relational database management system,關聯式資料庫管理系統 應用軟體之一...

資料庫學習筆記八 資料庫索引

一 索引 索引 index 是幫助 mysql 高效獲取資料的資料結構。常見的查詢演算法,順序查詢,二分查詢,二 叉排序樹查詢,雜湊雜湊法,分塊查詢,平衡多路搜尋樹 b 樹 b tree 二 選擇唯一性索引 1 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。2 為經常需要排序 分組和...