Tong Quan Ve Cac Ngon Ngu Sql

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tong Quan Ve Cac Ngon Ngu Sql as PDF for free.

More details

  • Words: 3,148
  • Pages: 17
Tæng quan vÒ ng«n ng÷ sql

1

I_Giíi thiÖu chung vÒ SQL 1>.SQL lµ g×? -SQL lµ viÕt t¾t cña Structure Query Language,nã lµ mét c«ng cô qu¶n lý d÷ liÖu ®îc sö dông phæ biÕn ë nhiÒu lÜnh vùc .HÇu hÕt c¸c ng«n ng÷ bËc cao ®Òu cã tr×nh hç trî SQL nh Visual BASic,Oracle,Visual C... Trong Oracle tÊt c¶ c¸c ch¬ng tr×nh vµ ngêi sö dông ph¶i sö dông SQL ®Ó truy nhËp vµo d÷ liÖu trong CSDL cña Oracle. C¸c ch¬ng tr×nh øng dông vµ c¸c c«ng cô Oracle cho phÐp ngêi sö dông truy nhËp tíi CSDL mµ kh«ng cÇn sö dông trùc tiÕp SQL. Nhng nh÷ng øng dông ®ã khi ch¹y ph¶i sö dông SQL. 2>.LÞch sö ph¸t triÓn: -SQL ®îc ph¸t triÓn tõ ng«n ng÷ SEQUEL2 bëi IBM theo m« h×nh Codd t¹i trung t©m nghiªn cøu cña IBM ë California ,vµo nh÷ng n¨m 70 cho hÖ thèng QTCSDL lín. -§Çu tiªn SQL ®îc sö dông trong c¸c ng«n ng÷ qu¶n lý CSDL vµ ch¹y trªn c¸c m¸y ®¬n lÎ. Song do sù ph¸t triÓn nhanh chãng cña nhu cÇu x©y dùng nh÷ng CSDL lín theo m« h×nh kh¸ch chñ( trong m« h×nh nµy toµn bé CSDL ®îc tËp trung trªn m¸y chñ (Server)). Mäi thao t¸c xö lý d÷ liÖu ®îc thùc hiÖn trªn m¸y chñ b»ng c¸c lÖnh SQL m¸y tr¹m chØ dïng ®Ó cËp nhËp hoÆc lÊy th«ng tin tõ m¸y chñ). Ngµy nay Ph¹m Minh Quý - Database

1

Tæng quan vÒ ng«n ng÷ sql

2

trong c¸c ng«n ng÷ lËp tr×nh bËc cao ®Òu cã sù trî gióp cña SQL. NhÊt lµ trong lÜnh vùc ph¸t triÓn cña Internet ng«n ng÷ SQL cµng ®ãng vai trß quan träng h¬n. Nã ®îc sö dông ®Ó nhanh chãng t¹o c¸c trang Web ®éng.. SQL ®· ®îc viÖn tiªu chuÈn quèc gia Mü (ANSI)vµ tæ chøc tiªu chuÈn quèc tÕ (ISO) chÊp nhËn nh mét ng«n ng÷ chuÈn cho CSDL quan hÖ .Nhng cho ®Õn nay chuÈn nµy cha ®a ra ®ñ 100%.Nªn c¸c SQL nhóng trong c¸c ng«n ng÷ lËp tr×nh kh¸c nhau ®· ®îc bæ xung më réng cho SQL chuÈn cho phï hîp víi c¸c øng dông cña m×nh.Do vËy cã sù kh¸c nhau râ rµng gi· c¸c SQL. 3>.§Æc ®iÓm cña SQL vµ ®èi tîng lµm viÖc: a>§Æc ®iÓm: -SQL lµ ng«n ng÷ tùa tiÕng Anh. -SQL lµ ng«n ng÷ phi thñ tôc,Nã kh«ng yªu cÇu ta c¸ch thøc truy nhËp CSDL nh thÕ nµo TÊt c¶ c¸c th«ng b¸o cña SQL ®Òu rÊt dÔ sö dông vµ Ýt kh¶ n¨ng m¾c lçi . -SQL cung cÊp tËp lÖnh phong phó cho c¸c c«ng viÖc hái ®¸p DL +ChÌn,cËp nhËt ,xo¸ c¸c hµng trong mét quan hÖ +T¹o,söa ®æi,thªm vµ xo¸ c¸c ®èi tîng trong cña CSDL. +§iÒu khiÓn viÖc truy nhËp tíi c¬ së d÷ liÖu vµ c¸c ®èi tîng cña CSDL ®Ó ®¶m

Ph¹m Minh Quý - Database

2

Tæng quan vÒ ng«n ng÷ sql

3

b¶o tÝnh b¶o mËt cña c¬ së DL +®¶m b¶o tÝnh nhÊt qu¸n vµ sù rµng buéc cña CSDL. -Yªu cÇu duy nhÊt ®Ó sö dông cho c¸c hái ®¸p lµ ph¶i n¾m v÷ng ®îc c¸c cÊu tróc CSDL cña m×nh. b>§èi tîng lµm viÖc cña SQL: -Lµ c¸c b¶ng ( tæng qu¸t lµ c¸c quan hÖ )d÷ liÖu hai chiªï .C¸c b¶ng nµy bao gåm mét hoÆc nhiÒu cét vµ hµng.C¸c cét gäi lµ c¸c trêng ,c¸c hµng gäi lµ c¸c b¶n ghi.Cét víi tªn gäi vµ kiÓu d÷ liÖu (kiÓu dl cña mçi cét lµ duy nhÊt)x¸c ®Þnh t¹o nªn cÊu tróc cña b¶ng (Ta cã thÓ dïng lÖnh Desc[ribe] TABLE-name ®Ó xem cÊu tróc cña b¶ng ,phÇn tuú chän[] cã thÓ ®îc bá trong Oracle).Khi b¶ng ®· ®îc tæ chøc hÖ thèng cho mét môc ®Ých nµo ®ã cã mét CSDL 4>.C¸c kiÓu d÷ liÖu c¬ b¶n cña SQL: -Integer:Sè nguyªn:-2147483648 ®Õn 2147483647 -Smallinteger:-32768 ®Õn 32767 -Number(n,p):sè thËp ph©n ®é dµi tèi ®a lµ n kÓ c¶ p ch÷ sè thËp ph©n(kh«ng tÝnh dÊu chÊm). -char (n):x©u cã ®é dµI cè ®Þnh lµ n n<=255 -varchar(n):x©u cã ®é dµI biÕn ®æi (0-:-n) -long varchar :x©u cã ®é dµi kh«ng cè ®Þnh,®é dµi cã thÓ thay ®æi 4Kb-:-32Kb -Date:D÷ liÖu kiÓu ngµy. Ph¹m Minh Quý - Database

3

Tæng quan vÒ ng«n ng÷ sql

4

II_Giíi thiÖu c¸c tËp lÖnh c¬ b¶n cña SQL: -TËp lÖnh SELECT:§©y lµ lÖnh thêng ®îc dïng nhiÒu nhÊt trong CSDL ,nã thêng ®îc sö dông ®Ó nhËn d÷ liÖu tõ CSDL. -TËp lÖnh INSERT,UPDATE,DELETE:c¸c lÖnh nµy thêng hay ®îc dïng ®Ó vµo mét hµng míi,söa ®æi hay xo¸ bá c¸c hµng ®· tån t¹i trong c¸c quan hÖ cña CSDL. -TËp lÖnh CREATE,ALTER,DROP:Ba lÖnh nµy dïng ®Ó t¹o,thay ®æi,xo¸ bá bÊt kú cÊu tróc d÷ liÖu nµo cña c¸c quan hÖ nh b¶ng ,VIEW,INDEX.. -TËp lÖnh GRANT,REVOKE:Hai lÖnh nµy ®îc sö dông ®Ó cho phÐp quyÒn truy nhËp hay kh«ng cho phÐp quyÒn truy nhËp tíi CSDL cña Oracle vµ cÊu tróc bªn trong nã. Trong phÇn giíi thiÖu c¸c tËp lÖnh nµy ta dïng ba b¶ng quan hÖ sau lµm vÝ dô minh ho¹: R1(Nh©n viªn) (#NV,Ho_tªn,Nsinh,nghÒ nghiÖp,§×a chØ,l¬ng) R2(Liªn kÕt) (#NV,#MP) R3(phong) (#Mp,Tªn_phong,tel) 1>LÖnh SELECT: *MÖnh ®Ò SELECT t¬ng øng víi to¸n tö project(phÐp chiÕu π) cña ®¹i sè quan hÖ.Nã ®îc dïng ®Ó t¹o danh s¸ch c¸c thuéc tÝnh mµ ta mong muèn.Khèi lÖnh SELECT gåm cã ba mÖnh ®Ò chÝnh: +SELECT:x¸c ®Þnh néi dung cña c¸c cét cÊn ®a ra. Ph¹m Minh Quý - Database

4

Tæng quan vÒ ng«n ng÷ sql

5

+FROM:danh s¸ch c¸c quan hÖ ®îc quÐt qua +WHERE:øng víi mét kh¼ng ®Þnh lùa chän cña ®¹I sè quan hÖ.Nã lµ mét kh¼ng ®Þnh liªn quan ®Õn c¸c thuéc tÝnh cña quan hÖ xuÊt hiÖn trong mÖnh ®Ò FROM: -Mét hái ®¸p cu¶ SELECT thêng cã d¹ng: SELECT [distinct]*/A1..An FROM r1..rm [WHERE p]; Trong ®ã : Ai lµ c¸c thuéc tÝnh rj lµ c¸c quan hÖ (cã thÓ lµ c¸c TABLEs,VIEWs..)Ta cã thÓ dïng c¸c bÝ danh cho c¸c Ai,rj. p:lµ ®IÒu kiÖn rµng buéc. ë ®©y WHERE cã thÓ cã hoÆc kh«ng. Dïng *®Ó chØ tÊt c¶ c¸c thuéc tÝnh cña c¸c quan hÖ ®îc chän -Hái ®¸p nµy tong ®¬ng víi biÓu diÔn sau trong quan hÖ: πA1..An[S p(r1..rm)] -§Ó lo¹i bá c¸c bé gi¸ trÞ (c¸c hµng) trïng nhau ta thªm tõ kho¸ Distinct vµo sau SELECT (tríc ®©y SQL thªm tõ kho¸ unique). -Trong kh¼ng ®Þnh p:ta cã thÓ dïng c¸c liªn tõ logic and,or,not khi kÕt hîp nhiÒu ®iÒu kiÖn VD1:§Ó hiÖn c¸c th«ng tin vÒ mét nh©n viªn nµo ®ã gåm(#,Hä_tªn,N_sinh,Chøc_vô,®Þa_chØ,l¬ng) SELECT Distinc * FROM R1; Ph¹m Minh Quý - Database

5

Tæng quan vÒ ng«n ng÷ sql

6

*§a ra (hä_tªn,Nsinh,chøc_vô,®Þa_chØ,l¬ng,tªn_phßng) víi ®IÒu kiÖn l¬ng>500.000 vµ ®ia_chØ kh«ng ë Hµ néi SELECT Ho_tªn,Nsinhn,chøc_vô,®Þa_chØ,l¬ng,tªn_phßng FROM Nh©nviªn R1,Liªnkªt R2,Phong R3 WHERE (R1.l¬ng>500.000) and (not R1.®Þa_chØ=’Hµ néi’) and (R1.#NV=R2.#NV) and (R2.#MP=R3.#MP); -Trong lÖnh trªn ta ®· dïng R1,R2,R3 lµm bÝ danh cho Nh©nviªn, Liªnkªt,Phong C¸c bÝ danh ®ã chØ cã t¸c dông trong mét c©u lÖnh C¸c vÝ dô sau nµy ta dïng R1,R2,R3 ®Ó thay cho c¸c b¶ng trªn cho gän Cã 4 to¸n tö hay ®îc dïng víi c¸c kiÓu d÷ liÖu.Trong mÖnh ®Ò WHERE lµ: In (not In) Between..and..(not between..) Like(not like) Is null (not is Null). +To¸n tö In (not In):dïng ®Ó kiÓm tra gi¸ trÞ trong(kh«ng n»m trong) mét danh s¸ch ®îc chØ ra. VÝ d ô :®a ra nh÷ng ngêi cã ®ia_chØ ë Hµ néi vµ Hµ t©y. SELECT * FROM R1 WHERE ®ia_chØ in (‘Hµ néi’,’Hµ t©y’); Ph¹m Minh Quý - Database

6

Tæng quan vÒ ng«n ng÷ sql

7

+To¸n tö Between..and..(not ..) : kiÓm tra gi¸ trÞ n»m gi÷a (kh«ng n»m gi÷a) mét ph¹m vi ®îc chØ ra. VD :®a ra nh÷ng ngêi cã l¬ng n»m trong kho¶ng (500.000-:-1.000.000). SELECT * FROM R1 WHERE l¬ng between 500.000 and 1.000.000; +To¸n tö like (not like):dïng ®Ó kiÓm tra nh÷ng gi¸ trÞ gièng (kh«ng gièng) víi gi¸ tri sau like,thêng sö dông víi x©u ký tù vµ khi ta kh«ng biÕt chÝnh x¸c gi¸ trÞ cÇn t×m kiÕm hoÆc gi¸ trÞ cÇn t×m kiÕm gièng mét mÉu nµo ®ã.Trong SQL ngêi ta sö dông ký hiÖu % cho x©u con vµ ‘_’cho 1 ký tù bÊt kú. VD:T×m nh÷ng ngêi cã tªn mµ cã ký tù ®Çu tiªn bÊt kú,ký tù tiÒp theo lµ OA vµ tiÕp theo lµ d·y ký tù bÊt kú: SELECT *FROM R1 WHERE hoten=’_OA%’; +To¸n tö Is Null (not is Null):kiÓm tra cho c¸c gi¸ trÞ rçng (kh«ng rçng); VD:§a ra tÊt c¶ nh÷ng nh©n viªn mµ ®· cËp nhËt ®Þa chØ SELECT *FROM R1 WHERE Dia_chi Not Is Null; -C¸c hµm hay ®îc sö dông trong mÖnh ®Ò SELECT: +AVG:tÝnh gi¸ trÞ trung b×nh cña mét hoÆc nhiÒu trêng bá qua c¸c gi¸ trÞ rçng. VD:tÝnh l¬ng TB cña c¬ quan: SELECT AVG(l¬ng) FROM R1; Ph¹m Minh Quý - Database

7

Tæng quan vÒ ng«n ng÷ sql

8

+Count:®îc dïng ®Ó ®Õm c¸c bé (hµng) VD:§IÓm tæng sè b¶n ghi tõ R1 cã long>500.000 SELECT count(*) FROM R1 WHERE l¬ng>500.000 +Hµm Max:t×m gi¸ trÞ lín nhÊt cña biÓu thøc: VD:t×m ngêi cã l¬ng lín nh¸t trong R1 cã ®Þa chØ ë Hµ T©y SELECT Max(l¬ng) FROM R1 WHERE ®Þa_chØ=’Hµ_t©y’; +Hµm Min:t×m gi¸ trÞ nhá nhÊt cña biÓu thøc: VD:t×m ngêi cã l¬ng nhá nh¸t trong R1 cã ®Þa chØ ë Hµ T©y SELECT Min(l¬ng) FROM R1 WHERE ®Þa_chØ=’Hµ_t©y’; +Hµm Sum:tÝnh tæng gi¸ trÞ bá qua gi¸ trÞ rçng. VD:TÝnh tæng l¬ngcña c¬ quan SELECT Sum(l¬ng) FROM R1; -NgoµI 3 mÖnh ®Ò chÝnh trªn ta cßn cã thÓ : +T×m kiÕm theo nhãm nhê mÖnh ®Ò GROUP BY®îc sö dông®Ó ph©n chia c¸c bé thµnh c¸c nhãm nhá . VD:§a ra danh s¸ch c¸c nh©n viªn theo nhãm ®Þa chØ SELECT *FROM R1 Group by §ia_chØ; Thêng ®i víi mÖnh ®Ò Group by lµ mÖnh ®Ò Having by sö dông ®Ó chØ ra nh÷ng h¹n chÕ cña c¸c nhãm ®îc hiÓn thÞ.Chó ý r»ng mÖnh ®Ò Having by chØ ®i víi Group by vµ ®iÒu Ph¹m Minh Quý - Database

8

Tæng quan vÒ ng«n ng÷ sql

9

kiÖn cña nã chØ t¸c ®éng ®Õn tõng nhãm b¶n ghi ®îc chØ ra ë mÖnh ®Ò Group by chø kh«ng t¸c ®éng ®Õn toµn b¶ng. VD: §a ra danh s¸ch c¸c nhãm nh©n viªn cïng chøc vô vµ cã l¬ng >500.000 SELECT * FROM R1 Group by chøc_vô Having by l¬ng>500.000 -S¾p xÕp theo mét hoÆc nhiÒu trêng ta dïng mÖnh ®Ò ORDER BY (colum1/[ASc|Desc] ..) +ASc s¾p xÕp theo chiÒu t¨ng (ngÇm ®Þnh) +Desc s¾p xÕp theo chiÒu gi¶m VD S¾p xÕp nh©n viªn theo chiÒu gi¶m theo l¬ng ,nÕu cïng møc l¬ng th× theo s¾p xÕp theo chiÒu xÕp theo chiÒu t¨ng ho_tªn SELECT * FROM R1 ORDER BY l¬ng/Desc,ho_tªn; 2>Nhãm lÖnh INSERT,UPDATE,DELETE: *INSERT: Dïng ®Ó chÌn dl vµo mét quan hÖ chóng ta cã thÓ t¹o ra 1 bé ®Ó chÌn vµo hoÆc mét tËp c¸c bé tõ hái ®¸p SELECT ®Ó chÌn vµo Có ph¸p cña lÖnh: INSERT INTO R[A1..An] VALUES(vl1..) VD:chÌn 1 hµng (‘020’,’NguyÔn träng NghÜa’,B¶o vÖ’,’Hµ néi’,’800.000’)vµo R1 INSERT INTO R1 VALUES Ph¹m Minh Quý - Database

9

Tæng quan vÒ ng«n ng÷ sql

10

(‘020’,’NguyÔn träng NghÜa’,B¶o vÖ’,’Hµ néi’,800.000); *UPDATE Dïng ®Ó sö ®æi gi¸ trÞ cña mét ho¨c nhiÒu bé ®· tån t¹i trong quan hÖ có ph¸p cu¶ lÖnh UPDATE R SET..[WHERE p] VD:-l¬ng cña tÊt c¶ c¸c nh©n viªn cña c¬ quan cïng t¨ng 5% UPDATE R1 SET l¬ng=l¬ng*1,05 -chØ t¨ng l¬ng cña nh÷ng ngêi cã l¬ng<500.000 vµ t¨ng 10% UPDATE R1 SET l¬ng=l¬ng*1,1 WHERE l¬ng<500.000 *DELETE: Dïng ®Ó xo¸ bá 1 hoÆc nhiÒu bé trong quan hÖ Có ph¸p: DELETE FROM R[WHERE P] nh÷ng bé nµo tho¶ m·n ®k P th× míi bÞ huû bá khái quan hÖ R VD: DELETE FROM R1 WHERE ng_sinh>’01-011935’; Xo¸ bá tÊt c¶ c¸c nh©n viªn ta dïng lÖnh DELETE FROM R1; Chó ý:lÖnh DELETE chØ thao t¸c víi 1 quan hÖ.Muèn huû c¸c bé tõ nhiÒu quan hÖ ta dïng DELETE cho mçi quan hÖ.LÖnh DELETE chØ ®¸nh dÊu c¸c b¶n ghi chø cha thùc sù xo¸ h¼n ,ta cã thÓ kh«i phôc l¹i ®îc .§Ó xo¸ h¼n ta Ph¹m Minh Quý - Database

10

Tæng quan vÒ ng«n ng÷ sql

11

dung lÖnh COMMIT ,khi ®· ra lÖnh nµy ta kh«ng thÓ kh«i phôc l¹i ®îc n÷a .Khi cha ra lÖnh COMMIT ta cã thÓ kh«i phôc l¹i b»ng c¸ch dïng lÖnh ROLLBACK. 3>Nhãm lÖnh CREATE,ALTER,DROP: a>LÖnh CREATE LÖnh nµy dïng ®Ó t¹o ra c¸c quan hÖ nh TABLE,VIEW,INDEX *CREATE TABLE -B¶ng lµ mét cÊu tróc c¬ b¶n ®Ó cÊt gi÷ trong hÖ thèng quan hÖ.Cã khu«n d¹ng hai chiÒu gåm cã c¸c cét vµ hµng.Nãlµ yÕu tè c¬ b¶n cho c¸c thao t¸c kh¸c nhau.Cã thÓ nãi viÖc t¹o b¶ng lµ bíc ®Çu tiªn quan träng nhÊt ®Ó thiÕt lËp CSDL. -Có ph¸p cña lÖnh nµy: CREATE TABLE table-name(colom_name type(size)..) Khi t¹o ra b¶ng chóng ta ph¶i chØ ra kiÓu d÷ liÖu cña cét vµ mçi cét chØ cã thÓ cã m«t kiÓu d÷ liªô duy nhÊt.Khi t¹o b¶ng ta cã thÓ ®a ra c¸c rµng buéc C¸c rµng buéc cña c¸c trêng cã thÓ lµ : primary key,foreign ket ,unique,not null ... VD:t¹o b¶ng nh©n viªn CREATE TABLE NHAN_VIEN (#NV varchar(4) constraint NV_Primary key,ho_tªn Varchar(25),Ng_sinh date,chøcvô varchar(20),®ia_chØ varchar(30).l¬ng number(7)); Ph¹m Minh Quý - Database

11

Tæng quan vÒ ng«n ng÷ sql

12

trong VD trªn ta t¹o ra mét rµng buéc lµ #NV ®îc ®Þnh nghÜa lµ primary key -Ta còng cã thÓ t¹o ra b¶ng míi víi cÊu tróc vµ d÷ liÖu tõ 1 b¶ng kh¸c. Có ph¸p: CREATE TABLE TABLE_name[(colum_name..)]AS SELECT statement; VD:t¹o ra 1 b¶ng míi cã tªn lµ NVN (#NV,hä_tªn) tõ b¶ng NHAN_VIEN CREATE TABLE NVN AS SELECT #NV,hä_tªn FROM NHAN_VIEN; *CREATE VIEW: -VIEWs gièng nh nh÷ng window mµ th«ng qua nh÷ng window nµy d÷ liÖu cã thÓ ®îc xem hoÆc thay ®æi. Nã cã thÓ ®îc t¹o ra dùa trªn mét hay nhiÒu b¶ng trong CSDL.Nã lµ mét b¶ng ¶o kh«ng tån t¹i thùc sù trong CSDL.Nhng nã cã thÓ ®îc truy nhËp nh lµ c¸c b¶ng th«ng thêng.Ta cã thÓ nhËn ®îc c¸c hµng tõ VIEW víi c¸c lÖnh SELECT vµ trong hÇu hÕt c¸c trêng hîp cña viÖc UPDATE,INSERT,DELETE hµng tõ CSDL th«ng qua VIEW.Cã mét vµI trêng hîp kh«ng cho phÐp UPDATE tõ CSDL. -ViÖc sö dông VIEW cã rÊt nhiÒu h÷u Ých trong viÖc: +H¹n chÕ viÖc truy nhËp CSDL .SELECT tõ mét VIEW cã thÓ hiÓn thÞ phÇn h¹n chÕ cña CSDL mét c¸ch nhanh chãng. Ph¹m Minh Quý - Database

12

Tæng quan vÒ ng«n ng÷ sql

13

+Cho phÐp ngêi dïng t¹o ra nh÷ng hái ®¸p ®¬n gi¶n ®Ó nhËn ®îc kÕt qu¶ tõ nh÷ng hái ®¸p phøc t¹p mµ kh«ng cÇn biÕt c¸ch thøc nèi c¸c b¶ng nh thÕ nµo. +Cung cÊp c¸c phÇn tö d÷ liÖu ®éc lËp cho ngêi sö dông vµ c¸c chong tr×nh viÕt øng dông dÉn ®Õn ®¶m b¶o cho viÖc b¶o mËt d÷ liÖu ,che dÊu d÷ liÖu nµo ®ã khái mét user nµo ®ã. Có ph¸p : CREATE [or REPLACE/FORCE] VIEW view_name [colum..] AS Query,[with check option] -OR REPLACE:cho phÐp mét VIEW ®îc t¹o ra thËm chÝ nÕu mét VIEW ®· tån t¹i cã cïng tªn nh vËy.Do ®ã nã sÏ thay thÕ VIEW cò. -FORCE:cho phÐp t¹o ra VIEW thËm chÝ c¸c b¶ng c¬ së cha tån t¹i nhng c¸c b¶ng ph¶i tån t¹i tríc khi VIEW ®ã ®îc sö dông -MÖnh ®Ò WITH CHECK OPTION:chØ ra r»ng viÖc INSERT,UPDATE thùc hiÖn th«ng qua VIEW lµ kh«ng cho phÐp. VD: T¹o VIEW cã tªn NV_phong tõ R1,R2,R3 gåm c¸c trêng Hä_tªn,phßng CREATE VIEW NV_phong AS SELECT hotªn,tªnphong FROM R1,R2,R3 WHERE (R1.#NV=R2.#NV)and (R2.#MP=R3.#MP) with check option; *CREATE INDEX

Ph¹m Minh Quý - Database

13

Tæng quan vÒ ng«n ng÷ sql

14

B¶ng chØ sè lµ mét ®èi tîng ®Æc biÖt ®îc t¹o ra ®Ó cung cÊp cho viÖc truy nhËp tíi b¶ng trong CSDL mét c¸ch nhanh chãng Có ph¸p: CREATE INDEX index_name ON table(colum) VD: CREATE INDEX Nh©n _ vien_id ON NHAN_VIEN (Hä_tªn); b> LÖnh ALTER -Dïng ®Ó hoÆc lµ thªm mét hay nhiÒu trêng vµo b¶ng hoÆc söa ®æi mét cét hiÖn t¹i.SQL ANSI chuÈn kh«ng cho phÐp huû bá c¸c cét. -Có ph¸p: ALTER TABLE TABLE_name ADD | MODIFY | DROP option (colum Datatype..) +ADD:thªm cét míi +MODIFY:söa ®æi cét +DROP option xo¸ bá c¸c rµng buéc VD1:thªm trêng gia ®×nh kiÓu char(1) vµo R1 ALTER TABLE R1 ADD gia ®×nh char(1); VD2:Thay ®æi trêng §Þa_chØ Varchar(30) trong R1 thµnh §Þa_ChØ(20): ALTER TABLE R1 MODIFY §Þa_ChØ varchar(20); VD3:Huû bá rµng buéc trêng kho¸ #NV trong R1 ALTER TABLE R1 DROP constraint NV_prim c>LÖnh DROP Ph¹m Minh Quý - Database

14

Tæng quan vÒ ng«n ng÷ sql

15

-Dïng ®Ó xo¸ bá mét quan hÖ,khi ta xo¸ bá mét b¶ng c¬ së th× tÊt c¶ c¸c VIEW,INDEX ®îc ®Þnh nghÜa trªn b¶ng ®ã sÏ bÞ xo¸ bá . Có phap: DROP TABLE/VIEW/INDEX Name; VD:Xãa bá Nh©n_viªn_id; DROP INDEX Nh©n_viªn_id; 4>TËp lÖnh GRANT,REVOKE: *§Ó kiÓm tra quyÒn truy nhËp CSDL dïng lÖnh GRANT Có ph¸p: GRANT privileges ON object TO (user/public)[WITH GRANT OPTION] -c¸c quyÒn (privileges) truy nhËp CSDL: +Read(®äc) +SELECT(chän) +write(ghi) +INSERT(bæ sung) +UPDATE(söa ®æi) +DELETE,run. -§èi tîng (object) :lµ tªn c¸c quan hÖ hoÆc tªn c¸c ch¬ng tr×nh. -Tªn nguêi sö dông:Tªn cña mét ngêi ,mét nhãm ngêi hoÆc danh s¸ch ngêi public:cho tÊt c¶ mäi ngêi cïng ®îc sö dông. -Tõ kho¸ :with grant OPTION:®¶m b¶o ®Ó ngêi sö dông cã thÓ tiÕp tôc trao quyÒn sö dông cho ngêi kh¸c. VD:cho phÐp SELECT,INSERT,UPDATE trªn b¶ng R1 cho NghÜa,Kh«i Ph¹m Minh Quý - Database

15

Tæng quan vÒ ng«n ng÷ sql

16

GRANT SELECT,INSERT,UPDATE ON R1 TO NghÜa,Kh«i with grant option; NghÜa,Kh«i cã thÓ trao quyÒn trªn cho ngêi kh¸c. *§Ó huû bá quyÒn truy nhËp Có ph¸p:REVOKE privileges ON object FROM user VD:®Ó huû bá quyÒn UPDATE tõ NghÜa: REVOKE UPDATE ON R1 FROM NghÜa; Lêi kÕt thóc: Trong bµi nµy t«i muèn tr×nh bµy víi c¸c b¹n vÒ ng«n ng÷ SQL chuÈn ®Ó c¸c nhãm kh¸c cã thÓ tham kh¶o .Nhng do tµi liÖu vª SQL chuÈn kh«ng cã ,mµ t«i chØ tham kh¶o c¸c tµi liÖu vÒ SQL sö dông cho truy nhËp CSDL cña ORACLE cho nªn trong khi tr×nh bµy cã khi " L¹m dông" vÒ SQL sö dông trong ORACLE . RÊt mong c¸c b¹n gãp ý kiÕn!

Ngêi tr×nh bÇy : Ph¹m Minh Quý_K40B Tµi liÖu tham kh¶o : +INTRODUCTION TO ORACLE : SQL PL/SQL AND SQL*PLUS

Ph¹m Minh Quý - Database

16

Tæng quan vÒ ng«n ng÷ sql

17

Ph¹m Minh Quý - Database

17

Related Documents

02 Ngon Ngu Sql
May 2020 5
Tong Quan Ve O Cung
October 2019 26
Tong Quan Ve Amino Acid
November 2019 28
Tong Quan
May 2020 17