Oracle DML 基礎查詢

2021-08-13 02:49:48 字數 2823 閱讀 8630

/*

message=

*//*連線scott使用者*/

conn scott/tiger;

/*設定每行記錄顯示的長度*/

set linesize 120;

/*設定每頁顯示的記錄數*/

set pagesize 20;

/*查詢scott中的表*/

select * from tab;

/*檢視表結構*/

desc dept;

desc emp;

desc bonus;

desc salgrade;

/*查詢scott中表的全部記錄 *:意為所有 */

select * from dept;

select * from emp;

select * from bonus;

select * from salgrade;

select deptno,dname,loc from dept;

select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;

select ename,job,sal,comm from bonus;

select grade,losal,hisal from salgrade;

/*消除查詢到的資料中的重複內容*/

select job from emp;

select distinct job from emp;

/*定義別名: as 《別名》*/

select empno,ename,sal*12 as saltotal from emp;

/*關係執行符:=、>、<、>=、<=、<>(!=)

邏輯運算子:and、or、not

範圍運算子:between...and...

謂詞範圍:in、not in

空判斷:is null、is not null

模糊查詢:like

限定查詢: select [distinct] 《列名稱》[,《列名稱》]... from 《表名稱》 [[as] 《別名》] [where 《過濾條件》]

*//*查詢king雇員的資訊*/

select * from emp where ename ='king';

/*查詢基本工資大於1000的雇員資訊*/

select * from emp where sal > 1000;

/*查詢基本工資在1000~1500之間的雇員資訊*/

select * from emp where sal >= 1000 and sal <=1500;

--只判斷乙個條件,效能有一定的提公升

select * from emp where sal between 1000 and 1500;

/*查詢基本工資在小於1000或大於1500之間的雇員資訊*/

select * from emp where sal < 1000 or sal >1500;

--只判斷乙個條件,效能有一定的提公升

select * from emp where sal not between 100 and 1500;

/*查詢所有在2023年僱傭的雇員

1981-01-01 :'01-1月 -81'

1981-12-31 :'31-12月 -81'

*/select * from emp where hiredate between '01-1月 -81' and '31-12月 -81';

/*空(null)在資料庫中解釋為不確定的內容,在數字列中使用不代表0

--查詢所有領取佣金的雇員資訊

--查詢所有不領取佣金的雇員資訊

*/select * from emp where comm is not null;

select * from emp where comm is null;

/*--查詢雇員編號為7369或7566或7900的雇員資訊

--查詢雇員編號不為7369和7566和7900的雇員資訊

*/select * from emp where empno in (7369,7566,7900);

select * from emp where empno not in (7369,7566,7900);

--null對in操作沒有影響

select * from emp where empno in (7369,7566,7900,null);

--null對not in具有影響,不會查到任何記錄

select * from emp where empno not in (7369,7566,7900,null);

/*模糊查詢萬用字元

「_」:匹配任意字元

「%」:匹配任意多(0~n)個字元

*/--查詢雇員姓名第三個字是「l」的雇員資訊

select * from emp where ename like '__l%';

--查詢雇員姓名中包含是「ll」的雇員資訊

select * from emp where ename like '%l%';

/* 針對於指定的列內容實現排序:order by 《列名稱》[,《列名稱》]... [asc | desc] [<,列名稱》[,《列名稱》]... [asc | desc]]...

asc(預設):按照公升序的方式排序

優先順序:from子句 > where子句 > select子句 > order by子句

*/--查詢先按部門名稱公升序,後按基本工資降序的資料表

select * from emp order by deptno asc,sal desc;

Oracle DML對於索引維護的影響

在oltp高併發 insert環境中,遞增列 時間,使用序列的主鍵列 的索引很容易引起索引熱點塊爭用。遞增列的索引會一直不斷的往索引 最右邊 的葉子塊插入最新資料 因為索引預設公升序排序 在高併發insert的時候,一次只能由乙個session進行insert,其餘session會處於等待狀態,這樣...

oracle DML鎖之二 TM鎖

tm鎖用於確保你修改表內容的時候,表結構不會改變。比如 你更新了乙個表的某一列,會得到這個表的乙個tm鎖 也就是說乙個表可以對應多個tm鎖,其他使用者更新一行也會得到這個表的乙個tm鎖 其他使用者對此表進行drop或者alter操作就會被拒絕。這樣,就防止了其他使用者在你進行更新表內容的時候,對錶進...

oracle dml語句遇到 分號和換行一起的內容

案例 string firstexpr icc swift swift message swift addressee info sendertoreceiverinfo narrative1 chr 10 string secondexpr icc swift swift message swif...