oracle基礎知識一

2021-06-09 16:37:20 字數 3779 閱讀 8229

1:檢視oracle的版本

select * from v$version

2: 檢視oracle當前的ssid

select instance_name from v$instance;

3:檢視當前的使用者

show user

4:分屏顯示

set pause on/set pause off

5:列出每個員工的名字、月薪

select first_name, last_name, salary from s_emp

6:select後面還可以寫乙個算數表示式,對取出的結果做計算

如列出每個員工的名字、年薪

select last_name, salary*12 from s_emp;co

7:給欄位名起別名:

select first_name, salary*12 annual_salary from s_emp; 

annual_salary是別名,與欄位名之間沒有逗號

8:如果處理得字段是字元型的,可以做字串拼接,用||兩個豎線:

select first_name || last_name "employee" from s_emp; 

將員工的姓和名字進行拼接,並起別名是employee

select first_name||' '||last_name "employee" from s_emp; 

單引號表示字串

select first_name||'_'||last_name "employee" from s_emp;  輸出為a' b

如何表達單引號,用兩個'

9:當字段值是null(空值在算術表達示中如何處理:有空結果就為空,把空值當無窮大處理,並不當成0處理)時,一般使用nvl函式進行處理

nvl函式:當欄位取值不是null,取本身;為null時,用後面的值替換,注意嚴格的型別匹配

顯示每個人每個月的工資注意有提成的人

select first_name ,salary+(salary*commission_pct/100) from s_emp;

出現問題沒有提成的人工資工資變為0 了 肯定不行

求一下總收入,年薪+提成,提成是年薪*提成/100

select first_name, salary*12*(1+nvl(commission_pct,0)/100)

"salary" from s_emp;

10:使用distinct,排除重複,同時排序。

distinct是保證聯合不重複,一直到from有效。

select distinct name ,id from s_dept;

查詢乙個公司有哪些部門

select distinct dept_id, title from s_emp;

乙個部門可以有很多職位,不同部門可以有相同職位,

但部門和職位的組合不會重複

設定輸出顯示字串長度:

column first_name for a10;

column salary for $00999,999;

11:where子句:條件表示式,實現選擇操作

select ... from ... where ... order by ... 先選擇過濾,再排序,

因為沒有必要為不需要的資料排序

where子句:where 欄位名 比較運算子 值 

數字(number)型別的直接寫,varchar2需要單引號,where子句要求型別完全匹配

找出42部門的所有員工

select first_name from s_emp where dept_id = 42;

查詢ben乙個月的工資,注意後面的名字大小寫敏感。

select first_name, salary from s_emp where first_name='ben';l

查詢工資大於1500

select * from s_emp where salary > 1500

比較運算子:

= > >= < <= 不等於!=

between ... and ...  在...之間,表示乙個閉區間

in(value1, value2, ....) 跟乙個集合列表,相當於乙個集合,一般把出現頻度高的放前,減少比較次數。  where id in(1,3) 和 where id=any(1,3)相同

like ....  通配,還可以加轉義,用escape,"\"為轉義符

like 'm%' m開頭的  like '_a%' 第二個字元是a的

%  0或多個字元

_  任意乙個字元

is null(是否為空)

... and ... 表示兩個條件同時滿足

... or ... 表示條件只要滿足其一就可以

not ... 則是與以上的條件產生反效果

例如:找出工資在1500到2500之間的員工

select first_name, salary from s_emp where

salary between 1500 and 2500;

找出41、42、43部門的員工資訊情況

select first_name, salary from s_emp where

dept_id in(41,42,43);

找出first_name中包含enr字元的員工,並查詢他的first_name 和last_name

select first_name,last_name

from s_emp

where first_name like '%enr%'

當前使用者下所有表名都是以's_'開始的表

select table_name from user_tables where table_name

like 's_%'; 

上面那樣寫是錯誤的,因為_代表任意乙個字元

select table_name from user_tables where table_name

like 's\_%' escape '\';

哪些人沒有提成:

select first_name, commission_pct from s_emp where

commission_pct is not null;

部門號是42部門,工資大於1000的員工

select first_name, salary, dept_id from s_emp where

dept_id=42 and salary>1000;

注意:括號改變優先順序。

12:order by子句

預設的select顯示是按照表中的儲存順序,如果對顯示有要求,需要排序則需要使用order by

select ... from ... order by ...  後面是排序原則。

order by ... desc  按照降序

order by ... 或者 order by ... asc  按照公升序

後面可以跟欄位名,也可以跟別名、位置(select後面字段出現的位置),多個排序條件。

如果有空值,公升序在最後,降序在最前

select first_name, salary from s_emp order by desc;

select salary s from s_emp order by s;

select first_name, salary from s_emp order by 2;

select first_name, dept_id, salary from s_emp order by dept_id, salary desc;

oracle 基礎知識 一

oracle 將資料庫例項存放目錄 安裝路徑的 oradata 目錄下。oradata下主要有 資料控制檔案 重做日誌檔案 資料檔案。admin目錄下,是每個資料庫都有乙個以資料庫名稱命名的子目錄,即我們所說的db name目錄。分別儲存 資料清理 可以經常將bdump udump目錄中的不再需要的...

Oracle基礎知識

關於oracle的安裝過程這裡不再一一列出,網上有許多的安裝教程以及安裝過程所遇問題的解決辦法。通過學習所達到的目標如下 理解結構化查詢語句的作用 分類 理解select語句的作用 掌握選擇所有列 指定列 表示式 帶空值null 列別名 連線操作符 消除重複行的sql語句書寫方法。結構化查詢語言 s...

Oracle基礎知識

oracle基本划水知識 1.oracle 是乙個資料庫管理系統 啟動 服務 lsnrctl start 啟動資料庫服務 net start oracleserviceorcl 邏輯結構 資料庫 表空間 資料段 資料區間 資料段 進入資料庫 sqlplus 使用者名稱 密碼 切換使用者 conn 使...