Open-Source World

          let's learn and study.
          posts - 28, comments - 23, trackbacks - 0, articles - 1
          一.------------------------->01

              set linesize 500
              set pagesize 100

              run或 r 或 (符號)/ ------------>都表示 把上一個命令重新執(zhí)行一次.


          alter session set NLS_date_format='YYYY-MM-DD'; 修改用戶的會話來修改日期格式
          默認(rèn)的日期格式是:'DD-MON-YY'
           
          SQL> insert into scott.emp(empno,ename,sal)    values(&employeeid,'&name',&employeesal);
          輸入 employeeid 的值:  9001
          輸入 name 的值:  jiake02
          輸入 employeesal 的值:  4000
          原值    2: values(&employeeid,'&name',&employeesal)
          新值    2: values(9001,'jiake02',4000)
          這個命令可以多次使用,如按符號 / 然后回車,可以反復(fù)的輸入值.

          insert語句中使用子查詢;例如 insert into managers(id,name,salary,hiredate)
                                              select empno,ename,sa,hiredate
                                              from emp
                                              where job='manager';


          二------------------>02

          1.Oracle每個SQL語句都是一個事務(wù),當(dāng)用commit或rollback 來結(jié)束事務(wù)

          2.savepoint update_dept;設(shè)置保存點;

          可以用rollback  to update_dept;方式,解決分步處理或者有選擇的執(zhí)行;


          Orcale連接兩個字符串用兩個||,而SQL用&

          %代表多個任意字符,_代表一個任意字符

          IS NULL 是判斷是否為空

          三.lesson--------------------->03

          SQL函數(shù):
          單行函數(shù):---->General/Character/Number/Date/Conversion
          1.字符函數(shù)
              轉(zhuǎn)換函數(shù)---->LOWER select lower(ename) from scott.emp;
                                      /UPPER  select * from scott.emp where ename=upper('king');
                                      /INTCAP 首字母大寫,其余為小寫
                                      SQL> select initcap(ename) from scott.emp;

                                                      INITCAP(EN
                                                          ----------
                                                        Smith

              字符操縱函數(shù)------>CONCAT
                          select empno,concat(ename,job) from scott.emp;<=>select ename||job from scott.emp;

                           EMPNO CONCAT(ENAME,JOB)
                          ------ -------------------
                            7369 SMITHCLERK
                            7499 ALLENSALESMAN
                        /LENGTH
                         1.select empno,ename,length(ename) from scott.emp;

                           EMPNO ENAME      LENGTH(ENAME)
                          ------ ---------- -------------
                            7369 SMITH                  5
                        
                         2.select length('同學(xué)們') from dual;

                           LENGTH('同學(xué)們')
                          -------------
                                      3
                        
                        /SUBSTR
                         select empno,ename,substr(ename,1,4) from scott.emp;

                           EMPNO ENAME      SUBSTR(E
                          ------ ---------- --------
                            7369 SMITH      SMIT
                            7499 ALLEN      ALLE

                        /INSTR 返回位置值
                         SQL> select ename,instr(ename,'S') from scott.emp;

                          ENAME      INSTR(ENAME,'S')
                          ---------- ----------------
                          SMITH                     1
                          ALLEN                     0
                          WARD                      0
                          JONES                     5

                        /LPAD 把字符串按某種模式顯示
                         SQL> select ename,lpad(ename,10,'*') from scott.emp;

                          ENAME      LPAD(ENAME,10,'*')
                          ---------- --------------------
                          SMITH      *****SMITH
                          ALLEN      *****ALLEN
                          WARD       ******WARD
                          JONES      *****JONES

          數(shù)值函數(shù):ROUND  
                  SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1)
                      FROM DUAL;
                  結(jié)果:
                  按順序是:45.92   46    50
               /TRUNC
                  SELECT TRUNC(45.923,2),TRUNC(45.923,0),TRUNC(45.923,-1)
                      FROM DUAL;
                  結(jié)果:
                  按順序是:45.92   45    40
               /MOD   

          日期函數(shù):
              MONTHS_BETWEEN:返回兩個日期之間月份的差值
                      MONTHS_BETWEEN('01-EP-95','11-JAN-94')
                          ===>19.6774194
                      
              ADD_MONTHS:在日期上加上份數(shù).
                     ADD_MONTHS('11-JAN-94',6)
                          ===>'11-JUL-94'

              NEXT_DAY:指定日期的后一天.
                   NEXT_DAY('01-SEP-95','FRIDAY')
                          ===>'08-SEP-95'

              LAST_DAY:月份中最后一天.
                   LAST_DAY('01-SEP-95)
                          ===>'30-SEP-95'

              ROUND:四舍五入日期
                    ROUND('25-JUL-95','MONTH')    ===>01-AUG-95
                    ROUND('25-JUL-95','YEAR')        ===>01-JAN-96

              TRUNC:截斷日期
                    TRUNC('25-JUL-95','MONTH')    ===>01-JUL-95
                    TRUNC('25-JUL-95','YEAR')        ===>01-JAN-95

          日期函數(shù):
              YYYY----代表完整的年份
              YEAR----年份
              MM------兩位數(shù)月份
              MONTH---月份的完整名稱
              DY------每星期中天的三個字符
              DAY-----天的完整名稱
          1.to_char函數(shù)
          SQL> select ename,hiredate,to_char(hiredate,'YYYY-MM-DD') from scott.emp;

              ENAME      HIREDATE   TO_CHAR(HI
              ---------- ---------- ----------
              SMITH      17-12月-80 1980-12-17
              ALLEN      20-2月 -81 1981-02-20
              WARD       22-2月 -81 1981-02-22

          2.to_date函數(shù)
           1  insert into scott.emp(empno,ename,hiredate)
           2* values(9004,'dtConvert',to_date('1982-05-04','YYYY-MM-DD'))

               EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM    
              ------ ---------- --------- ---------- ---------- ---------- ---------- --
                9004 dtConvert                       04-5月 -82

          3.NVL函數(shù):將NULL值轉(zhuǎn)換成一個實際的值(date,character和number類型可以使用)
              eg:NVl(comm,0) 或NVL(hiredate,'01-JAN-97')或NVL(job,'No Job Yet')

          4.DECODE 函數(shù):功能類似 CASE or IF-THEN-ELSE 語句,但更容易.語法:DECODE(col/expression,search1,result1
                                                      [,search2,result2,......,]
                                                      [,default] )

                1  select job,sal,
                2              DECODE(job,'ANALYST',SAL*1.1,
                3                    'CLERK',SAL*1.15,
                4                    'MANAGER',SAL*1.20,
                5                              SAL)
                6         REVISER_SALARY
                7* FROM scott.emp

              JOB              SAL REVISER_SALARY
              --------- ---------- --------------
              CLERK            800            920
              SALESMAN        1600           1600
              SALESMAN        1250           1250
              MANAGER         2975           3570
              SALESMAN        1250           1250
              MANAGER         2850           3420
              MANAGER         2450           2940
              ANALYST         3000           3300
              PRESIDENT       5000           5000
              SALESMAN        1500           1500
              CLERK           1100           1265
              CLERK            950         1092.5
              ANALYST         3000           3300
              CLERK           1300           1495

          5.命令:
              save:把sqlplus中的命令,保存在硬盤中.例如:
                  SQL> save 'D:\selectEmp.txt'
                  已創(chuàng)建文件 D:\selectEmp.txt

              get:把命令從硬盤中加載到sqlplus環(huán)境中. 然后 鍵入 run或r或/ 執(zhí)行.例如:
              SQL> get 'D:\selectEmp.txt'
                1* select * from scott.emp
              SQL> r
                1* select * from scott.emp

                   EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO
              ---------- ---------- --------- ---------- ---------- ---------- ---------- ----------
                    7369 SMITH      CLERK           7902 17-12月-80        800                    20
                    7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30
                    7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30
                    7566 JONES      MANAGER         7839 02-4月 -81       2975                    20
                    7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30

              @:把命令從硬盤中加載到sqlplus環(huán)境中 并自動執(zhí)行.例如:
               SQL> @ D:\selectEmp.txt

                   EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO
              ---------- ---------- --------- ---------- ---------- ---------- ---------- ----------
                    7369 SMITH      CLERK           7902 17-12月-80          800                    20
                    7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300         30
                    7521 WARD       SALESMAN        7698 22-2月 -81       1250        500         30
                    7566 JONES      MANAGER         7839 02-4月 -81       2975                    20
                    7654 MARTIN     SALESMAN        7698 28-9月 -81       1250       1400         30

          有問題的地方請指正?。?br /> 謝謝??!

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 四川省| 伊金霍洛旗| 沁水县| 司法| 麻城市| 合水县| 喀什市| 松桃| 江阴市| 海安县| 虎林市| 潼南县| 广丰县| 朔州市| 麟游县| 巴东县| 肥乡县| 江永县| 阳信县| 万荣县| 剑川县| 偏关县| 元江| 桓台县| 乌什县| 明光市| 伊通| 仪征市| 综艺| 大石桥市| 乐昌市| 大关县| 久治县| 榆林市| 镇安县| 罗平县| 阳信县| 建平县| 塔城市| 长沙县| 集安市|