Oracle复习课
5-Oracle復習
回顧
1、定義過程:
實現往銀行表中錄入1條數據(輸入參數),如果存在同名賬號提示錯誤,否則錄入,并輸出表中的總條數(輸出參數)
2、模擬轉賬:輸入參數1:張三 轉 李四 輸入參數2:李四轉 張三 ,轉賬的金額通過輸入參數指定;
--測試 create or replace procedure sp_zhuanzhang4 (flag in number,money in number,fromUser in varchar2,toUser in varchar2 ) as beginif flag=1 thenupdate bank set balance=balance-money where name=fromUser;update bank set balance=balance+money where name=toUser;elseupdate bank set balance=balance-money where name=toUser;update bank set balance=balance+money where name=fromUser;end if;commit;exceptionwhen others thenrollback;end;--調用 beginsp_zhuanzhang4(2,2000,'張三','李四');end;復習內容
1、序列
mysql中有自增列;
oracle并沒有自增列,如果用數字列當主鍵,序號自動生成:序列;
序列:一串數字的生成器;數字不會重復。
create sequence seq331 start with 1 --從1開始 increment by 1; --遞增1使用:
select seq331.currval from dual; --必須先執行nextval才可以使用該屬性 select seq331.nextval from dual; --生成一個數字insert into bank(id,name,balance) values(seq331.nextval,'金蓮',5000); commit;2、網絡連接
? 監聽:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-vILuemWm-1601737262763)(5、Oracle復習.assets/image-20200918154308542.png)]
網絡連接基本原理分析:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-APnt5BYA-1601737262770)(5、Oracle復習.assets/image-20200918154836456.png)]
3、常用函數
字符串函數:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-21yFjdqO-1601737262776)(5、Oracle復習.assets/image-20200918165524640.png)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AI2nVoLl-1601737262786)(5、Oracle復習.assets/image-20200918165545547.png)]
栗子:
select concat('我喜歡','運動') from dual;declarestr varchar2(100); beginstr:=concat('你喜歡','睡眠');dbms_output.put_line(str);end;select concat(concat(ename,job),sal) 備注 from emp; -- 首字母大寫 select initcap(ename),initcap(job) from emp;select ename, length(ename) 長度,lower(ename) 小寫,upper(ename) 大寫 from emp; --左測填充 select lpad(ename,20,'*') from emp; --默認刪除左側的空格,刪除指定的左側的字符:- select ltrim(' 動漫'),ltrim('--------------動漫','-') from dual;--默認字符串的位置從1開始:原始字符串,開始位置,截取的長度 select substr('我喜歡看動作片',2,2) 截取 from dual; --替換 原字符串中 存在的字符 select replace(ename,'金蓮','潘金蓮') from emp;update emp set ename=replace(ename,'郎','王');select * from emp;數學函數:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-G43ZF207-1601737262792)(5、Oracle復習.assets/image-20200918174123448.png)]
--ceil 向上取整:返回>=當前數字的最小整數 -- floor:向下取整 ,返回<=當前數字的最大整數 select ceil(3.99) ,floor(3.19) from dual;--正數:對小數點之后進行操作 --負數:對小數點之前進行操作 --round:四舍五入,trunc:截取 select round(3.697,1),round(399.123,-1) from dual; select trunc(3.697,2),trunc(399.123,-3) from dual;日期函數:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-n4MCLUyd-1601737262795)(5、Oracle復習.assets/image-20200918174300344.png)]
--add_months(sysdate,-1):在指定的日期上增加指定的月份(正、負),返回的是日期類型 select sysdate,add_months(sysdate,-1) from dual;--last_day:月份的最后一天 select last_day(sysdate) from dual;--months_between('日期類型,'日期類型') --to_date:將字符串 ---》日期類型 select to_date('2020-9-18','yyyy-MM-dd') from dual;select months_between(sysdate,to_date('2020-8-18','yyyy-MM-dd')) from dual; --截取到日期的某一位 select trunc(sysdate,'dd') from dual;--to_char:將日期轉成字符串 select to_char(sysdate,'yyyy-MM-dd') 日期轉字符串 from dual;select * from emp;-- 查詢入職時間超過一年的員工 select * from emp where months_between(sysdate,hiredate)>12; -- 查詢本年入職的員工select hiredate,trunc(hiredate,'yyyy') from emp where trunc(hiredate,'yyyy')=trunc(sysdate,'yyyy');4、表空間
oracle數據庫:
數據庫實例:orcl: 物理文件+內存空間+進程
? 物理文件:.tcl:事務控制文件 .log:日志文件 .dbf:數據文件(數據表+數據)
select hiredate,trunc(hiredate,‘yyyy’) from emp
where trunc(hiredate,‘yyyy’)=trunc(sysdate,‘yyyy’);
總結
- 上一篇: Oracle就业课第四课之子程序
- 下一篇: Oracle就业课第六课之游标和触发器