Oracle SQL語言基礎
《Oracle SQL語言基礎》由會員分享,可在線閱讀,更多相關《Oracle SQL語言基礎(74頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、SQL語言基礎語言基礎本章學習目標本章學習目標 SQL語言是數(shù)據(jù)庫的標準語言。只有理解了SQL才能真正理解關系數(shù)據(jù)庫。本章將介紹怎樣使用“結構化查詢語言”(SQL)來操作數(shù)據(jù)庫。第二章第二章 SQL語言基礎語言基礎 本章內(nèi)容安排本章內(nèi)容安排 3.1 SQL簡介 SQL語言是數(shù)據(jù)庫的核心語言。全稱是“結構化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實驗室為其關系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言,它的前身是SQUARE語言。 1.非過程化語言 SQL是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導航。SQL允許用戶在高層
2、的數(shù)據(jù)結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。SQL不要求用戶指定對數(shù)據(jù)的存放方法。這種特性使用戶更易集中精力于要得到的結果。2.1.2 SQL的優(yōu)點的優(yōu)點 2.1.2 SQL的優(yōu)點的優(yōu)點2.統(tǒng)一的語言 SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。 SQL為許多任務提供了語句,包括: 查詢數(shù)據(jù) 在表中插入、修改和刪除記錄 建立、修改和刪除數(shù)據(jù)對象 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取 保證數(shù)據(jù)庫一致性和
3、完整性2.1.2 SQL的優(yōu)點的優(yōu)點3.是所有關系數(shù)據(jù)庫的公共語言由于所有主要的關系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個,所有用SQL編寫的程序都是可以移植的。 1SQL*PLUS界面:界面:(1)登錄)登錄輸入輸入SQLPLUS,再回車;接著輸入正確的,再回車;接著輸入正確的Oracle用戶名用戶名并回車;輸入用戶口令并回車,會顯示提示符:并回車;輸入用戶口令并回車,會顯示提示符:SQL。(2)退出)退出輸入輸入EXIT即可。即可。2語句的編輯與運行語句的編輯與運行語句的編輯與運行可以在語句提示符后輸入語句的編輯與運行可以在語句提示符后輸入SQL
4、語句并語句并運行。執(zhí)行單條語句,以分號結束輸入;執(zhí)行程序塊以運行。執(zhí)行單條語句,以分號結束輸入;執(zhí)行程序塊以斜杠結束輸入,或者以空行結束輸入。斜杠結束輸入,或者以空行結束輸入。也可以利用也可以利用SQL緩沖區(qū)進行緩沖區(qū)進行PL/SQL塊的編輯和運行,或塊的編輯和運行,或利用語句文件進行利用語句文件進行PL/SQL塊的編輯和運行。塊的編輯和運行。2.1.3 操作界面操作界面 3.2 SQL基本語法 通過通過SQL語句,程序員或數(shù)據(jù)庫管理員(語句,程序員或數(shù)據(jù)庫管理員(DBA)可以做如下的)可以做如下的主要工作:主要工作:(1)建立數(shù)據(jù)庫的表格,包括設置表格所可以使用之空間。)建立數(shù)據(jù)庫的表格,包
5、括設置表格所可以使用之空間。(2)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設置。)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設置。(3)針對某個數(shù)據(jù)庫或表格,授予用戶存取權限。)針對某個數(shù)據(jù)庫或表格,授予用戶存取權限。(4)對數(shù)據(jù)庫表格建立索引值。)對數(shù)據(jù)庫表格建立索引值。(5)修改數(shù)據(jù)庫表格結構(新建、刪除或是修改表格字段)。)修改數(shù)據(jù)庫表格結構(新建、刪除或是修改表格字段)。(6)對數(shù)據(jù)庫進行數(shù)據(jù)的新建。)對數(shù)據(jù)庫進行數(shù)據(jù)的新建。(7)對數(shù)據(jù)庫進行數(shù)據(jù)的刪除。)對數(shù)據(jù)庫進行數(shù)據(jù)的刪除。(8)對數(shù)據(jù)庫進行數(shù)據(jù)的修改。)對數(shù)據(jù)庫進行數(shù)據(jù)的修改。(9)對數(shù)據(jù)庫進行數(shù)據(jù)的查詢。)對數(shù)據(jù)庫進行數(shù)據(jù)的查詢。2.2.2 SQL語言的語法結構語言的語
6、法結構SQL語句是針對關系型數(shù)據(jù)庫所建立出來的語法敘述,所以SQL在這類數(shù)據(jù)庫中所發(fā)揮的功能非常的強,SQL的語句不多,而且其語法也相對較簡單。歸納起來,共有六大類:1第一類屬性詞(Predicates)2第二類聲明(Declaration)3第三類條件子句(Clause)4第四類運算符(Operator)5第五類函數(shù)(Function)6第六類SQL語句(Statement) 2.3 數(shù)據(jù)查詢語言(DQL) 1DQL的基本結構2SELECT 語句的格式SELECT distinct 字段列表table.字段名字段名 as 別名 *集合函數(shù)(字段名)FROM 表名1 ,.WHERE.GROUP
7、 BY.HAVING.ORDER BY.2.3.1 基本查詢 3SELECT中的條件語句(1)FROM 條件子句SELECT fieldlist(可以使用算術運算符( + - * /)FROM tableexpression (2)WHERE 條件子句SELECT fieldlistFROM tableexpressionWHERE criteria(后副:where子句中的運算符)(3)“*”,DISTINCT屬性詞用法 SELECT *|DISTINCT FROM table (4)ORDER BY條件子句 SELECT fieldlist FROM tableWHERE selectcr
8、iteriaORDER BY fieldASC|DESC,field2ASC|DESC,.(5)GROUP BY 條件子句SELECT fieldlistFROM tableWHERE criteriaGROUP BY groupfieldlist(6)HAVING 條件子句 SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteria where子句中的運算符: (1)比較運算符: = = (2)范圍運算符:NOTBetween .and (3)列表運算符:NOTIN(exp
9、ression listvalue) (4)模式匹配運算符 like _ , % (5) NULL 運算符:is not null (6)邏輯運算符:and or not (not 要與其他兩個共同使用) 例如: WHERE (type = business OR type = psychology) AND NOT advance 5500 4注意事項(1)字段名之間可以進行算術運算,例如:(字段名1*字段名2)/3(2)查詢語句可以嵌套,例如:SELECTFROM 表名1 WHERE 字段1 in (SELECTFROM表名1,表名2, WHERE條件1 WHERE條件2);(3)查詢結果
10、集的排序操作,默認的排序是升序ASC,降序是DESC。1連接查詢 連接可以在SELECT 語句的FROM子句或WHERE子句中建立,在FROM子句中指出連接時有助于將連接操作與WHERE子句中的搜索條件區(qū)分開來。這樣就可以將多個表中的數(shù)據(jù)進行有條件的查詢: select * from tablename1 , tablename2, where expre2.3.2 復合查詢2聯(lián)合查詢 UNION運算符可以將兩個或兩個以上SELECT語句的查詢結果集合合并成一個結果集合顯示,即執(zhí)行聯(lián)合查詢。UNION的語法格式為:select_statementUNION ALL selectstatemen
11、tUNION ALL selectstatementn3,外聯(lián)接查詢: 左外連接查詢:left join 右外連接查詢:right join 全外連接查詢:full join 條件的指定用on4,內(nèi)連接查詢: 第一種:在from后直接添加表名,中間用逗號隔開; 第二種:使用 “join” 連接 ,條件的指定用“on”5,自連接: 就是將同一個表其不同的別名,使他在邏輯上成為兩張表1統(tǒng)計字段值的數(shù)目函數(shù)COUNT()用來統(tǒng)計一個表中有多少條記錄。Count(distinct/* 字段名稱)注意:函數(shù)COUNT()沒有指定任何字段。這個語句計算表中所有記錄所數(shù)目,包括有空值的記錄。因此,不需要指定
12、要被計算的特定字段。2計算字段的平均值函數(shù)AVG()可以返回一個字段中所有值的平均值。注意:函數(shù)AVG()只能對數(shù)值型字段使用。這個函數(shù)在計算平均值時也忽略空值。2.3.3集合函數(shù)3計算字段值的和計算字段值的和使用函數(shù)SUM()。注意:函數(shù)SUM()的返回值代表字段purchase_amount中所有值的總和。4返回最大值或最小值函數(shù)MAX()和函數(shù)MIN()分別用于返回最大值和最小值。注意:函數(shù)MIN()返回一個字段的所有值中的最小值。如果字段是空的,函數(shù)MIN()返回空值。2.4.2 DELETE語句語句 2.4 數(shù)據(jù)操縱語言(DML)2.4.3 UPDATE語句語句1INSERT語句格式
13、INSERT語句用于往數(shù)據(jù)表里插入記錄。(1)插入單條記錄的語句格式為:INSERT INTO tablename(target.field1,target.field2,.)VALUES(value1,value2,.) 、(2)同時插入多條記錄的語句格式為:INSERT INTO tablename(target.field1,target.field2,)SELECT (source.field1,source.field2,)FROM tableexpression2.4.1 INSERT語句2注意事項(1)字符串類型的字段值必須用單引號括起來,例如:GOODDAY。(2)如果字段值里
14、包含單引號需要進行字符串轉換,把它替換成兩個單引號 。(3)字符串類型的字段值超過定義的長度會出錯,最好在插入前進行長度校驗。(4)日期字段的字段值可以用當前數(shù)據(jù)庫的系統(tǒng)時間SYSDATE,精確到秒。(5)INSERT時如果要用到從1開始自動增長的序列號,應該先建立一個序列號。 (6)在添加數(shù)據(jù)時可以使用轉換函數(shù)添加指定的數(shù)據(jù)類型。 有to_char() to_date() to_number()1DELETE語句格式DELETE語句刪除數(shù)據(jù)表里的記錄。用DELETE語句刪除的記錄,無法再復原,所以條件設置一定要正確。DELETE語句格式為:DELETE tablenameFROM table
15、expressionWHERE criteria2.4.2 DELETE語句2注意事項(1)刪除記錄并不能釋放Oracle里被占用的數(shù)據(jù)塊表空間。它只把那些被刪除的數(shù)據(jù)塊標成unused。(2)如果確實要刪除一個大表里的全部記錄,可以用TRUNCATE語句,它可以釋放占用的數(shù)據(jù)塊表空間,其語句格式為:TRUNCATE TABLE 表名;(3)此操作不可回退。 UPDATE 語句通過條件的限制來修改特定的數(shù)據(jù)。 UPDATE語句格式為: UPDATE tablename SET newvalue FROM tableexpression WHERE criteria; DML 語句對表都加上了行
16、級鎖,確認完成后,必須加上事物處理結束的語句COMMIT才能正式生效,否則改變不一定寫入數(shù)據(jù)庫里。如果想撤回這些操作,可以用語句ROLLBACK復原。2.4.3 UPDATE語句2.5.2 ALTER語句語句 2.5.1 CREATE語句語句2.5 數(shù)據(jù)定義語言(DDL)2.5.3 DROP語句語句 2.5.4 TRUNCATE語句語句1表的建立 表是存儲用戶數(shù)據(jù)的基本結構。 建立表主要指定義下列信息: 列定義 完整性約束2.5.1 CREATE語句字段數(shù)據(jù)類型:字符型:1、char (n):定長字符串 長度120002、varchar2(n) :變長字符串 長度140003、nchar(n)
17、:定長字符串 長度110004、nvarchar2(n)變長字符串 長度110005、long(n)變長字符串 長度2G數(shù)字型1、Number(p,s) :p為所有位數(shù),s為小數(shù)位數(shù) number 范圍 10的-38次方 到10的38次方 日期型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):存4G unicode 的字符數(shù)據(jù) (1)建立一個新表的語句格式可以利用CREATE TABLE語句,來建立一個全新的表,但前提是:數(shù)據(jù)庫必須已經(jīng)存在。語句格式為:C
18、REATE TABLE tablename(field1 type(size)index1,field2 type(size)index2,.,nultifieldindex,.)constraint 約束名約束名 primary key(列名列名)constraint 約束名 primary key(列名):不重復,不能有null值 可以被外鍵引用,一個表中只能有一個主鍵constraint 約束名 unique (列名):字段中的數(shù)據(jù)不能重復,可以被外鍵引用。constraint 約束名 foreign key(列名) references 主鍵表(主鍵列)中的數(shù)據(jù)必須來自于主鍵或者是唯一
19、約束列數(shù)據(jù)。constraint 約束名 check(檢查表達式)constraint 約束名 default (默認值) 得到系統(tǒng)時間:sysdate (2)注意事項 創(chuàng)建表時要把較小的不為空的字段放在前面,可能為空的字段放在后面。 創(chuàng)建表時可以用中文的字段名,但最好還是用英文的字段名。 創(chuàng)建表時可以給字段加上默認值,例如DEFAULT SYSDATE。這樣每次插入和修改時,不用程序操作這個字段都能得到動作的時間。 創(chuàng)建表時可以給字段加上約束條件。例如不允許重復UNIQUE,主鍵PRIMARY KEY。2表索引的建立 索引是一種數(shù)據(jù)庫對象 ,他是表和蔟相聯(lián)系的結構,能夠是與表相關的SQL語句
20、執(zhí)行更迅速,能夠快速定位要查詢的信息,他對查詢結果每影響,但可以提高查詢速度,對于在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列情況下,Oracle可利用索引改進性能: 按指定的索引列的值查找行。按索引列的順序存取表。注意: 建立表的主鍵時候的約束可以自動建索引 primary key - 唯一性索引 unique - 唯一性索引表索引的建立主要采用的是CREATE INDEX語句。這個命令是對一個已存在的表建立索引,語句格式為:CREATEUNIQUEINDEX indexname ON tablename(field1ASC|DESC,field2ASC|DESC,
21、.)3視圖的建立視圖是一個邏輯表,它允許操作者從其它表或視圖存取數(shù)據(jù),視圖本身不包含數(shù)據(jù)。視圖所基于的表稱為基表。引入視圖有下列作用:提供附加的表安全級,限制存取基表的行或/和列集合。隱藏數(shù)據(jù)復雜性。為數(shù)據(jù)提供另一種觀點。促使Oracle的某些操作在包含視圖的數(shù)據(jù)庫上執(zhí)行,而不在另一個數(shù)據(jù)庫上執(zhí)行。建立視圖的語句格式為:CREATE VIEW viewname(字段列表) AS SELECT table1.field1,table2.field1 FROM table1,table2.;With read only4同義詞的建立 同義詞為表、視圖、序列、存儲函數(shù)、包、快照或其它同義詞的另一個名
22、字。使用同義詞為了安全和方便。對某一對象建立同義詞可有下列好處:引用對象不需指出對象的持有者。引用對象不需指出它所位于的數(shù)據(jù)庫。為對象提供另一個名字。建立同義詞使用的語句格式為:CREATE SYNONYM symnon_name FOR username.tablename;1ALTER語句格式用ALTER語句,可以修改表、索引,或對視圖的字段重新設計。語句格式為:ALTER TABLE tablenameADD (COLUMN field type(size)|CONSTRAINT multifiedindex |DROP COLUMN field|CONSTRAINT indexname
23、2.5.2 ALTER語句2ALTER語句的具體用法(1)在表的后面增加一個字段,例如為: ALTER TABLE 表名 ADD (BOOK_SHU VARCHAR2(10) ) (2)修改表里字段的定義描述,例如為: ALTER TABLE 表名 MODIFY(BOOK_NAME“ NOT NULL)(3)給表里的字段加上約束條件,語句格式為: ALTER TABLE SCOTT.ZHOU1 ADD (CONSTRAINT ZHUJIAN PRIMARY KEY(book_name)修改表名稱: rename 舊表名 to 新表名 修改列的屬性時,需要注意以下幾條: 1、可以增加列的寬度或數(shù)
24、字的精度。 2、減少列的寬度時,列的取值要大于列值范 圍。 3、當數(shù)據(jù)類型被修改時,列值必須為空 使用DROP語句,可以刪除表,索引,視圖,同義詞,過程,函數(shù),數(shù)據(jù)庫鏈接等??梢曰謴?,DROP語句的格式為:DROP TABLE table|INDEX index ON table例如: drop table biao 2.5.3 DROP語句 使用TRUNCATE語句,可以清空表里的所有記錄,保留表的結構。TRUNCATE語句的格式為:TRUNCATE table 表名;2.5.4 TRUNCATE語句2.6 數(shù)據(jù)控制語言()1. COMMIT語句語句2. ROLLBACK語句語句 事物控制實
25、驗:兩個對比COMMIT語句COMMIT WORK:提交事務。提交數(shù)據(jù)有三種類型:顯式提交、隱式提交及自動提交。下面分別說明這三種類型。(1)顯式提交用COMMIT語句直接完成的提交為顯式提交。其格式為:SQLCOMMIT;(2)隱式提交用SQL語句間接完成的提交為隱式提交。這些命令是:ALTER,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,QUIT,REVOKE。(3)自動提交若把AUTOCOMMIT設置為ON,則在插入、修改、刪除語句執(zhí)行后,系統(tǒng)將自動進行提交,這就是自動提交。其格式為:SQLSET AUTOCOMMIT ON;ROLLBACK語句R
26、OLLBACK WORK TO SAVEPOINT:回退到某一點?;貪L語句使數(shù)據(jù)庫狀態(tài)回到上次最后提交事務的狀態(tài)。2.7 常用函數(shù)一個函數(shù)類似于一個算符,它操作數(shù)據(jù)項,返回一個結果。函數(shù)在格式上不同于算符,它具有參數(shù),可操作0個、一個、二個或多個參數(shù),函數(shù)的形式為:函數(shù)名(參數(shù)1,參數(shù)2,)函數(shù)具有下列一般類形: 單行函數(shù) 分組函數(shù)注意系統(tǒng)運算表 :dual如:select length(hello) from dual例如:select * from scott.emp where ename=king select * from scott.emp where ename =upper(king)Select hiredate,add_months(hiredate,3) from emp select last_day(sysdate) from dual;select next_day(sysdate,星期三) from dual; select months_between(sysdate,hiredate) from emp;
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語文部編版《端午粽》課件2
- 秋的思念最新課件
- 20套清新商務日歷圖表合集一課件
- 簡歷篩選技巧教學課件
- 《圖形創(chuàng)意設計》【初中美術教學課件】
- 部編新版人教版一年級下冊姓氏歌課件
- 西師大版六年級數(shù)學下冊總復習(5)---比和比例
- 藥物過敏反應及處理流程ppt
- 人教版《道德與法治》九年級上冊42《凝聚法治共識》課件_參考
- 蘇教版二年級數(shù)學下冊第六單元--兩、三位數(shù)的加法和減法第7課時---練習七課件
- 蘇教版小學數(shù)學五年級下冊《方程的認識》課件
- 國培計劃項目匯報模板
- 藏羚羊跪拜王春華
- 危重病人護理查房
- 中醫(yī)體質分類及其辨證調(diào)護