oracle筆記1:-安裝-體繫結構-基本查詢

來源:互聯網
上載者:User

標籤:一句話   統計   replace   第一個   進入   dbf   並且   管理   lan   

一.Oracle資料庫的安裝(安裝在虛擬機器的xp系統裡)
     1.安裝虛擬機器
     2.虛擬機器內安裝xp系統,以下步驟在虛擬機器內進行
     3.雙擊setup.exe,在出現的介面中設定口令,及確認口令(此口令即為system帳號的密碼),點擊下一步
     4.先決條件檢查,將"使用者已驗證前面的複選框打勾,下一步
     5.概要介面,點擊安裝
     6.安裝完成後,自動回合組態嚮導
     7.口令管理介面,點擊"口令管理"解鎖SCOTT和HR兩個賬戶
     8.回到口令管理介面,點擊確定,安裝完成,點擊退出.

    9.設定虛擬機器:編輯--虛擬網路編輯器--添加網路,添加後會自動分配IP(如,192.168.9.0)
     10.此時,本機上會多出一塊虛擬網卡(網路和共用中心),設定該網卡的IP與虛擬機器的ip在同一網段(如192.168.9.1)
     11.設定xp系統中ip保持在同一網段(如192.168.9.2)
     12.設定虛擬機器的網路介面卡,自訂為剛才添加的網卡;虛擬機器-設定-網路介面卡-自訂

    13.修改oracal的兩個核心設定檔:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
     該檔案下,listener.ora檔案和tnsnames.ora檔案中的ip都改為與xp系統ip一致,port=1521

    14.測試sqlplus用戶端串連伺服器,將sqlplus所在的整個檔案夾(instanclient_12_1),copy至一個沒有中文,沒有空格的路徑裡
     15.開啟DOS視窗,進入該檔案夾,輸入命令:sqlplus system/密碼@遠程IP:1521/orcl;若使用powershell,則輸入.\sqlplus system/密碼@遠程IP:1521/orcl
     遠程IP:XP系統的ip;密碼為安裝時輸入的密碼
     16.quit,退出

    17.測試並串連pl/sql developer.安裝pl/sql,注意安裝路徑不能有中文,不能有空格,一直下一步直到安裝完成;
     18.點擊捷徑,出現登陸介面,點擊"cancel",進入介面
     19.tools--preferences,修改oracle home為:D:\instantclient_12_1;
     修改OCIlibrary為,D:\instantclient_12_1/oci.dll;
     20.copy oracle的核心檔案tnsnames至一個沒有中文和空格的路徑裡,然後添加至系統內容變數,變數名:TNS_ADMIN,變數值為:D:\instantclient_12_1
     21.使用system賬戶進入系統;

    22.進入資料庫後,重設及解鎖SCOTT賬戶,命令如下:alter user  scott identified by tiger account unlock;對於HR賬戶同樣操作;

    注:
     --解決中文亂碼問題
     --1.查看伺服器端編碼
     select userenv(‘language‘) from dual;
     --2.查看以下語句執行後的第一個參數與伺服器端編碼是否一致
     select * from V$NLS_PARAMETERS;
     --3.若不一致,添加環境變數:變數名:NLS_LANG,變數值:第1步查到的值
     --4.重啟pl/sql Devloper


二.Oracle資料庫的體繫結構
     1.資料庫:oracle資料庫是資料的實體儲存體,包括資料檔案ora或者dbf,控制檔案,聯機檔案,記錄檔,參數檔案.oracle資料庫在一個作業系統中只有一個庫,這是與其它資料庫的區別之處;
     2.執行個體:一個執行個體由一系列的後台進程和記憶體結構組成,一個資料庫可以有n個執行個體,一般只設定一個;
     3.資料檔案(dbf):資料庫的實體儲存體單位;
     4.資料表空間:資料檔案的邏輯映射.一個資料庫在邏輯上被劃分成一個或多個資料表空間;資料表空間由磁碟上的一個或多個資料檔案(datafile)組成,一個資料檔案只能屬於一個資料表空間.
     5.使用者:使用者是在執行個體下建立的,不同執行個體中可以建相同名字的使用者.

三.基本查詢語句(SCOTT賬戶)
select * from emp;

1.--去重 distinct
select distinct job from emp;
select job from emp;

2.--字串串連 ||  每個員工的資訊用一句話顯示:“員工編號是XXXX,姓名是XXX,職位是XXX”
select ‘員工編號是‘ || empno || ‘,姓名是‘ || ename || ‘,職位是‘ || job from emp;

3.--四則運算
select sal*12 from emp;

4.--條件查詢
4.1--查詢工資大於等於1500並且小於等於3000的員工
select * from emp where sal >= 1500 and sal <= 3000;

4.2--between and 含頭含尾
select * from emp where sal between 1500 and 3000;

4.3--查詢工資不大於1500 not
select * from emp where not sal > 1500;

4.4--查詢員工編號是 7566,7788,7369 in
select * from emp where empno in(7566,7788,7369);

4.6--查詢獎金為空白的員工資訊 is
select * from emp where comm is null;


5.--模糊查詢 like
--萬用字元%,預留位置_
--查詢員工姓名中第二個字元帶m的,此時,Oracle資料庫大小寫敏感的
select * from emp where ename like ‘_M%‘;

6.--查詢員工姓名中帶_,需要轉義 escape       注:%/&/中文字元不可作為逸出字元使用
select * from emp where ename like ‘%a_%‘ escape ‘a‘;


7.--排序 order by asc desc
--按照獎金的降序排序
select * from emp order by comm desc nulls last;
select 1+1 from dual;

8.--單行函數
--字元函數:
        lower()轉小寫;
        upper()轉大寫;
        initcap()首字母大寫;
        replace()替換;
        substr()截取;
        length()長度;
        concat()串連;
select lower(‘ABC‘) from dual;
select upper(‘abc‘) from dual;
select initcap(‘abcd‘) from dual;
select replace(‘abcdef‘,‘ab‘,‘MM‘) from dual;
select substr(‘abcdef‘,0,3) from dual;--從第1個開始取(含),取3個;
select substr(‘abcdef‘,1,3)from dual;--從第1個開始取(含),取3個;
select substr(‘abcdef‘,2,3) from dual;--從第2個開始取(含),取3個;
select length(‘abcdefg‘) from dual;
select concat(‘abc‘,‘def‘) from dual;
select ‘abc‘||‘def‘ from dual;

9.--數值函數
round()四捨五入
trunc()去尾/截斷
mod()模數
select round(12.56,1) from dual;--12.6
select round(12,-1) from dual;--10
select round(16,-1) from dual;--20

select trunc(12.56,-1) from dual;--10
select trunc(16.5,-1) from dual;--10

select mod(10,3) from dual;--1

10.--日期函數
10.1--當前系統時間 sysdate
select  sysdate from dual;

10.2--兩個日期的月份差months_between
select ename, round(months_between(sysdate,hiredate)) from emp;

10.3--add_months n個月後的時間
select add_months(sysdate,4) from dual;

11--轉換函式
--字元轉數字
select ‘12‘+‘12‘ from dual;
select to_number(‘12‘)+to_number(‘12‘) from dual;

12--  查詢 ‘1980-12-17‘入職的員工
select * from emp where to_char(hiredate,‘yyyy-MM-dd‘) = ‘1980-12-17‘;
select * from emp where hiredate = to_date(‘1980-12-17‘,‘yyyy-MM-dd‘);

13--通用函數 nvl
--null如果參與運算,則結果恒為null,需使用nvl函數將其轉為0
select empno,ename,comm,sal*12+nvl(comm,0) from emp;

14--翻譯函數 decode    把員工表中的職位顯示成中文

select ename,job,decode(job,
        ‘CLERK‘,‘店員‘,
        ‘SALESMAN‘,‘銷售人員‘,
        ‘其它‘) from emp; 


                              
select ename, job,
case job when ‘CLERK‘ then ‘店員‘
          when ‘SALESMAN‘ then ‘銷售人員‘
          else ‘其他‘
          end
          from emp;

15.--組函數
--計算每個部門的平均工資
select deptno, trunc(avg(sal)) from emp group by deptno having avg(sal) > 2000;

16.--統計每個部門的人數,無人部門顯示為0

SELECT D.DEPTNO, COUNT(E.DEPTNO)
   FROM EMP E
  RIGHT JOIN DEPT D
     ON E.DEPTNO = D.DEPTNO
  GROUP BY D.DEPTNO;

oracle筆記1:-安裝-體繫結構-基本查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.