一、SQL語言簡介
結(jié)構(gòu)化查詢語言(SQL)是一個(gè)非過程化的語言,它一次處理一個(gè)記錄,對數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。
二、SQL語言構(gòu)成
1.數(shù)據(jù)定義語言(DDL)
用于在數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)庫,表,視圖,索引等數(shù)據(jù)庫對象進(jìn)行創(chuàng)建和管理。
create,alter,truncate,drop
2.數(shù)據(jù)操作語言(DML)
用于插入,修改,刪除和查詢數(shù)據(jù)庫中的數(shù)據(jù)
select,insert,update,delete
3.事務(wù)控制語言(TCL)
事務(wù)是最小的工作單元,作為一個(gè)整體進(jìn)行工作
保證事務(wù)的整體成功或失敗,稱為事務(wù)控制
commit,savepoint,rollback
該組DML的操作要么全確認(rèn),要么全取消。比如銀行轉(zhuǎn)賬業(yè)務(wù) 步驟一:從A賬戶減少300元,步驟二:向B賬戶增加300元。為了確保總的金額不變,就要維持?jǐn)?shù)據(jù)的一致性,步驟一和步驟二兩個(gè)操作或者全確認(rèn)或者全取消。
4.數(shù)據(jù)控制語言(DCL)
用于對基本表和視圖的授權(quán),完整性規(guī)則的描述,事務(wù)控制等內(nèi)容
grant,revoke
三、SQL操作符
1.算術(shù)操作符
+、-、*、/
2.比較操作符
=、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL等
between...and語句
select * from iweb_tbl_user where age <=23 and age >= 21;相當(dāng)于
select * from iweb_tbl_user where age between 21 and 23;
in語句
select * from iweb_tbl_book
where price = 33 or price = 48 or price = 37;相當(dāng)于
select * from iweb_tbl_book
where price in(33,37,48);
like語句
select * from iweb_tbl_user
where name like '張%';--姓張的同學(xué)
select * from iweb_tbl_user
where tel like '%0';--手機(jī)尾號為0的同學(xué)
select distinct book_id,isbn,title,publisher,
borrowdate,returndate from v_record
where isbn like '97878%';--借閱書籍isbn為97878開頭的書籍信息
3.邏輯操作符
與(AND)、或(OR)和非(NOT)
4.集合操作符
union(并集)連接兩句sql語句, 兩句sql語句的和 去掉重復(fù)的記錄。
union all (并集)接接兩句sql語句,兩句sql語句的和不用去掉重復(fù)的記錄。
intersect (交集)連接兩句sql語句 取查詢出來的兩個(gè)集合的共同部分
minus (補(bǔ)集)連接兩句sql 語句,取查詢出來的兩個(gè)集合的差。
5.連接操作符
(||) 用來連接連個(gè)字段,或者將多個(gè)字符串連接起來。
select distinct age || sex from iweb_tbl_user;
select * from
iweb_tbl_record r right join iweb_tbl_user u
on r.user_id = u.id;--右連接,以右邊表為主表顯示
select * from
iweb_tbl_record r left join iweb_tbl_user u
on r.user_id = u.id;--左連接,以左邊表為主表顯示
優(yōu)先級比較
算術(shù)操作符 --------最高優(yōu)先級
連接操作符
比較操作符
NOT 邏輯操作符
AND 邏輯操作符
OR 邏輯操作符 --------最低優(yōu)先級