《《數據庫系統(tǒng)原理教學》課件5》由會員分享,可在線閱讀,更多相關《《數據庫系統(tǒng)原理教學》課件5(36頁珍藏版)》請在裝配圖網上搜索。
1、,單擊此處編輯母版標題樣式,.,*,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,.,*,第,4,章,SQL,語言,4.1 SQL,語言概述,4.2,數據定義功能與約束,4.3,數據操縱功能,4.4,數據查詢功能與視圖,1,.,SQL,的功能與命令簡介,SQL,功能,命令動詞,數據定義,CREATE,DROP,ALTER,數據查詢,SELECT,數據操縱,INSERT,UPDATE,DELETE,數據控制,GRANT,REVOKE,2,.,插入數據,1,INSERT INTO ,(,),VALUES
2、,(值列表),插入時檢查數據完整性,中的列名必須是表定義中有的列名,值列表中的值可以是常量也可以是空值,各值之間用逗號分隔,3,.,插入數據,2,值列表中的值與列名表中的列按位置順序對應,它們的數據類型必須一致,如果,后邊沒有指明列名,則新插入記錄的值的順序必須與表中列的定義順序一致,且每一個列均有值(可以為空),4,.,CREATE TABLE,演員,(,姓名,char(20),工號,char(10),性別,char(2),PRIMARY KEY(,工號,),),5,.,CREATE TABLE,出演,(,工號,char(10),片名,char(60),年代,datetime,片酬,int,
3、PRIMARY KEY(,工號,片名,年代,),),6,.,INSERT,的使用,1,INSERT INTO,演員,(,工號,姓名,性別,),VALUE,S,(,A031,林青霞,女,),7,.,INSERT,的使用,2,在出演表中添加工號,A031,的演員在,1998-1-1,出演電影滾滾紅塵的記錄,片酬暫缺,INSERT,出演,(,工號,年代,片名,),VALUES(A031,1998-1-1,滾滾紅塵,),在創(chuàng)建表時需要聲明片酬允許為空!,8,.,INSERT,的使用,3,在出演表中添加工號,A031,的演員在,1998-1-1,出演電影滾滾紅塵的記錄,片酬暫缺,INSERT,出演,VA
4、LUES(A031,滾滾紅塵,1998-1-1,NULL),9,.,插入子查詢結果,1,對每一個系,求學生的平均年齡,并把結果存入數據庫,建表如下,CREATE TABLE Dept_age,(Sdept CHAR(15)/*,系名*,/,Avg_age SMALLINT),;,/*,學生平均年齡*,/,10,.,插入子查詢結果,2,INSERT,INTO Dept_age(Sdept,,,Avg_age),SELECT Sdept,,,AVG(Sage),FROM Student,GROUP BY Sdept,SELECT,子句目標列必須與,INTO,子句匹配,值的個數,值的類型,11,.,
5、更新數據,UPDATE,SET ,n,WHERE,SET,子句指定要修改的列,表達式指定修改后的新值,WHERE,子句用于指定需要修改表中的哪些記錄。如果省略,WHERE,子句,則是無條件更新,表示要修改,SET,中指定的列的全部值,12,.,姓名,工號,性別,王菲,A010,女,寧靜,A120,女,梁朝偉,A231,男,葛優(yōu),A751,男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A
6、751,不見不散,1998,120k,演員,電影,出演,13,.,UPDATE,的使用,1,將出演表中的片酬設為,50k,UPDATE,出演,SET,片酬,50000,14,.,有條件的更新,1,將,A120,出演紅河谷的片酬設為,50k,15,.,姓名,工號,性別,王菲,A010,女,寧靜,A120,女,梁朝偉,A231,男,葛優(yōu),A751,男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100
7、k,A751,不見不散,1998,120k,演員,電影,出演,50000,16,.,有條件的更新,1,將,A120,出演紅河谷的片酬設為,50k,UPDATE,出演,SET,片酬,50000,WHERE,工號,A120 AND,片名紅河谷,17,.,有條件的更新,2,如果寧靜出演電影的片酬記錄為空,那么將該片酬設為,50k,18,.,姓名,工號,性別,王菲,A010,女,寧靜,A120,女,梁朝偉,A231,男,葛優(yōu),A751,男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,
8、年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A751,不見不散,1998,120k,演員,電影,出演,50000,19,.,有條件的更新,2,如果寧靜出演電影的片酬記錄為空,那么將該片酬設為,50k,UPDATE,出演,SET,片酬,=50000,FROM,演員,出演,WHERE,演員,.,姓名,=,寧靜,AND,出演,.,工號,=,演員,.,工號,AND,片酬,IS NULL,20,.,有條件的更新,3,如果寧靜出演電影的片酬記錄為空,那么將該片酬設為,50k,UPDATE,出演,SET,片酬,=50000,WHERE,片酬,IS NULL AN
9、D,工號,IN,(SELECT,工號,FROM,演員,WHERE,姓名,=,寧靜,),21,.,刪除數據,DELETE FROM ,WHERE,說明了要刪除哪個表中的數據,WHERE,子句說明要刪除表中的哪些記錄。如果省略,WHERE,子句,則是無條件刪除,表示要刪除表中的全部記錄。,22,.,DELETE,的使用,1,刪除所有的出演記錄,DELETE FROM,出演,置為空表,23,.,DELETE,的使用,2,刪除,1998,年拍攝紅河谷的所有出演記錄,DELETE FROM,出演,WHERE,出演,.,片名,=,紅河谷,AND,出演,.,年代,=1998,24,.,有條件的刪除,刪除馮小
10、剛導演的電影的出演記錄,25,.,姓名,工號,性別,王菲,A010,女,寧靜,A120,女,梁朝偉,A231,男,葛優(yōu),A751,男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A751,不見不散,1998,120k,演員,電影,出演,26,.,有條件的刪除,刪除馮小剛導演的電影的出演記錄,DELETE FROM,出演,FROM,出演,電影,WHERE,導演,=,馮小剛,AND,出演,.
11、,片名,=,電影,.,片名,AND,出演,.,年代,=,電影,.,年代,27,.,外碼約束對數據操縱的影響,插入異常,更新異常,刪除異常,28,.,CREATE TABLE,演員,(,姓名,char(20),工號,char(10),性別,char(2),PRIMARY KEY(,工號,),),29,.,CREATE TABLE,出演,(,工號,char(10),片名,char(60),年代,datetime,片酬,int NULL,PRIMARY KEY(,工號,片名,年代,),FOREIGN KEY (,工號,)REFERENCES,演員,(,工號,),FOREIGN KEY (,片名,年代
12、,)REFERENCES,電影,(,片名,年代,),),30,.,插入異常的例子,在出演表中添加工號,A430,的演員在,1998-1-1,出演電影不見不散的記錄,片酬暫缺,31,.,工號,姓名,性別,A010,王菲,女,A120,寧靜,女,A231,梁朝偉,男,A751,葛優(yōu),男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A751,不見不散,1998,120k,演員,電影,出演,A4
13、30,不見不散,1998,NULL,A430?,32,.,刪除異常的例子,在演員表中刪除工號,A751,的演員記錄,33,.,工號,姓名,性別,A010,王菲,女,A120,寧靜,女,A231,梁朝偉,男,A751,葛優(yōu),男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A751,不見不散,1998,120k,演員,電影,出演,A751?,34,.,更新異常的例子,將演員表中的工號,A751,修改為,B751,35,.,工號,姓名,性別,A010,王菲,女,A120,寧靜,女,A231,梁朝偉,男,A751,葛優(yōu),男,片名,導演,年代,重慶森林,王家衛(wèi),1994,紅河谷,馮小寧,1998,不見不散,馮小剛,1998,花樣年華,王家衛(wèi),2000,黑駿馬,管虎,2000,工號,片名,年代,片酬,A120,紅河谷,1998,NULL,A231,花樣年華,2000,100k,A751,不見不散,1998,120k,演員,電影,出演,B751,A751?,36,.,