資源描述:
《《數(shù)據(jù)庫語言SQL》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、4數(shù)據(jù)庫語言SQL本章目標本章主要介紹SQL語言的基本語法和使用方式,要求熟練掌握SQL語言的使用規(guī)則,能夠根據(jù)實際需求寫出能夠準確完成操作的SQL語句。4.1概述SQL的發(fā)展1974年,由Boyce和Chamberlin提出1975~1979,IBMSanJoseResearchLab的關系數(shù)據(jù)庫管理系統(tǒng)原型SystemR實施了這種語言SQL-86是第一個SQL標準SQL-89、SQL-92(SQL2)、SQL-99(SQL3)現(xiàn)狀大部分DBMS產(chǎn)品都支持SQL,成為操作數(shù)據(jù)庫的標準語言有方言,支持程度不同數(shù)據(jù)定義(DDL)定義、刪除、修改關系模式(基本表)
2、定義、刪除視圖(View)定義、刪除索引(Index)數(shù)據(jù)操縱(DML)數(shù)據(jù)查詢數(shù)據(jù)增、刪、改數(shù)據(jù)控制(DCL)用戶訪問權限的授予、收回4.1.1SQL的功能交互式SQL一般DBMS都提供聯(lián)機交互工具用戶可直接鍵入SQL命令對數(shù)據(jù)庫進行操作由DBMS來進行解釋嵌入式SQL能將SQL語句嵌入到高級語言(宿主語言)使應用程序充分利用SQL訪問數(shù)據(jù)庫的能力、宿主語言的過程處理能力一般需要預編譯,將嵌入的SQL語句轉化為宿主語言編譯器能處理的語句4.1.2SQL的形式數(shù)據(jù)定義Create、Drop、Alter數(shù)據(jù)操縱數(shù)據(jù)查詢:Select數(shù)據(jù)修改:Insert、Upd
3、ate、Delete數(shù)據(jù)控制Grant、Revoke4.1.3SQL的動詞數(shù)據(jù)查詢是數(shù)據(jù)庫應用的核心功能。基本結構:SelectA1,A2,...,AnFromr1,r2,...,rmWhereP4.2數(shù)據(jù)查詢SelectWhereFromπA1,A2,...,An(?p(r1×r1×...×rm))4.2.1Select語句的含義對From子句中的各關系,作笛卡兒積(×)對Where子句中的邏輯表達式進行選擇(σ)運算,找出符合條件的元組。根據(jù)Select子句中的屬性列表,對上述結果作投影(π)操作。查詢操作的對象是關系,結果還是一個關系,是一個結果集,是一
4、個動態(tài)數(shù)據(jù)集。4.2.2Select子句對應于關系代數(shù)的投影(π)運算,用以列出查詢結果集中的期望屬性。重復元組SQL具有包的特性Select子句的缺省情況是保留重復元組(ALL),可用Distinct去除重復元組SelectDistinctsdeptFromStudentSelectAllsdeptFromStudent去除重復元組:費時需要臨時表的支持*與屬性列表星號*表示所有屬性星號*:按關系模式中屬性的順序排列,并具有一定的邏輯數(shù)據(jù)獨立性顯式列出屬性名:按用戶順序排列Select*FromStudentSelectStudent.*,cno,grade
5、FromStudent,SCWhereStudent.sno=SC.sno更名為結果集中的某個屬性改名使結果集更具可讀性Selectsnoasstu_no,cnoascourse_no,gradeFromSCSelectsno,sname,2001-sageasbirthdayFromStudent4.2.3where子句where子句對應與關系代數(shù)中的選擇(σ)。查詢滿足指定條件的元組可以通過Where子句來實現(xiàn)。使where子句中的邏輯表達式返回True值的元組,是符合要求的元組,將被選擇出來。運算符比較:<、<=、>、>=、=、<>、not+~確定范圍:
6、BetweenAandB、NotBetweenAandB確定集合:IN、NOTIN字符匹配:LIKE,NOTLIKE空值:ISNULL、ISNOTNULL多重條件:AND、OR、NOTlike字符匹配:Like、NotLike通配符:%——匹配任意字符串_——匹配任意一個字符大小寫敏感列出姓張的學生的學號、姓名。Selectsno,snameFromStudentWheresnameLIKE‘張%’列出張姓且單名的學生的學號、姓名。Selectsno,snameFromStudentWheresnameLIKE‘張__’轉義符escape例:列出課程名稱中帶有
7、‘_’的課號及課名。Selectcno,cnameFromCourseWherecnameLIKE‘%_%’escape‘’4.2.4from子句From子句對應與關系代數(shù)中的笛卡兒積(×)列出將被掃描的關系(表)例:列出所有學生的學號、姓名、課號、成績。SelectSudent.sno,sname,SC.cno,gradeFromStudent,SCWhereStudent.sno=SC.sno元組變量為From子句中的關系定義元組變量方便關系名的引用在同一關系的笛卡兒積中進行辨別例:列出與95001同歲的同學的學號,姓名,年齡。SelectT.sno,
8、T.sname,T.sageFromS