SQL語言基礎(chǔ)課件_第1頁
SQL語言基礎(chǔ)課件_第2頁
SQL語言基礎(chǔ)課件_第3頁
SQL語言基礎(chǔ)課件_第4頁
SQL語言基礎(chǔ)課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論