sql語句複習(一)

2021-08-16 20:16:42 字數 1813 閱讀 5954

在oracle中預設大寫,如果不加雙引號的話,emp會被轉換成大寫,進行查詢

select * from 「emp」

numberic(5,2)5位有效數字,2為小數部分

oracle中的不等於號

<> != ^= ~=

escape 『escape_character』 關鍵字,允許在字串中搜尋萬用字元,而不將其作為萬用字元

escape_character 是放在萬用字元前表示此特殊用途的字元。

select * from a where name like 『%/%ab』 escape 『/』

例如 substr(str,start,length)

字串擷取函式,從0與從1擷取的效果是一樣的,可以理解為全閉區間的集合,從1開始索引

substr函式中start規定起點,length規定擷取長度

例如:substr(str,1,2)擷取前兩個字元,

substr(str,-3,3)字串末尾的三個字元

instr:是否包含某個字元,從第乙個位置開始,第幾次出現的位置

對數字的處理:

四捨五入:round

截斷小數字:trunc

取餘:mod

ceil:求大於等於某數的最小整數

floor:求小於等於某數的最大整數

sql中日期

am pm

y,yy,yyy,yyyy

mm,mon,month

dd d,dy,day

hh,hh12,hh24

mi ss

mi代表分鐘,hh24表示24計時

將數字轉字串

to_date,to_number

處理null值

使用nvl函式

decode函式,相當if。。。else if。。。

兩個表之間做鏈結

右連線

select e.empno,ename,ename123 from emp e right join emp1 on(e.empno=emp1.empno)

select e.empno,ename,ename123 from emp e,emp1 where e.empno(+)=emp1.empno

同理可推出左鏈結

集合操作:

1. 並集 union vs. union all

union:沒有重覆記錄

union all:包含重覆記錄,但效率高

交集 intersect

返回兩個結果集的交集

差集 minus

返回連個結果集的差集

case語句

3.以首字母大寫的方式顯示所有員工的姓名.

select substr(upper(ename),1,1)||substr(ename,2,length(ename)-1) from emp;

顯示所有員工的姓名,用a替換所有」a」.

4.顯示正好為5個字元的員工的姓名.

19、找出早於12年前受僱的員工

select * from emp where months_between(sysdate,hiredate)/12 >12;

26、以年月日的方式顯示所有員工的服務年限(大截)(乙個月30天)

select hiredate,trunc((sysdate-hiredate)/365) 年,

trunc(mod((sysdate-hiredate),365)/30) 月,

trunc( mod (mod((sysdate-hiredate),365),30) ) 日

from emp;

SQL 語句之Join複習

left join 左聯接 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join 右聯接 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner join 等值連線 只返回兩個表中聯結字段相等的行 a表 id姓名1張三 2李四3王五 b表 id成績190 270480 s...

oracle的複雜sql語句複習

oracle的sql語句 加了order by 後的distinct語句,需限制a.realvalue,a.synctime,因為這兩個值有多值 select distinct a.id,a.title as title,b.allpic as allpic,min a.realvalue min ...

sql語句儲存過程簡單複習

sql查詢分析器裡建立乙個帶有輸出的儲存過程 if exists select from sysobjects where name sel and xtype p drop proc sel gocreate proc sel cou int output asbegin select cou c...