資源描述:
《關系數(shù)據(jù)庫標準語言SQL語言》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、第四章關系數(shù)據(jù)庫標準語言SQL4.1SQL概述4.2數(shù)據(jù)定義4.3數(shù)據(jù)查詢4.4數(shù)據(jù)更新4.5視圖第四章關系數(shù)據(jù)庫標準語言SQL4.1SQL概述SQL(StructedQueryLanguage),即結構化查詢語言,是關系數(shù)據(jù)庫的標準語言,SQL是一個通用的、功能極強的關系數(shù)據(jù)庫語言。4.1.1SQL的產生與發(fā)展SQL是在1974年由Boycee和Chamberlin提出的,并在IBM公司研制的關系數(shù)據(jù)庫管理系統(tǒng)原型SystemR上實現(xiàn)。由于SQL簡單易學,功能豐富,深受用戶及計算機工業(yè)界歡迎,因此被數(shù)據(jù)庫廠商所采用。經各公司的不斷修改、擴充和完善,SQL得到業(yè)界的認可。1986年10月美
2、國國家標準局的數(shù)據(jù)庫委員會X3H2批準了SQL作為關系數(shù)據(jù)庫語言的美國標準。同年公布了SQL標準文本。1987年國際標準化組織也通過了這一標準。SQL標準從1986年公布以來隨著數(shù)據(jù)庫技術的發(fā)展不斷發(fā)展,不斷豐富。4.1.2SQL的特點一、綜合統(tǒng)一SQL集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,語言風格統(tǒng)一,可以獨立完成數(shù)據(jù)庫生命周期中的全部活動。二、高度非過程化SQL進行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑。存取路徑的選擇以及SQL的操作過程由系統(tǒng)自動完成。4.1.2SQL的特點三、面向集合的操作方式SQL采用面向集合的
3、操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。四、以同一種語法結構提供多種使用方式作為獨立語言,它能夠獨立地用于聯(lián)機交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對數(shù)據(jù)庫進行操作;作為嵌入式語言,SQL語句能夠嵌入到高級語言(例如C,C++,Java)程序中,供程序員設計程序時使用。4.1.2SQL的特點五、語言簡潔易學SQL功能極強,但由于設計巧妙,語言十分簡潔,完成核心功能只用了9個動詞。SQL接近英語口語,因此容易學習,容易使用。SQL功能動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)操縱INS
4、ERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOKE4.2數(shù)據(jù)定義4.2.1基本表的定義、刪除、與修改一、定義基本表CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束條件][,<列名><數(shù)據(jù)類型>[列級完整性約束條件]]…[,<表級完整性約束條件>]);4.2數(shù)據(jù)定義例:建立一個“學生”表Student。createtableStudent(snochar(9)primarykey,snamechar(20)unique,ssexchar(2),sagesmallint,sdeptchar(20));4.2數(shù)據(jù)定義例:建立一個“課程”表Course。crea
5、tetableCourse(cnochar(4)primarykey,cnamechar(40),cpnochar(4),ccreditsmallint,foreignkey(cpno)referencesCourse(cno));4.2數(shù)據(jù)定義例:建立學生選課表SC。createtableSC(snochar(9),cnochar(4),gradesmallint,foreignkey(sno)referencesstudent(sno),foreignkey(cno)referencescourse(cno))4.2數(shù)據(jù)定義4.2.2修改基本表ALTERTABLE<表名>[ADD<新列
6、名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>];4.2數(shù)據(jù)定義例:向Student表增加“入學時間”列,其數(shù)據(jù)類型為日期型。altertableStudentadds_entrancedatetime;例:將年齡的數(shù)據(jù)類型由smallint改為int。altertableStudentaltercolumnsageint;4.2數(shù)據(jù)定義例:增加課程名必須取唯一值的約束。altertablecourseaddunique(cname);4.2數(shù)據(jù)定義4.2.3刪除基本表DROPTABLE<表名>[RESTRICT
7、CASCADE]R
8、ESTRICT:該表的刪除是有限制條件的。欲刪除的基本表不能被其他表的約束所引用(如CHECK,FOREIGNKEY等約束),不能有視圖,不能有觸發(fā)器,不能有存儲過程或函數(shù)等。如果存在這些依賴該表的對象,則此表不能被刪除。CASCADE:該表的刪除沒有限制條件。在刪除基本表的同時,相關的依賴對象,例如視圖,都將被一起刪除。(SQLServer2000中不支持RESTRICT
9、CASCADE)4.2數(shù)據(jù)定義4.2.3索引的