SQL語言基礎(chǔ)V主題知識講座_第1頁
SQL語言基礎(chǔ)V主題知識講座_第2頁
SQL語言基礎(chǔ)V主題知識講座_第3頁
SQL語言基礎(chǔ)V主題知識講座_第4頁
SQL語言基礎(chǔ)V主題知識講座_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章SQL語言基礎(chǔ)Oracle數(shù)據(jù)庫管理及商務(wù)智能SQL語言基礎(chǔ)V主題知識講座第1頁SQL語言是數(shù)據(jù)庫標準語言。只有了解了SQL才能真正了解關(guān)系數(shù)據(jù)庫。本章將介紹怎樣使用“結(jié)構(gòu)化查詢語言”(SQL)來操作數(shù)據(jù)庫。學(xué)習(xí)目標SQL語言基礎(chǔ)V主題知識講座第2頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第3頁

SQL語言是數(shù)據(jù)庫關(guān)鍵語言。全稱是“結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)”,最早是IBM圣約瑟研究試驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)一個查詢語言,它前身是SQUARE語言。

發(fā)展歷史SQL語言基礎(chǔ)V主題知識講座第4頁1.非過程化語言

SQL是一個非過程化語言,因為它一次處理一個統(tǒng)計,對數(shù)據(jù)提供自動導(dǎo)航。SQL允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個統(tǒng)計進行操作,可操作統(tǒng)計集。全部SQL語句接收集合作為輸入,返回集合作為輸出。SQL集合特征允許一條SQL語句結(jié)果作為另一條SQL語句輸入。SQL不要求用戶指定對數(shù)據(jù)存放方法。這種特征使用戶更易集中精力于要得到結(jié)果。SQL優(yōu)點SQL語言基礎(chǔ)V主題知識講座第5頁2.統(tǒng)一語言

SQL可用于全部用戶DB活動模型,包含系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序員、決議支持系統(tǒng)人員及許多其它類型終端用戶。

SQL為許多任務(wù)提供了語句,包含:查詢數(shù)據(jù)在表中插入、修改和刪除統(tǒng)計建立、修改和刪除數(shù)據(jù)對象控制對數(shù)據(jù)和數(shù)據(jù)對象存取確保數(shù)據(jù)庫一致性和完整性SQL優(yōu)點SQL語言基礎(chǔ)V主題知識講座第6頁3.是所相關(guān)系數(shù)據(jù)庫公共語言因為全部主要關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL技能從一個RDBMS轉(zhuǎn)到另一個,全部用SQL編寫程序都是能夠移植。SQL優(yōu)點SQL語言基礎(chǔ)V主題知識講座第7頁(1)登錄輸入SQLPLUS,再回車;接著輸入正確Oracle用戶名并回車;輸入用戶口令并回車,會顯示提醒符:SQL>。(2)退出輸入EXIT即可。(3)語句編輯與運行語句編輯與運行能夠在語句提醒符后輸入SQL語句并運行。執(zhí)行單條語句,以分號結(jié)束輸入;執(zhí)行程序塊以斜杠結(jié)束輸入,或者以空行結(jié)束輸入。也能夠利用SQL緩沖區(qū)進行PL/SQL塊編輯和運行,或利用語句文件進行PL/SQL塊編輯和運行。SQLPlusSQL語言基礎(chǔ)V主題知識講座第8頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第9頁經(jīng)過SQL語句,能夠做以下主要工作:(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ù)庫進行數(shù)據(jù)新建。(7)對數(shù)據(jù)庫進行數(shù)據(jù)刪除。(8)對數(shù)據(jù)庫進行數(shù)據(jù)修改。(9)對數(shù)據(jù)庫進行數(shù)據(jù)查詢。SQL語言基礎(chǔ)V主題知識講座第10頁SQL語句是針對關(guān)系型數(shù)據(jù)庫所建立出來語法敘述,所以SQL在這類數(shù)據(jù)庫中所發(fā)揮功效非常強,SQL語句不多,而且其語法也相對較簡單。歸納起來,共有六大類:第一類——屬性詞(Predicates)第二類——申明(Declaration)第三類——條件子句(Clause)第四類——運算符(Operator)第五類——函數(shù)(Function)第六類——SQL語句(Statement)SQL語言語法結(jié)構(gòu)SQL語言基礎(chǔ)V主題知識講座第11頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第12頁1.DQL基本結(jié)構(gòu)2.SELECT語句格式SELECT[distinct字段列表][table.字段名][字段名as別名][*][集合函數(shù)(字段名)]FROM表名1[,...][WHERE...][GROUPBY...][HAVING...][ORDERBY...]基本結(jié)構(gòu)SQL語言基礎(chǔ)V主題知識講座第13頁3.SELECT中條件語句(1)FROM條件子句SELECTfieldlist(能夠使用算術(shù)運算符(+-*/))FROMtableexpression

(2)WHERE條件子句SELECTfieldlistFROMtableexpressionWHEREcriteria(后副:where子句中運算符)(3)“*”,DISTINCT屬性詞使用方法

SELECT[*|DISTINCT]FROMtable

SQL語言基礎(chǔ)V主題知識講座第14頁(4)ORDERBY條件子句

SELECTfieldlistFROMtableWHEREselectcriteriaORDERBYfield[ASC|DESC][,field2[ASC|DESC][,...]](5)GROUPBY條件子句SELECTfieldlistFROMtableWHEREcriteriaGROUPBYgroupfieldlist(6)HAVING條件子句SELECTfieldlistFROMtableWHEREselectcriteriaGROUPBYgroupfieldlistHAVINGgroupcriteria

SQL語言基礎(chǔ)V主題知識講座第15頁

where子句中運算符:(1)比較運算符:><<=>==<>

(2)范圍運算符:[NOT]Between…….and

(3)列表運算符:[NOT]IN(expressionlistvalue)

(4)模式匹配運算符:_%(5)NULL運算符:is[not]null

(6)邏輯運算符:andornot(not要與其它兩個共同使用)

比如:

WHERE(type='business'ORtype='psychology')ANDNOTadvance>5500SQL語言基礎(chǔ)V主題知識講座第16頁

4.注意事項(1)字段名之間能夠進行算術(shù)運算,比如:(字段名1*字段名2)/3(2)查詢語句能夠嵌套,比如:SELECT……FROM表名1WHERE字段1in(SELECT……FROM表名1,表名2,……WHERE條件1WHERE條件2);(3)查詢結(jié)果集排序操作,默認排序是升序ASC,降序是DESC。(4)每個表都有一個隱含字段ROWID,它標識著統(tǒng)計唯一性。SQL語言基礎(chǔ)V主題知識講座第17頁1.連接查詢

連接能夠在SELECT語句FROM子句或WHERE子句中建立,在FROM子句中指出連接時有利于將連接操作與WHERE子句中搜索條件區(qū)分開來。這么就能夠?qū)⒍鄠€表中數(shù)據(jù)進行有條件查詢:

select*fromtablename1,tablename2,…whereexpre復(fù)合查詢SQL語言基礎(chǔ)V主題知識講座第18頁2.聯(lián)合查詢

UNION運算符能夠?qū)蓚€或兩個以上SELECT語句查詢結(jié)果集合合并成一個結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。UNION語法格式為:select_statementUNION[ALL]selectstatement[UNION[ALL]selectstatement][…n]SQL語言基礎(chǔ)V主題知識講座第19頁1.統(tǒng)計字段值數(shù)目函數(shù)COUNT()用來統(tǒng)計一個表中有多少條統(tǒng)計。注意:函數(shù)COUNT()沒有指定任何字段。這個語句計算表中全部統(tǒng)計所數(shù)目,包含有空值統(tǒng)計。所以,不需要指定要被計算特定字段。2.計算字段平均值函數(shù)AVG()能夠返回一個字段中全部值平均值。注意:函數(shù)AVG()只能對數(shù)值型字段使用。這個函數(shù)在計算平均值時也忽略空值。集合函數(shù)SQL語言基礎(chǔ)V主題知識講座第20頁3.計算字段值和計算字段值和使用函數(shù)SUM()。注意:函數(shù)SUM()返回值代表字段purchase_amount中全部值總和。4.返回最大值或最小值函數(shù)MAX()和函數(shù)MIN()分別用于返回最大值和最小值。注意:函數(shù)MIN()返回一個字段全部值中最小值。假如字段是空,函數(shù)MIN()返回空值。SQL語言基礎(chǔ)V主題知識講座第21頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第22頁1.INSERT語句格式INSERT語句用于往數(shù)據(jù)表里插入統(tǒng)計。(1)同時插入多條統(tǒng)計語句格式為:INSERTINTO(target.field1,target.field2,……)SELECT(source.field1,source.field2,……)FROMtableexpression(2)插入單條統(tǒng)計語句格式為:INSERTINTO(target.field1,target.field2,...)VALUES(value1,value2,...)Insert語句SQL語言基礎(chǔ)V主題知識講座第23頁2.注意事項(1)字符串類型字段值必須用單引號括起來,比如:’GOODDAY’。(2)假如字段值里包含單引號需要進行字符串轉(zhuǎn)換,把它替換成兩個單引號‘‘。(3)字符串類型字段值超出定義長度會犯錯,最好在插入前進行長度校驗。(4)日期字段字段值能夠用當前數(shù)據(jù)庫系統(tǒng)時間SYSDATE,準確到秒。(5)INSERT時假如要用到從1開始自動增加序列號,應(yīng)該先建立一個序列號。

(6)在添加數(shù)據(jù)時能夠使用轉(zhuǎn)換函數(shù)添加指定數(shù)據(jù)類型。有to_char()to_date()to_number()SQL語言基礎(chǔ)V主題知識講座第24頁1.DELETE語句格式DELETE語句刪除數(shù)據(jù)表里統(tǒng)計。用DELETE語句刪除統(tǒng)計,無法再復(fù)原,所以條件設(shè)置一定要正確。DELETE語句格式為:DELETE[tablename]FROMtableexpressionWHEREcriteriaDelete語句SQL語言基礎(chǔ)V主題知識講座第25頁2.注意事項(1)刪除統(tǒng)計并不能釋放Oracle里被占用數(shù)據(jù)塊表空間。它只把那些被刪除數(shù)據(jù)塊標成unused。(2)假如確實要刪除一個大表里全部統(tǒng)計,能夠用TRUNCATE語句,它能夠釋放占用數(shù)據(jù)塊表空間,其語句格式為:TRUNCATETABLE表名;(3)此操作不可回退。SQL語言基礎(chǔ)V主題知識講座第26頁UPDATE語句經(jīng)過條件限制來修改特定數(shù)據(jù)。UPDATE語句格式為:

UPDATEtableSETnewvalueFROMtableexpressionWHEREcriteria;

DML語句對表都加上了行級鎖,確認完成后,必須加上事物處理結(jié)束語句COMMIT才能正式生效,不然改變不一定寫入數(shù)據(jù)庫里。假如想撤回這些操作,能夠用語句ROLLBACK復(fù)原。Update語句SQL語言基礎(chǔ)V主題知識講座第27頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第28頁1.表建立表是存放用戶數(shù)據(jù)基本結(jié)構(gòu)。建立表主要指定義以下信息:列定義完整性約束Create語句SQL語言基礎(chǔ)V主題知識講座第29頁字段數(shù)據(jù)類型:字符型:1、char(n):定長字符串長度1~2、varchar2(n):變長字符串長度1~40003、nchar(n):定長字符串長度1~10004、nvarchar2(n)定長字符串長度1~10005、long(n)變長字符串長度2G數(shù)字型1、Number(p,s):p為全部位數(shù),s為小數(shù)位數(shù)日期型1、date:儲存從公元前4712/1/1到公元4712/12/31大對象數(shù)據(jù)類型

1、Blob(n):存4G二進制數(shù)據(jù)

2、Clob(n):存4G字符數(shù)據(jù)

3、NClob(n):存4Gunicode字符數(shù)據(jù)SQL語言基礎(chǔ)V主題知識講座第30頁(1)建立一個新表語句格式能夠利用CREATETABLE語句,來建立一個全新表,但前提是:數(shù)據(jù)庫必須已經(jīng)存在。語句格式為:CREATETABLEtable(field1type[(size)][index1],field2type[(size)][index2],...,nultifieldindex[,...])[constraint約束名]primarykey(列名)[constraint約束名]primarykey(列名)[constraint約束名]unique(列名)[constraint約束名]foreignkey(列名)references外鍵列[constraint約束名]check(檢驗表示式)[constraint約束名]default(默認值)SQL語言基礎(chǔ)V主題知識講座第31頁(2)注意事項①創(chuàng)建表時要把較小不為空字段放在前面,可能為空字段放在后面。②創(chuàng)建表時能夠用漢字字段名,但最好還是用英文字段名。③創(chuàng)建表時能夠給字段加上默認值,比如DEFAULTSYSDATE。這么每次插入和修改時,不用程序操作這個字段都能得到動作時間。④創(chuàng)建表時能夠給字段加上約束條件。比如不允許重復(fù)UNIQUE,主鍵PRIMARYKEY。SQL語言基礎(chǔ)V主題知識講座第32頁2.表索引建立索引是一個數(shù)據(jù)庫對象,他是表和蔟相聯(lián)絡(luò)結(jié)構(gòu),能夠是與表相關(guān)SQL語句執(zhí)行更快速,能夠快速定位要查詢信息,他對查詢結(jié)果每影響,但能夠提升查詢速度,對于在表或聚集索引列上每一值將包含一項,為行提供直接快速存取。在以下情況下,Oracle可利用索引改進性能:按指定索引列值查找行。按索引列次序存取表。SQL語言基礎(chǔ)V主題知識講座第33頁表索引建立主要采取是CREATEINDEX語句。這個命令是對一個已存在表建立索引,語句格式為:CREATE[UNIQUE]INDEXindexONtable(field1[ASC|DESC],field2[ASC|DESC],...)SQL語言基礎(chǔ)V主題知識講座第34頁3.視圖建立視圖是一個邏輯表,它允許操作者從其它表或視圖存取數(shù)據(jù),視圖本身不包含數(shù)據(jù)。視圖所基于表稱為基表。引入視圖有以下作用:提供附加表安全級,限制存取基表行或/和列集合。隱藏數(shù)據(jù)復(fù)雜性。為數(shù)據(jù)提供另一個觀點。促使Oracle一些操作在包含視圖數(shù)據(jù)庫上執(zhí)行,而不在另一個數(shù)據(jù)庫上執(zhí)行。SQL語言基礎(chǔ)V主題知識講座第35頁建立視圖語句格式為:CREATEVIEWviewname()ASSELECTtable1.field1,…,table2.field1…FROMtable1,table2….;WithreadonlySQL語言基礎(chǔ)V主題知識講座第36頁4.同義詞建立同義詞為表、視圖、序列、存放函數(shù)、包、快照或其它同義詞另一個名字。使用同義詞為了安全和方便。對某一對象建立同義詞可有以下好處:引用對象不需指出對象持有者。引用對象不需指出它所位于數(shù)據(jù)庫。為對象提供另一個名字。建立同義詞使用語句格式為:CREATESYNONYMsymnon_nameFOR[username.]tablename;SQL語言基礎(chǔ)V主題知識講座第37頁1.ALTER語句格式用ALTER語句,能夠修改表、索引,或?qū)σ晥D字段重新設(shè)計。語句格式為:ALTERTABLEtable{ADD{COLUMNfieldtype[(size)]|CONSTRAINTmultifiedindex}|DROP{COLUMNfield|CONSTRAINTindexname}}Alter語句SQL語言基礎(chǔ)V主題知識講座第38頁2.ALTER語句詳細使用方法(1)在表后面增加一個字段,比如為:

ALTERTABLE表名

ADD("BOOK_SHU"VARCHAR2(10))(2)修改表里字段定義描述,比如為:

ALTERTABLE表名

MODIFY("BOOK_NAME“NOTNULL)(3)給表里字段加上約束條件,語句格式為:

ALTERTABLE"SCOTT"."ZHOU1"ADD(CONSTRAINT"ZHUJIAN"PRIMARYKEY(book_name))修改表名稱:

rename舊表名to新表名SQL語言基礎(chǔ)V主題知識講座第39頁修改列屬性時,需要注意以下幾條:

1、能夠增加列寬度或數(shù)字精度。

2、降低列寬度時,列取值要大于列值范圍。

3、當數(shù)據(jù)類型被修改時,列值必須為空SQL語言基礎(chǔ)V主題知識講座第40頁

使用DROP語句,能夠刪除表,索引,視圖,同義詞,過程,函數(shù),數(shù)據(jù)庫鏈接等。能夠恢復(fù),DROP語句格式為:DROP{TABLEtable|INDEXindexON

table}比如:

droptablebiaoDrop語句SQL語言基礎(chǔ)V主題知識講座第41頁

使用TRUNCATE語句,能夠清空表里全部統(tǒng)計,保留表結(jié)構(gòu)。TRUNCATE語句格式為:TRUNCATEtable

表名;Truncate語句SQL語言基礎(chǔ)V主題知識講座第42頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言(DDL)2.6數(shù)據(jù)控制語言(DCL)2.7慣用函數(shù)SQL語言基礎(chǔ)V主題知識講座第43頁事物控制SQL語言基礎(chǔ)V主題知識講座第44頁SQL語言基礎(chǔ)V主題知識講座第45頁COMMIT語句COMMIT[WORK]:提交事務(wù)。提交數(shù)據(jù)有三種類型:顯式提交、隱式提交及自動提交。下面分別說明這三種類型。(1)顯式提交用COMMIT語句直接完成提交為顯式提交。其格式為:SQL>COMMIT;(2)隱式提交用SQL語句間接完成提交為隱式提交。這些命令是:ALTER,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,QUIT,REVOKE。(3)自動提交若把AUTOCOMMIT設(shè)置為ON,則在插入、修改、刪除語句執(zhí)行后,系統(tǒng)將自動進行提交,這就是自動提交。其格式為:SQL>SETAUTOCOMMITON;SQL語言基礎(chǔ)V主題知識講座第46頁ROLLBACK語句ROLLBACK[WORK]TO[SAVEPOINT]:回退到某一點?;貪L語句使數(shù)據(jù)庫狀態(tài)回到上次最終提交事務(wù)狀態(tài)。SQL語言基礎(chǔ)V主題知識講座第47頁SQL語言基礎(chǔ)V主題知識講座第48頁2.1SQL介紹2.2SQL基本語法2.3數(shù)據(jù)查詢語言(DQL)2.4數(shù)據(jù)操縱語言(DML)2.5數(shù)據(jù)定義語言

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論