1.資料庫的定義
按照資料結構來組織,儲存和管理資料的倉庫
2. dml 資料管理語言
dml分為dql和dml.dql為資料庫查詢語言.
3.查詢表結構
desc 表名;(在命令視窗)
(1)注釋 –
--注釋
(2)查詢語句
select 欄位名 from 表名;
select 欄位名1
,欄位名2...
from 表名;
select
*from 表名;
(模糊匹配)
select
*from emp;
(3)豐富功能
1.distinct 關鍵字,表示去重
select
distinct 欄位名 from 表名;
(對欄位名去重)
;注意:必須是select後面字段結果集多條資料都相同的才可以去重;
2.偽列
偽列不是表中真實存在的列
select3*
3from emp;
3.字串,原樣輸出和起別名
在sql中字串的表示為』』,且" "表示原位輸出,同時起別名為在相應字段後面空一格加別名.
select ename "姓名"
from emp;
--給ename 起別名叫做姓名
4.||表示字串的拼接
select
'zis'
||ename from emp;
5.關於null值的處理
(1)null和數字運算還是null,null值和字串運算還是原串.
***因此對於null值參與運算主要使用函式nvl(引數1,引數2)***表示如果引數1值不為null,為引數1,是null為引數2.
select ename,sal,comm,sal+nvl(comm,0)
from emp;
6.dual 虛表 (供測試用的)
select sysdate from dual;
(4)條件查詢
select 字段 from 表名 where 條件;
其中判斷條件的符號有如下三類
第一類:,=,!=,<>,<=,>=,between and
第二類:and,or,not
第三類:關於null的判斷,is null 或者 is not null
select
*from emp where deptno=20;
select
*from emp where
not deotno=
20;
(1) all()函式和some(),any()函式
all()函式表示都高的
select
*from emp where sal>
all(
900,
1000
,1100);
工資比900
,1000
,1100都大的.
some(),any()函式,比任何乙個都高的
select
*from emp where sal>
some
(900
,1000
,1100);
工資比900
,1000
,1100任何乙個大的就可以.
(2)集合函式
union
union all
intersect
minus
區別如下:
(3)模糊匹配like
用%來代表任意個字元,用_來代表乙個字元.
用escape(『字元』)來定義轉義字元
select
*from emp where ename =
'%a%%'
escape
('a');
代表名字中含有%號的名字,a代表轉義字元.將百分號轉義了.
(4)sql中函式
1.單行函式
一條記錄返回乙個結果.
sysdate:返回當前時間
select sysdate from dual;
--返回當前時間
add_months(月份數,日期物件),可以進行月份相加
select hiredate,add_months(hiredate,3)
from emp;
-對入職月份加三
months_between(日期1,日期2),返回日期1和日期2的月份
select hiredate months_between(sysdate,hiredate)
from emp;
last_day(),當前月最後一天
select last_day(sysdate)
from dual;
next_day(sysdate,『星期三』),以目前時間為基準,下個星期三是幾號?
select next_day(sysdate,
'星期三'
)from dual;
to_date(資料,格式),字串的格式轉為日期格式select to_date(『2019-9-5 16:19:25』,『yyyy-mm-dd hh24:mi:ss』) from dual
to_char(資料,格式),日期轉為字串
select
decode(字段(判定),值1,結果1,值2,結果2…,預設結果)
select deptno ,dname,loc,decode(deptno,10,
'十',20,
'二十'
,'四十'
) 中文部門 from dept;
--對於部門編號是10的預設為十,部門編號是20的預設是二十,其他預設為四十
in(值1,值2,值3…)對括號中多個值進行等值匹配時候,使用.
select ename from emp where sal in
(1000
,2000
,1500
);查詢工資為1000
/1500
/2000的員工姓名
**子查詢(乙個sql中巢狀另乙個sql)**這裡介紹exists(結果集)用法:select 資料 from 資料來源 where exists(結果集)
從from中拿出一條資料去where中進行判斷,如果 exists中有資料,當前這一條保留,如果沒有值,當前這條資料不保留.
select
*from emp e where
exists
(select deptno from dept d whrew dname in
('sa'
,'acc'
)and e.deptno=d.deptno)
;
2.多行函式/聚合函式 Oracle子查詢的用法
在執行資料庫操作 包括查詢 新增 修改 刪除等操作 的過程中,如果某個操作需要依賴另乙個select語句的查詢結果,那麼就可以把select語句嵌入到該操作語句中,這樣就形成了乙個子查詢。實際上,在關係型資料庫中,各表之間的資料關係非常密切,它們相互關聯,相互依存,這樣就可以根據資料之間的關係使用相...
ORACLE子查詢的多種用法
一 用於查詢 第乙個是最普通的子查詢,子查詢 內查詢 在主查詢之前一次執行完成。子查詢的結果被主查詢 外查詢 使用。子查詢一般是返回單行,要是返回多行,就要用到使用多行比較操作符 in,all,any 二 使用子查詢建立表 這就是把子查詢查詢出來的資料,建立成乙個表,表中的列的資料型別 約束和原來的...
Oracle分頁查詢及ROWMUN的用法
oracle的rownum是一種偽列,它會根據返回記錄生成乙個序列化的數字。rownum經常與 和 搭配使用,和!雖然也能和rownum一起檢視,但是在某些條件下會失效。其他如 between.and 也能編譯成功,但是不會返回任何查詢結果。rownum常用來獲取查詢的部分結果,如獲取前10條記錄或...