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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

**

*

SQL語言基礎

本章學習目標

SQL語言是數(shù)據(jù)庫的標準語言。只有

理解了SQL才能真正理解關系數(shù)據(jù)庫。本

章將介紹怎樣使用“結構化查詢語言”

(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ù)庫的核心語言。全稱是

“結構化查詢語言(StructuredQuery

Language)”,最早的是IBM的圣藥瑟研究實

驗室為其關系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的

一種查詢語言,它的前身是SQUARE語言。

3.1.2SQL的優(yōu)點

1.好包彩化語言

SQL是一個非過程他的語言,因為它一次處理一個記錄,

對數(shù)據(jù)提供自動導骯。SQL允許用戶在高層的數(shù)據(jù)結構上

工作,而不對單個記錄進行操作,可操作記錄集。所有

SQL話旬接受集合作為輸入,返回集合作為輸出。SQL的

集合特性允許一條SQL話旬的結果作為另一條SQL語句的

輸入。SQL不要求用戶指定對數(shù)據(jù)的存放方法。這種特性

使用戶更易集中精力于要得到的結果。

3.1.2SQL的優(yōu)點

2.弦一的語言

SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)

庫管理員、應用程序員、決策支持系統(tǒng)大員及許多其它類型的

終端用戶。

SQL為許多任務提供了話何,包括:

?查詢數(shù)據(jù)

-在表中插入、修改和刪除記錄

?建立、修改和刪除數(shù)據(jù)對象

?控制對數(shù)據(jù)和數(shù)據(jù)對象的存取

?保證數(shù)據(jù)庫一致性和完整性

3.1.2SQL的優(yōu)點

3.是所花關多.數(shù)提唐的2些語言

由于所有主要的關系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用

戶可招使用SQL的技能從一個RDBMS轉到另一個,所有用

SQL編寫的程序都是可以移植的。

3.1.3操作界面

1.SQL*PLUS界面:

(1)登錄

輸入SQLPLUS,再回車;接著輸入正確的Oracle用戶名

并回車;輸入用戶口令并回車,會顯示提示符:SQL>O

(2)退出

輸入EXIT即可。

2.語句的編輯與運行

語句的編輯與運行可以在語句提示符后輸入SQL語句并

運行。執(zhí)行單條語句,以分號結束輸入;執(zhí)行程序塊以

斜杠結束輸入,或者以空行結束輸入。

也可以利用SQL緩沖區(qū)進行PL/SQL塊的編輯和運行,或

利用語句文件進行PL/SQL塊的編輯和運行。

3.2SQL基本語法

3.2.1SQL語言的主要功能

3.2.2SQL語言的語法結構

通過SQL語句,程序員或數(shù)據(jù)庫管理員(DBA)可以做如下的

主要工作:

(1)建立數(shù)據(jù)庫的表格,包括設置表格所可以使用之空間。

(2)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設置。

(3)針對某個數(shù)據(jù)庫或表格,授予用戶存取權限。

(4)對數(shù)據(jù)庫表格建立索引值。

(5)修改數(shù)據(jù)庫表格結構(新建、刪除或是修改表格字段)。

(6)對數(shù)據(jù)庫進行數(shù)據(jù)的新建。

(7)對數(shù)據(jù)庫進行數(shù)據(jù)的刪除。

(8)對數(shù)據(jù)庫進行數(shù)據(jù)的修改。

(9)對數(shù)據(jù)庫進行數(shù)據(jù)的查詢。

3.2.2SQL語言的語法結構

SQL語句是針對關系型數(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復合查詢

3.3.3集合函數(shù)

3.3.1基本查詢

1.DQL的基本結構

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)字段名之間可以進行算術運算,例如:

(字段名1*字段名2)/3

(2)查詢語句可以嵌套,例如:

SELECT.......FROM表名1WHERE字段1in

(SELECTFROM表名1,表名2,.......WHERE條件1WHERE條件2);

(3)查詢結果集的排序操作,默認的排序是升序ASC,降序是DESC。

(4)每個表都有一個隱含的字段ROWID,它標記著記錄的唯一性。

3.3.2復合查詢

1.連接查詢

連接可以在SELECT語句的FROM子句或WHERE子句中建立,在FROM

子句中指出連接時有助于將連接操作與WHERE子句中的搜索條件區(qū)分開來。

所以,在Transact-SQL中推薦使用這種方法。

(1)內(nèi)連接

內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運算符比較

被連接列的列值。內(nèi)連接分三種:

①等值連接:在連接條件中使用等于號(=)運算符比較被連接列的列值,其

查詢結果中列出被連接表中的所有列,包括其中的重復列。

②不等連接:在連接條件使用除等于運算符以外的其它比較運算符比較被

連接的列的列值。這些運算符包括>、>=、<=、<、?。?、?。己停迹?。

③自然連接:在連接條件中使用等于(=)運算符比較被連接列的列值,但它

使用選擇列表指出查詢結果集合中所包括的列,并刪除連接表中的重復列。

(2)外連接

外連接分為左外連接、右外連接和全外連接三種。與內(nèi)連接不同的

是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接

時)、右表(右外連接時)或兩個表(全外連接時)中所有符合搜索條

件的數(shù)據(jù)行。

在ORACLE中,外連接可以通過在WHERE子句中:(+)的使用來

使用,例如:表A與表B的左連接A.FIELD1(+)=B.FIELD1,右連接

A.FIELD1=B.FIELD1(+)。

(3)交叉連接

交叉連接不帶WHERE子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛

卡爾積,返回到結果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的

數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。

2.聯(lián)合查詢

UNION運算符可以將兩個或兩個以上SELECT語句的查詢結果集合合并

成一個結果集合顯示,即執(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)如果字段值里包含單引號需要進行字符串轉換,把它替換成兩個

單引號

(3)字符串類型的字段值超過定義的長度會出錯,最好在插入前進行

長度校驗。

(4)日期字段的字段值可以用當前數(shù)據(jù)庫的系統(tǒng)時間SYSDATE,精確

到秒。

(5)INSERT時如果要用到從1開始自動增長的序列號,應該先建立一

個序列號。

3.4.2DELETE語句

1.DELETE語句格式

DELETE語句刪除數(shù)據(jù)表里的記錄。用DELETE語句刪除的記錄,無法

再復原,所以條件設置一定要正確。DELETE語句格式為:

DELETE[tabla.*]

FROMtabi一一xpr一ssion

WHEREcriteria

2.注意事項

(1)刪除記錄并不能釋放Oracle里被占用的數(shù)據(jù)塊表空間。它只把那些

被刪除的數(shù)據(jù)塊標成unused。

(2)如果確實要刪除一個大表里的全部記錄,可以用TRUNCATE語句,

它可以釋放占用的數(shù)據(jù)塊表空間,其語句格式為:

TRUNCATETABLE表名;

(3)此操作不可回退。

343UPDATE語句

UPDATE語句通過條件的限制來修改特定的數(shù)據(jù)。

UPDATE語句格式為:

UPDATEtabi一

SETn一wvalu一

WHEREcrit一ria;

DML語句對表都加上了行級鎖,確認完成后,

必須加上事物處理結束的語句COMM工T才能正式生效,

否則改變不一定寫入數(shù)據(jù)庫里。如果想撤回這些操

作,可以用語句ROLLBACK復原。

3.5數(shù)據(jù)定義語言(DDL)

3.5.1CREATE語句

3.5.2ALTER語句

3.5.3DROP語句

3.5.4TRUNCATE語句

3.5.1CREATE語句

1.表的建立

表是存儲用戶數(shù)據(jù)的基本結構。

建立表主要指定義下列信息:

?列定義

?完整性約束

?表所在表空間

?存儲特性

?可選擇的聚集

(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)建表時可以給字段加上默認值,例如DEFAULTSYSDATEo這樣每次插

入和修改時,不用程序操作這個字段都能得到動作的時間。

④創(chuàng)建表時可以給字段加上約束條件。例如不允許重復UNIQUE,關鍵字

PRIMARYKEYo

2.表索引的建立

索引是一種數(shù)據(jù)庫對象。對于在表或聚集的索引列上的每一值將包

含一項,為行提供直接的快速存取。在下列情況下,Oracle可利用索引

改進性能:

[按指定的索引列的值查找行。

?按索引列的順序存取表。

表索引的建立主要采用的是CREATEINDEX語句。這個命令是對一個已存

在的表建立索引,語句格式為:

CREATE[UNIQUE]INDEXindexONtabi一(fi一Idl[ASC|DESC],

fi一ld2[ASC|DESC],...)

[WITH{PRIMARY|DISALLOWNULL|IGNORENULL}]

CONSTRAINT條件子句的功能也是類似索引(INDEX)的,雖然CONSTRAINT

也可以建立表之間的關聯(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ù)復雜性。

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語句,可以修改表、索引,或對視圖的字段重新設計。語句格

式為:

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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論