資源描述:
《關(guān)系數(shù)據(jù)庫語言SQL.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、關(guān)系數(shù)據(jù)庫語言SQL本章主要內(nèi)容SQL的主要功能SQL的數(shù)據(jù)定義功能SQL的數(shù)據(jù)操縱功能用戶訪問數(shù)據(jù)庫必須通過DBMS進(jìn)行;DBMS必須向用戶提供訪問數(shù)據(jù)庫的語言,用戶使用這些語言構(gòu)成相應(yīng)的命令;用戶向DBMS提交命令,DBMS執(zhí)行命令;DBMS將執(zhí)行命令后得到的結(jié)果返回給用戶。用戶DBMSDB現(xiàn)在,所有關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)提供給用戶訪問數(shù)據(jù)庫的語言是SQL;SQL——StructuredQueryLanguage——結(jié)構(gòu)化查詢語言SQL不僅提供了對(duì)數(shù)據(jù)查詢的語言,而且還提供了數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)
2、控制等語言。SQL概述SQL是最通用的關(guān)系數(shù)據(jù)庫操作語言。在1986年被ANSI確認(rèn)為是關(guān)系數(shù)據(jù)庫語言,并發(fā)布了一種SQL86標(biāo)準(zhǔn),之后又推出了SQL89、SQL92標(biāo)準(zhǔn),現(xiàn)正制定SQL3標(biāo)準(zhǔn)。市場(chǎng)上所有RDBMS都支持SQL標(biāo)準(zhǔn),但又根據(jù)需要進(jìn)行了擴(kuò)充。MicroSoft公司對(duì)標(biāo)準(zhǔn)SQL也進(jìn)行了擴(kuò)展,推出了自己的Transact_SQL,簡(jiǎn)稱T_SQL。SQL語言分為三種子語言,分別是:數(shù)據(jù)定義語言(DDL)用于定義數(shù)據(jù)庫、表、視圖等。主要有CREATE、ALTER、DROP語句。數(shù)據(jù)操縱語言(DML)用于插入、
3、修改、刪除和查詢數(shù)據(jù)。主要有:INSERT、DELETE、UPDATE、SELECT語句。數(shù)據(jù)控制語言(DCL)用于管理數(shù)據(jù)庫用戶對(duì)數(shù)據(jù)庫中表、視圖等的使用權(quán)限。主要有GRANT、REVOKE語句。SQL功能動(dòng)詞數(shù)據(jù)查詢SELECT數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)控制GRANT,REVOKE數(shù)據(jù)定義1定義數(shù)據(jù)庫CREATEDATABASE<數(shù)據(jù)庫名>[參數(shù)1,…參數(shù)n](1)CREATEDATABASE為關(guān)鍵字。(2)尖括號(hào)“<>”這部分,表示是不可省略
4、的。(3)中括號(hào)“[]”這部分,表示是可省略的。如語法中“[參數(shù)1…參數(shù)n]”表示這些參數(shù)能省略。【例1】創(chuàng)建一個(gè)學(xué)生選課數(shù)據(jù)庫,取名為StudentsInfoCREATEDATABASEStudentsInfo刪除數(shù)據(jù)庫DROPDATABASE<數(shù)據(jù)庫名>[,...n]數(shù)據(jù)庫正在使用、正在被恢復(fù)時(shí)不能被刪除刪除數(shù)據(jù)庫后,與此數(shù)據(jù)庫有關(guān)聯(lián)的數(shù)據(jù)庫文件和事務(wù)日志文件、存儲(chǔ)在系統(tǒng)數(shù)據(jù)庫中的關(guān)于該數(shù)據(jù)庫的所有信息都會(huì)被刪除定義表結(jié)構(gòu)表結(jié)構(gòu):定義表由幾個(gè)列組成,每個(gè)列的列名是什么、該列中存放什么樣的數(shù)據(jù)(由數(shù)據(jù)類型決定)、
5、該列的長度是多少、列中存放的數(shù)據(jù)有什么樣的約束、表中各列之間有什么樣的約束等。語法:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級(jí)完整性約束][,…n][,…n][,表級(jí)完整性約束[,…n]])語句說明:(1)<表名>用戶給定的標(biāo)識(shí)符。即所要定義的表名。表名最好取有意義的名字,如Students,做到見名知意;同一個(gè)數(shù)據(jù)庫中,表名不允許同名。(2)<列名>用戶給定的列名,最好取有意義的列名,如Sno,Cno,做到見名知意。(3)<數(shù)據(jù)類型>:指定該列存放數(shù)據(jù)的數(shù)據(jù)類型。各RDBMS所提供的數(shù)據(jù)類型略有不
6、同語句舉例【例2】要在當(dāng)前數(shù)據(jù)庫StudentsInfo中的定義一個(gè)表,表名為Students,表中各列的要求見表3-1。CREATETABLEStudents(SnoCHAR(10)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR(1)NOTNULLCHECK(Ssex='F'ORSsex='M'),SageINTNULLSdeptCHAR(20)DEFAULT'Computer')定義該表的SQL語句:【例3】要在當(dāng)前數(shù)據(jù)庫StudentsInfo中的加入Courses表,表中各列
7、的要求見表3-2。CREATETABLECourses(CnoCHAR(6)PRIMARYKEY,CnameCHAR(20)NOTNULL,PreCnoCHAR(6),CreditsINT)定義該表的SQL語句:【例4】要在當(dāng)前數(shù)據(jù)庫StudentsInfo中的加入grade表,表中各列的要求見表3-3。CREATETABLEgrade(SnoCHAR(10)NOTNULLREFERENCESStudents(Sno),CnoCHAR(6)NOTNULLREFERENCESCourses(Cno),GradeINT
8、,PRIMARYKEY(Sno,Cno))數(shù)據(jù)查詢數(shù)據(jù)查詢用來描述怎樣從數(shù)據(jù)庫中獲取所需的數(shù)據(jù)。數(shù)據(jù)查詢用到的語句就是查詢語句,即SELECT語句,它是數(shù)據(jù)庫操作中最基本、最重要的語句之一。SELECT語句的功能就是從一個(gè)或多個(gè)表或視圖(一種虛擬表)中查到滿足條件的數(shù)據(jù)。它的數(shù)據(jù)源是表或視圖,而結(jié)果是另一個(gè)表。查詢語句基本結(jié)構(gòu)語法:SELECT<目標(biāo)列名表>