一.單行函式
轉換函式: 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 為經常需要排序 分組和...