版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
**
*
SQL語言基礎(chǔ)
本章學(xué)習(xí)目標(biāo)
SQL語言是數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。只有
理解了SQL才能真正理解關(guān)系數(shù)據(jù)庫。本
章將介紹怎樣使用“結(jié)構(gòu)化查詢語言”
(SQL)來操作數(shù)據(jù)庫。
本章內(nèi)容安和
3.5數(shù)據(jù)定義語言(DDL)
3.1SQL筒6
3.1.1發(fā)展歷史
3.1.2SQL的優(yōu)點
3.1.3操作界面
SQL語言是數(shù)據(jù)庫的核心語言。全稱是
“結(jié)構(gòu)化查詢語言(StructuredQuery
Language)”,最早的是IBM的圣藥瑟研究實
驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的
一種查詢語言,它的前身是SQUARE語言。
3.1.2SQL的優(yōu)點
1.好包彩化語言
SQL是一個非過程他的語言,因為它一次處理一個記錄,
對數(shù)據(jù)提供自動導(dǎo)骯。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上
工作,而不對單個記錄進(jìn)行操作,可操作記錄集。所有
SQL話旬接受集合作為輸入,返回集合作為輸出。SQL的
集合特性允許一條SQL話旬的結(jié)果作為另一條SQL語句的
輸入。SQL不要求用戶指定對數(shù)據(jù)的存放方法。這種特性
使用戶更易集中精力于要得到的結(jié)果。
3.1.2SQL的優(yōu)點
2.弦一的語言
SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)
庫管理員、應(yīng)用程序員、決策支持系統(tǒng)大員及許多其它類型的
終端用戶。
SQL為許多任務(wù)提供了話何,包括:
?查詢數(shù)據(jù)
-在表中插入、修改和刪除記錄
?建立、修改和刪除數(shù)據(jù)對象
?控制對數(shù)據(jù)和數(shù)據(jù)對象的存取
?保證數(shù)據(jù)庫一致性和完整性
3.1.2SQL的優(yōu)點
3.是所花關(guān)多.數(shù)提唐的2些語言
由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用
戶可招使用SQL的技能從一個RDBMS轉(zhuǎn)到另一個,所有用
SQL編寫的程序都是可以移植的。
3.1.3操作界面
1.SQL*PLUS界面:
(1)登錄
輸入SQLPLUS,再回車;接著輸入正確的Oracle用戶名
并回車;輸入用戶口令并回車,會顯示提示符:SQL>O
(2)退出
輸入EXIT即可。
2.語句的編輯與運行
語句的編輯與運行可以在語句提示符后輸入SQL語句并
運行。執(zhí)行單條語句,以分號結(jié)束輸入;執(zhí)行程序塊以
斜杠結(jié)束輸入,或者以空行結(jié)束輸入。
也可以利用SQL緩沖區(qū)進(jìn)行PL/SQL塊的編輯和運行,或
利用語句文件進(jìn)行PL/SQL塊的編輯和運行。
3.2SQL基本語法
3.2.1SQL語言的主要功能
3.2.2SQL語言的語法結(jié)構(gòu)
通過SQL語句,程序員或數(shù)據(jù)庫管理員(DBA)可以做如下的
主要工作:
(1)建立數(shù)據(jù)庫的表格,包括設(shè)置表格所可以使用之空間。
(2)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設(shè)置。
(3)針對某個數(shù)據(jù)庫或表格,授予用戶存取權(quán)限。
(4)對數(shù)據(jù)庫表格建立索引值。
(5)修改數(shù)據(jù)庫表格結(jié)構(gòu)(新建、刪除或是修改表格字段)。
(6)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的新建。
(7)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的刪除。
(8)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的修改。
(9)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的查詢。
3.2.2SQL語言的語法結(jié)構(gòu)
SQL語句是針對關(guān)系型數(shù)據(jù)庫所建立出來的語法敘述,所以
SQL在這類數(shù)據(jù)庫中所發(fā)揮的功能非常的強,SQL的語句不多,
而且其語法也相對較簡單。歸納起來,共有六大類:
1.第一類---屬性詞(Predicates)
2.第二類---聲明(Declaration)
3.第三類---條件子句(Clause)
4.第四類---運算符(Operator)與操作數(shù)(Operation)
5.第五類---函數(shù)(Function)
6,第六類---SQL語句(Statement)
3.3數(shù)據(jù)查詢語言(DQL)
3.3.1基本查詢
3.3.2復(fù)合查詢
3.3.3集合函數(shù)
3.3.1基本查詢
1.DQL的基本結(jié)構(gòu)
2.SELECT語句的格式
SELECT[predicate]{*|table.*I[table.]field[,[table.]field2[,...]]}[ASaliasl
[zalias2[,...]]]
FROMtabi一一xpr一ssion
[WHERE...]
[GROUPBY...]
[HAVING...]
[ORDERBY...]
[WITHOWNERACCESSOPTION]
3.SELECT中的條件語句
(1)FROM條件子句
SELECTfi一Idlist
FROMtabi一一xpr一ssion
(2)WHERE條件子句
SELECTfi一Idlist
FROMtabi一一xpr一ssion
WHEREcrit一ria
(3)“*”,DISTINCT屬性詞用法
SELECT[*|DISTINCT]FROMtabi一
(4)ORDERBY條件子句
SELECTfi一工dlistFROMtabi一
WHEREs一1一ctcrit一ria
ORDERBYfield[ASC|DESC][,fi一1d2[ASC|DESC][,...]]
(5)GROUPBY條件子句
SELECTfi一工dlist
FROMtabi一
WHEREcrit一ria
GROUPBYgroupfi一Idlist
(6)HAVING條件子句
SELECTfi一Idlist
FROMtabi一
WHEREs一1一ctcrit一工ia
GROUPBYgroupfMidlist
HAVINGgroupcrit一ria
(7)BETWEEN...AND運算符
一xpr[Not]BETWEENvalu一1ANDvalu一2
(8)LIKE操作數(shù)
一xpr一ssionLIKE"pattern”
一xpr一ssion
4.注意事項
(1)字段名之間可以進(jìn)行算術(shù)運算,例如:
(字段名1*字段名2)/3
(2)查詢語句可以嵌套,例如:
SELECT.......FROM表名1WHERE字段1in
(SELECTFROM表名1,表名2,.......WHERE條件1WHERE條件2);
(3)查詢結(jié)果集的排序操作,默認(rèn)的排序是升序ASC,降序是DESC。
(4)每個表都有一個隱含的字段ROWID,它標(biāo)記著記錄的唯一性。
3.3.2復(fù)合查詢
1.連接查詢
連接可以在SELECT語句的FROM子句或WHERE子句中建立,在FROM
子句中指出連接時有助于將連接操作與WHERE子句中的搜索條件區(qū)分開來。
所以,在Transact-SQL中推薦使用這種方法。
(1)內(nèi)連接
內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運算符比較
被連接列的列值。內(nèi)連接分三種:
①等值連接:在連接條件中使用等于號(=)運算符比較被連接列的列值,其
查詢結(jié)果中列出被連接表中的所有列,包括其中的重復(fù)列。
②不等連接:在連接條件使用除等于運算符以外的其它比較運算符比較被
連接的列的列值。這些運算符包括>、>=、<=、<、!>、!<和<>。
③自然連接:在連接條件中使用等于(=)運算符比較被連接列的列值,但它
使用選擇列表指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)列。
(2)外連接
外連接分為左外連接、右外連接和全外連接三種。與內(nèi)連接不同的
是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接
時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條
件的數(shù)據(jù)行。
在ORACLE中,外連接可以通過在WHERE子句中:(+)的使用來
使用,例如:表A與表B的左連接A.FIELD1(+)=B.FIELD1,右連接
A.FIELD1=B.FIELD1(+)。
(3)交叉連接
交叉連接不帶WHERE子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛
卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的
數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。
2.聯(lián)合查詢
UNION運算符可以將兩個或兩個以上SELECT語句的查詢結(jié)果集合合并
成一個結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。UNION的語法格式為:
s一1一cjstat一m一nt
UNION[ALL]s一1一ctstat一m一nt
[UNION[ALL]s一1一ctstat一m一nt][...n]
333集合函數(shù)
1.統(tǒng)計字段值的數(shù)目
函數(shù)COUNT()用來統(tǒng)計一個表中有多少條記錄。
注意:函數(shù)COUNT。沒有指定任何字段。這個語句計算表
中所有記錄所數(shù)目,包括有空值的記錄。因此,不需要指定
要被計算的特定字段。
2.計算字段的平均值
函數(shù)AVG()可以返回一個字段中所有值的平均值。
注意:函數(shù)AVG()只能對數(shù)值型字段使用。這個函數(shù)在計
算平均值時也忽略空值。
3.計算字段值的和
計算字段值的和使用函數(shù)SUM()。
注意:函數(shù)SUM()的返回值代表字段purchase_amount中所
有值的總和。一
4.返回最大值或最小值
函數(shù)MAX()和函數(shù)MIN()分別用于返回最大值和最小值。
注意:函數(shù)MIN()返回一個字段的所有值中的最小值。如
果字段是空的,函數(shù)MIN()返回空值。
3.4數(shù)據(jù)操縱語言(DML)
3.4.1INSERT語句
3.4.2DELETE語句
3.4.3UPDATE語句
3.4.1INSERT語句
1.INSERT語句格式
INSERT語句用于往數(shù)據(jù)表里插入記錄。
(1)同時插入多條記錄的語句格式為:
INSERTINTO(一t.fi一工dl,targ一t.fi一1d2,……)
SELECT(sourc一.fi一1d1,sou工。一.fi一ld2,......)
FROMtabi一一xpr一ssion
(2)插入單條記錄的語句格式為:
INSERTINTO(targ一t.fi一Idl,targ一t.fi一ld2,...)
VALUES(valu一1,valu一2,...)
2.注意事項
(1)字符串類型的字段值必須用單引號括起來,例如:,GOODDAY,。
(2)如果字段值里包含單引號需要進(jìn)行字符串轉(zhuǎn)換,把它替換成兩個
單引號
(3)字符串類型的字段值超過定義的長度會出錯,最好在插入前進(jìn)行
長度校驗。
(4)日期字段的字段值可以用當(dāng)前數(shù)據(jù)庫的系統(tǒng)時間SYSDATE,精確
到秒。
(5)INSERT時如果要用到從1開始自動增長的序列號,應(yīng)該先建立一
個序列號。
3.4.2DELETE語句
1.DELETE語句格式
DELETE語句刪除數(shù)據(jù)表里的記錄。用DELETE語句刪除的記錄,無法
再復(fù)原,所以條件設(shè)置一定要正確。DELETE語句格式為:
DELETE[tabla.*]
FROMtabi一一xpr一ssion
WHEREcriteria
2.注意事項
(1)刪除記錄并不能釋放Oracle里被占用的數(shù)據(jù)塊表空間。它只把那些
被刪除的數(shù)據(jù)塊標(biāo)成unused。
(2)如果確實要刪除一個大表里的全部記錄,可以用TRUNCATE語句,
它可以釋放占用的數(shù)據(jù)塊表空間,其語句格式為:
TRUNCATETABLE表名;
(3)此操作不可回退。
343UPDATE語句
UPDATE語句通過條件的限制來修改特定的數(shù)據(jù)。
UPDATE語句格式為:
UPDATEtabi一
SETn一wvalu一
WHEREcrit一ria;
DML語句對表都加上了行級鎖,確認(rèn)完成后,
必須加上事物處理結(jié)束的語句COMM工T才能正式生效,
否則改變不一定寫入數(shù)據(jù)庫里。如果想撤回這些操
作,可以用語句ROLLBACK復(fù)原。
3.5數(shù)據(jù)定義語言(DDL)
3.5.1CREATE語句
3.5.2ALTER語句
3.5.3DROP語句
3.5.4TRUNCATE語句
3.5.1CREATE語句
1.表的建立
表是存儲用戶數(shù)據(jù)的基本結(jié)構(gòu)。
建立表主要指定義下列信息:
?列定義
?完整性約束
?表所在表空間
?存儲特性
?可選擇的聚集
(1)建立一個新表的語句格式
可以利用CREATETABLE語句,來建立一個全新的表,但前提是:數(shù)據(jù)庫必
須已經(jīng)存在。語句格式為:
CREATETABLEtabi一(fi一工dltyp一[(siz一)][ind一xl],field2
typ一[(siz一)][ind一x2],nultifi一Idind一x[,...])
(2)注意事項
①創(chuàng)建表時要把較小的不為空的字段放在前面,可能為空的字段放在后面。
②創(chuàng)建表時可以用中文的字段名,但最好還是用英文的字段名。
③創(chuàng)建表時可以給字段加上默認(rèn)值,例如DEFAULTSYSDATEo這樣每次插
入和修改時,不用程序操作這個字段都能得到動作的時間。
④創(chuàng)建表時可以給字段加上約束條件。例如不允許重復(fù)UNIQUE,關(guān)鍵字
PRIMARYKEYo
2.表索引的建立
索引是一種數(shù)據(jù)庫對象。對于在表或聚集的索引列上的每一值將包
含一項,為行提供直接的快速存取。在下列情況下,Oracle可利用索引
改進(jìn)性能:
[按指定的索引列的值查找行。
?按索引列的順序存取表。
表索引的建立主要采用的是CREATEINDEX語句。這個命令是對一個已存
在的表建立索引,語句格式為:
CREATE[UNIQUE]INDEXindexONtabi一(fi一Idl[ASC|DESC],
fi一ld2[ASC|DESC],...)
[WITH{PRIMARY|DISALLOWNULL|IGNORENULL}]
CONSTRAINT條件子句的功能也是類似索引(INDEX)的,雖然CONSTRAINT
也可以建立表之間的關(guān)聯(lián)性。如:
(1)單一字段索引語句格式:
CONSTRAINTnam一{PR工MARYKEY|UNIQUE|REFERENCES
for一igntabla[(for一ignfi一IdLfor一ignfi一ld2)]}
(2)多字段索引語句格式:
CONSTRAINTname
{PRIMARYKEY(primaryl[,primary2[,...]])
IUNIQUE(uniqu一1[,uniqu一2[,...]])
|FOREIGNKEY(r一fl[,r一f2[,...]])
|REFERENCESfor一igntabla[(for一ignfi一Idl[,
for一ignfi一ld2[,...]])]}
3.視圖的建立
視圖是一個邏輯表,它允許操作者從其它表或視圖存取數(shù)據(jù),視圖本身
不包含數(shù)據(jù)。視圖所基于的表稱為基表。
引入視圖有下列作用:
L提供附加的表安全級,限制存取基表的行或/和列集合。
L隱藏數(shù)據(jù)復(fù)雜性。
L為數(shù)據(jù)提供另一種觀點。
?促使Oracle的某些操作在包含視圖的數(shù)據(jù)庫上執(zhí)行,而不在另一個數(shù)
據(jù)庫上執(zhí)行。
建立視圖的語句格式為:
CREATEVIEWvi一wASSELECT
tabi一1.fi一Idl,…,tabi一2.fi一Idl...
FROMtabi一1,tabi一2....;
4.同義詞的建立
同義詞為表、視圖、序列、存儲函數(shù)、包、快照或其它同義詞的另
一個名字。使用同義詞為了安全和方便。對某一對象建立同義詞可有下
列好處:
[引用對象不需指出對象的持有者。
*引用對象不需指出它所位于的數(shù)據(jù)庫。
i為對象提供另一個名字。
建立同義詞使用的語句格式為:
CREATESYNONYMsymnon_nam一FOR[us一rnam一.]tabi一nam一;
5.用戶的建立
建立用戶使用的語句格式為:
CREATEUSERus一rnam一IDENTIFIEDBYpassword;
3.5.2ALTER語句
1.ALTER語句格式
用ALTER語句,可以修改表、索引,或?qū)σ晥D的字段重新設(shè)計。語句格
式為:
ALTERTABLEtabi一
{ADD{COLUMNfi一Idtyp一[(siz一)][CONSTRAINTind一x]
|CONSTRAINTmultifi一dind一x}
|DROP{COLUMNfi一Id|CONSTRAINTind一xnam一}}
2.ALTER語句的具體用法
(1)改變表的名稱,語句格式為:
ALTERTABLEtabi一1TOt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語義相似度度量模型-洞察分析
- 虛擬現(xiàn)實手術(shù)模擬-第2篇-洞察分析
- 隱私保護(hù)增強學(xué)習(xí)-洞察分析
- 虛擬環(huán)境下的保險理賠調(diào)查-洞察分析
- 遺址周邊環(huán)境考古-洞察分析
- 2024年05月廣東廣發(fā)銀行研發(fā)中心春季校園招考(第二批)筆試歷年參考題庫附帶答案詳解
- 三位數(shù)的讀寫課件
- 內(nèi)部合作協(xié)議書(2篇)
- 2024年05月廣東2024屆中國民生銀行廣州分行畢業(yè)生“未來銀行家”暑期管培生校園招考筆試歷年參考題庫附帶答案詳解
- 2024年05月安徽中國工商銀行安徽省分行星令營暑期實習(xí)項目筆試歷年參考題庫附帶答案詳解
- 承壓設(shè)備事故及處理課件
- 煤層氣現(xiàn)場監(jiān)督工作要點
- 工會經(jīng)費收支預(yù)算表
- 舒爾特方格55格200張?zhí)岣邔W⒘4紙直接打印版
- 質(zhì)量管理體系各條款的審核重點
- 聚丙烯化學(xué)品安全技術(shù)說明書(MSDS)
- BBC美麗中國英文字幕
- 衛(wèi)生院工程施工組織設(shè)計方案
- CDR-臨床癡呆評定量表
- 《八年級下學(xué)期語文教學(xué)個人工作總結(jié)》
- 鋁合金門窗制作工藝卡片 - 修改
評論
0/150
提交評論