Oracle SQL語言基礎(chǔ)
《Oracle SQL語言基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《Oracle SQL語言基礎(chǔ)(76頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、SQL語言基礎(chǔ)語言基礎(chǔ)本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo) SQL語言是數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。只有理解了SQL才能真正理解關(guān)系數(shù)據(jù)庫。本章將介紹怎樣使用“結(jié)構(gòu)化查詢語言”(SQL)來操作數(shù)據(jù)庫。第二章第二章 SQL語言基礎(chǔ)語言基礎(chǔ) 本章內(nèi)容安排本章內(nèi)容安排 3.1 SQL簡介 SQL語言是數(shù)據(jù)庫的核心語言。全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言,它的前身是SQUARE語言。1.非過程化語言 SQL是一個非過程化的語言,因?yàn)樗淮翁幚硪粋€記錄,對數(shù)據(jù)提供自動導(dǎo)航。SQL允許用戶在高層的
2、數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進(jìn)行操作,可操作記錄集。所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。SQL不要求用戶指定對數(shù)據(jù)的存放方法。這種特性使用戶更易集中精力于要得到的結(jié)果。2.1.2 SQL的優(yōu)點(diǎn)的優(yōu)點(diǎn) 2.1.2 SQL的優(yōu)點(diǎn)的優(yōu)點(diǎn)2.統(tǒng)一的語言 SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。SQL為許多任務(wù)提供了語句,包括:查詢數(shù)據(jù) 在表中插入、修改和刪除記錄 建立、修改和刪除數(shù)據(jù)對象 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取 保證數(shù)據(jù)庫一致性和完整性
3、2.1.2 SQL的優(yōu)點(diǎn)的優(yōu)點(diǎn)3.是所有關(guān)系數(shù)據(jù)庫的公共語言由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉(zhuǎn)到另一個,所有用SQL編寫的程序都是可以移植的。1SQL*PLUS界面:界面:(1)登錄)登錄輸入輸入SQLPLUS,再回車;接著輸入正確的,再回車;接著輸入正確的Oracle用戶名用戶名并回車;輸入用戶口令并回車,會顯示提示符:并回車;輸入用戶口令并回車,會顯示提示符:SQL。(2)退出)退出輸入輸入EXIT即可。即可。2語句的編輯與運(yùn)行語句的編輯與運(yùn)行語句的編輯與運(yùn)行可以在語句提示符后輸入語句的編輯與運(yùn)行可以在語句提示符后輸入SQL語句并語
4、句并運(yùn)行。執(zhí)行單條語句,以分號結(jié)束輸入;執(zhí)行程序塊以運(yùn)行。執(zhí)行單條語句,以分號結(jié)束輸入;執(zhí)行程序塊以斜杠結(jié)束輸入,或者以空行結(jié)束輸入。斜杠結(jié)束輸入,或者以空行結(jié)束輸入。也可以利用也可以利用SQL緩沖區(qū)進(jìn)行緩沖區(qū)進(jìn)行PL/SQL塊的編輯和運(yùn)行,或塊的編輯和運(yùn)行,或利用語句文件進(jìn)行利用語句文件進(jìn)行PL/SQL塊的編輯和運(yùn)行。塊的編輯和運(yùn)行。2.1.3 操作界面操作界面 3.2 SQL基本語法 通過通過SQL語句,程序員或數(shù)據(jù)庫管理員(語句,程序員或數(shù)據(jù)庫管理員(DBA)可以做如下的)可以做如下的主要工作:主要工作:(1)建立數(shù)據(jù)庫的表格,包括設(shè)置表格所可以使用之空間。)建立數(shù)據(jù)庫的表格,包括設(shè)置表
5、格所可以使用之空間。(2)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設(shè)置。)改變數(shù)據(jù)庫系統(tǒng)環(huán)境設(shè)置。(3)針對某個數(shù)據(jù)庫或表格,授予用戶存取權(quán)限。)針對某個數(shù)據(jù)庫或表格,授予用戶存取權(quán)限。(4)對數(shù)據(jù)庫表格建立索引值。)對數(shù)據(jù)庫表格建立索引值。(5)修改數(shù)據(jù)庫表格結(jié)構(gòu)(新建、刪除或是修改表格字段)。)修改數(shù)據(jù)庫表格結(jié)構(gòu)(新建、刪除或是修改表格字段)。(6)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的新建。)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的新建。(7)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的刪除。)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的刪除。(8)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的修改。)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的修改。(9)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的查詢。)對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的查詢。2.2.2 SQL語言的語法結(jié)構(gòu)語言的語法結(jié)構(gòu)S
6、QL語句是針對關(guān)系型數(shù)據(jù)庫所建立出來的語法敘述,所以SQL在這類數(shù)據(jù)庫中所發(fā)揮的功能非常的強(qiáng),SQL的語句不多,而且其語法也相對較簡單。歸納起來,共有六大類:1第一類屬性詞(Predicates)2第二類聲明(Declaration)3第三類條件子句(Clause)4第四類運(yùn)算符(Operator)5第五類函數(shù)(Function)6第六類SQL語句(Statement)2.3 數(shù)據(jù)查詢語言(DQL)1DQL的基本結(jié)構(gòu)2SELECT 語句的格式SELECT distinct 字段列表table.字段名字段名 as 別名 *集合函數(shù)(字段名)FROM 表名1,.WHERE.GROUP BY.HAV
7、ING.ORDER BY.2.3.1 基本查詢 3SELECT中的條件語句(1)FROM 條件子句SELECT fieldlist(可以使用算術(shù)運(yùn)算符(+-*/)FROM tableexpression(2)WHERE 條件子句SELECT fieldlistFROM tableexpressionWHERE criteria(后副:where子句中的運(yùn)算符)(3)“*”,DISTINCT屬性詞用法 SELECT*|DISTINCT FROM table(4)ORDER BY條件子句 SELECT fieldlist FROM tableWHERE selectcriteriaORDER BY
8、 fieldASC|DESC,field2ASC|DESC,.(5)GROUP BY 條件子句SELECT fieldlistFROM tableWHERE criteriaGROUP BY groupfieldlist(6)HAVING 條件子句 SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteria where子句中的運(yùn)算符:(1)比較運(yùn)算符:=(2)范圍運(yùn)算符:NOTBetween.and (3)列表運(yùn)算符:NOTIN(expression listvalue)(4
9、)模式匹配運(yùn)算符 like _,%(5)NULL 運(yùn)算符:is not null (6)邏輯運(yùn)算符:and or not(not 要與其他兩個共同使用)例如:WHERE (type=business OR type=psychology)AND NOT advance 5500 4注意事項(1)字段名之間可以進(jìn)行算術(shù)運(yùn)算,例如:(字段名1*字段名2)/3(2)查詢語句可以嵌套,例如:SELECTFROM 表名1 WHERE 字段1 in(SELECTFROM表名1,表名2,WHERE條件1 WHERE條件2);(3)查詢結(jié)果集的排序操作,默認(rèn)的排序是升序ASC,降序是DESC。1連接查詢 連接
10、可以在SELECT 語句的FROM子句或WHERE子句中建立,在FROM子句中指出連接時有助于將連接操作與WHERE子句中的搜索條件區(qū)分開來。這樣就可以將多個表中的數(shù)據(jù)進(jìn)行有條件的查詢:select *from tablename1,tablename2,where expre2.3.2 復(fù)合查詢2聯(lián)合查詢 UNION運(yùn)算符可以將兩個或兩個以上SELECT語句的查詢結(jié)果集合合并成一個結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。UNION的語法格式為:select_statementUNION ALL selectstatementUNION ALL selectstatementn3,外聯(lián)接查詢:左外連接查
11、詢: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ù)目,包括有空值的記錄。因此,不需要指定要被計算的特定字段。2計算字段的平均值函數(shù)AVG()可以返回一個字段中所有值的平均值。注意:函數(shù)
12、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語句格式INSERT語句用于往數(shù)據(jù)表里插入記錄。(1)插入單條記錄的語句格式為:INSERT INTO
13、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)如果字段值里包含單引號需要進(jìn)行字符串轉(zhuǎn)換,把它替換成兩個單引號。(3)字符串類型的字段值超過定義的長度會出錯,最
14、好在插入前進(jìn)行長度校驗(yàn)。(4)日期字段的字段值可以用當(dāng)前數(shù)據(jù)庫的系統(tǒng)時間SYSDATE,精確到秒。(5)INSERT時如果要用到從1開始自動增長的序列號,應(yīng)該先建立一個序列號。(6)在添加數(shù)據(jù)時可以使用轉(zhuǎn)換函數(shù)添加指定的數(shù)據(jù)類型。有to_char()to_date()to_number()1DELETE語句格式DELETE語句刪除數(shù)據(jù)表里的記錄。用DELETE語句刪除的記錄,無法再復(fù)原,所以條件設(shè)置一定要正確。DELETE語句格式為:DELETE tablenameFROM tableexpressionWHERE criteria2.4.2 DELETE語句2注意事項(1)刪除記錄并不能釋放
15、Oracle里被占用的數(shù)據(jù)塊表空間。它只把那些被刪除的數(shù)據(jù)塊標(biāo)成unused。(2)如果確實(shí)要刪除一個大表里的全部記錄,可以用TRUNCATE語句,它可以釋放占用的數(shù)據(jù)塊表空間,其語句格式為:TRUNCATE TABLE 表名;(3)此操作不可回退。UPDATE 語句通過條件的限制來修改特定的數(shù)據(jù)。UPDATE語句格式為:UPDATE tablename SET newvalue FROM tableexpression WHERE criteria;DML 語句對表都加上了行級鎖,確認(rèn)完成后,必須加上事物處理結(jié)束的語句COMMIT才能正式生效,否則改變不一定寫入數(shù)據(jù)庫里。如果想撤回這些操作,
16、可以用語句ROLLBACK復(fù)原。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ù)的基本結(jié)構(gòu)。建立表主要指定義下列信息:列定義 完整性約束2.5.1 CREATE語句字段數(shù)據(jù)類型:字符型:1、char(n):定長字符串 長度120002、varchar2(n):變長字符串 長度140003、nchar(n):定長字符串 長度110004、nvarchar2(n)變長字符串 長度110005、long(n)變長字符串 長度2G數(shù)字型
17、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的二進(jìn)制數(shù)據(jù) 2、Clob(n):存4G的字符數(shù)據(jù) 3、NClob(n):存4G unicode 的字符數(shù)據(jù)(1)建立一個新表的語句格式可以利用CREATE TABLE語句,來建立一個全新的表,但前提是:數(shù)據(jù)庫必須已經(jīng)存在。語句格式為:CREATE TABLE tablename(field1 type(size)index1,field2 type(size)inde
18、x2,.,nultifieldindex,.)constraint 約束名約束名 primary key(列名列名)constraint 約束名 primary key(列名):不重復(fù),不能有null值 可以被外鍵引用,一個表中只能有一個主鍵constraint 約束名 unique(列名):字段中的數(shù)據(jù)不能重復(fù),可以被外鍵引用。constraint 約束名 foreign key(列名)references 主鍵表(主鍵列)中的數(shù)據(jù)必須來自于主鍵或者是唯一約束列數(shù)據(jù)。constraint 約束名 check(檢查表達(dá)式)constraint 約束名 default(默認(rèn)值)得到系統(tǒng)時間:sy
19、sdate(2)注意事項 創(chuàng)建表時要把較小的不為空的字段放在前面,可能為空的字段放在后面。創(chuàng)建表時可以用中文的字段名,但最好還是用英文的字段名。創(chuàng)建表時可以給字段加上默認(rèn)值,例如DEFAULT SYSDATE。這樣每次插入和修改時,不用程序操作這個字段都能得到動作的時間。創(chuàng)建表時可以給字段加上約束條件。例如不允許重復(fù)UNIQUE,主鍵PRIMARY KEY。2表索引的建立 索引是一種數(shù)據(jù)庫對象,他是表和蔟相聯(lián)系的結(jié)構(gòu),能夠是與表相關(guān)的SQL語句執(zhí)行更迅速,能夠快速定位要查詢的信息,他對查詢結(jié)果每影響,但可以提高查詢速度,對于在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列
20、情況下,Oracle可利用索引改進(jìn)性能:按指定的索引列的值查找行。按索引列的順序存取表。注意:建立表的主鍵時候的約束可以自動建索引 primary key-唯一性索引 unique -唯一性索引表索引的建立主要采用的是CREATE INDEX語句。這個命令是對一個已存在的表建立索引,語句格式為:CREATEUNIQUEINDEX indexname ON tablename(field1ASC|DESC,field2ASC|DESC,.)3視圖的建立視圖是一個邏輯表,它允許操作者從其它表或視圖存取數(shù)據(jù),視圖本身不包含數(shù)據(jù)。視圖所基于的表稱為基表。引入視圖有下列作用:提供附加的表安全級,限制存取
21、基表的行或/和列集合。隱藏數(shù)據(jù)復(fù)雜性。為數(shù)據(jù)提供另一種觀點(diǎn)。促使Oracle的某些操作在包含視圖的數(shù)據(jù)庫上執(zhí)行,而不在另一個數(shù)據(jù)庫上執(zhí)行。建立視圖的語句格式為:CREATE VIEW viewname(字段列表)AS SELECT table1.field1,table2.field1 FROM table1,table2.;With read only4同義詞的建立 同義詞為表、視圖、序列、存儲函數(shù)、包、快照或其它同義詞的另一個名字。使用同義詞為了安全和方便。對某一對象建立同義詞可有下列好處:引用對象不需指出對象的持有者。引用對象不需指出它所位于的數(shù)據(jù)庫。為對象提供另一個名字。建立同義詞使用
22、的語句格式為:CREATE SYNONYM symnon_name FOR username.tablename;1ALTER語句格式用ALTER語句,可以修改表、索引,或?qū)σ晥D的字段重新設(shè)計。語句格式為:ALTER TABLE tablenameADD(COLUMN field type(size)|CONSTRAINT multifiedindex|DROP COLUMN field|CONSTRAINT indexname2.5.2 ALTER語句2ALTER語句的具體用法(1)在表的后面增加一個字段,例如為:ALTER TABLE 表名 ADD(BOOK_SHU VARCHAR2(10
23、)(2)修改表里字段的定義描述,例如為:ALTER TABLE 表名 MODIFY(BOOK_NAME“NOT NULL)(3)給表里的字段加上約束條件,語句格式為:ALTER TABLE SCOTT.ZHOU1 ADD(CONSTRAINT ZHUJIAN PRIMARY KEY(book_name)修改表名稱:rename 舊表名 to 新表名 修改列的屬性時,需要注意以下幾條:1、可以增加列的寬度或數(shù)字的精度。2、減少列的寬度時,列的取值要大于列值范 圍。3、當(dāng)數(shù)據(jù)類型被修改時,列值必須為空 使用DROP語句,可以刪除表,索引,視圖,同義詞,過程,函數(shù),數(shù)據(jù)庫鏈接等。可以恢復(fù),DROP語
24、句的格式為:DROP TABLE table|INDEX index ON table例如:drop table biao 2.5.3 DROP語句 使用TRUNCATE語句,可以清空表里的所有記錄,保留表的結(jié)構(gòu)。TRUNCATE語句的格式為:TRUNCATE table 表名;2.5.4 TRUNCATE語句2.6 數(shù)據(jù)控制語言()1.COMMIT語句語句2.ROLLBACK語句語句 事物控制實(shí)驗(yàn):兩個對比COMMIT語句COMMIT WORK:提交事務(wù)。提交數(shù)據(jù)有三種類型:顯式提交、隱式提交及自動提交。下面分別說明這三種類型。(1)顯式提交用COMMIT語句直接完成的提交為顯式提交。其格式
25、為:SQLCOMMIT;(2)隱式提交用SQL語句間接完成的提交為隱式提交。這些命令是:ALTER,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,QUIT,REVOKE。(3)自動提交若把AUTOCOMMIT設(shè)置為ON,則在插入、修改、刪除語句執(zhí)行后,系統(tǒng)將自動進(jìn)行提交,這就是自動提交。其格式為:SQLSET AUTOCOMMIT ON;ROLLBACK語句ROLLBACK WORK TO SAVEPOINT:回退到某一點(diǎn)?;貪L語句使數(shù)據(jù)庫狀態(tài)回到上次最后提交事務(wù)的狀態(tài)。2.7 常用函數(shù)一個函數(shù)類似于一個算符,它操作數(shù)據(jù)項,返回一個結(jié)果。函數(shù)在格式上不同于
26、算符,它具有參數(shù),可操作0個、一個、二個或多個參數(shù),函數(shù)的形式為:函數(shù)名(參數(shù)1,參數(shù)2,)函數(shù)具有下列一般類形:單行函數(shù) 分組函數(shù)注意系統(tǒng)運(yùn)算表: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)系上傳者。文件的所有權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)銷售工作總結(jié)區(qū)域績效完成情況明年工作計劃
- 人資部部門年終總結(jié)人力資源規(guī)劃與實(shí)施
- 教師課程總結(jié)匯報提升教學(xué)質(zhì)量與反思教學(xué)過程
- 2025年中小學(xué)校黨建工作計劃2篇例文
- 2025年學(xué)校黨建工作計劃(工作要點(diǎn))5篇范文
- 2025年學(xué)校黨建工作計劃例文【3份】
- 初中英語知識點(diǎn)總結(jié):英語副詞精華講解
- 施工安全事故易發(fā)期
- 安全管理人員安全工作總結(jié)范文
- 初中英語重點(diǎn)語法:三大從句總結(jié)
- 鐵路廣場冰雪等極端天氣的安全應(yīng)急預(yù)案
- 安全培訓(xùn)資料:某公司職業(yè)病防治宣傳教育培訓(xùn)制度
- 初中英語最齊全的8大時態(tài)
- 硝酸使用安全和典型案例、對策
- 安全培訓(xùn)資料:某公司職業(yè)病危害事故處置與報告制度