Oracle10g DHCT

Embed Size (px)

Citation preview

KHOA CNG NGH THNG TIN & TRUY N THNG I H C C N THO

Gio trnh:

H QU N TR CO S D LI U

B mn H Th ng Thng Tin & Ton 07/2009

ng D ng

Khoa CNTT & TT - HCT

PH N 1. T NG QUANI. M C CH YU C USau khi h c xong mn ny, sinh vin c th : K t n i v i CSDL trn server, t o/xa/thay d i table, t o ch m c, thm/xa/thay d i d li u trong m t table... S d ng thnh th o cu l nh SELECT d tr l i cu h i truy v n. S d ng ngn ng PL/SQL d t o cc Stored Procedures / Functions. Thi t l p rng bu c ton v n v s d ng Trigger trong Oracle. Qu n l danh m c h th ng (system catalog) hay meta data. Qu n tr quy n ngu i dng.

II. N I DUNG C T LITi li u hu ng d n g m 3 ph n: Ph n 1 gi i thi u t ng quan v mn h c, trong d trnh by c th cc ki n th c, k nang m sinh vin c n d t du c sau khi h c mn ny. Ngoi ra, cn trnh by so lu c v n i dung c a ti li u, ki n th c tin quy t v phuong php h c t p. Ph n 2 gi i thi u cc nt co b n v h qu n tr Oracle. Trong d, gi i thi u so lu c v ph n m m SQL Developer du c s d ng d so n th o v th c thi cu truy v n d li u. Ngoi ra, trong ph n ny, gio trnh cung trnh by m t cch chi ti t cc thao tc c n thi t d c th th c hnh. Ph n 3 g m 12 bi th c hnh c th . M i bi s c b c c g m 4 ph n nhu sau: 1. M c tiu: nu r m c tiu rn luy n c a bi. 2. L thuy t: cung c p ng n g n ki n th c v cc cu l nh c n dng trong bi. 3. Bi t p c hu ng d n. 4. Bi t p t lm.

III. KI N TH C TIN QUY TNhu m t mn b t bu c, mn h c ny du c dua vo gi ng d y cho sinh vin chuyn ngnh Cng Ngh Thng Tin v i yu c u sinh vin d h c xong mn H Co S D Li u (CT106).

IV. PHUONG PHP H C T PV i m c tiu nng cao kh nang t h c t p v t nghin c u c a sinh vin, ngu i so n d c g ng l ng ghp vo n i dung cc v d minh h a don gi n, c th ; d ng th i b tr b c c v i mong mu n t o s d hi u cho sinh vin v ngu i d c. h c t t mn h c ny, tru c h t sinh vin c n ph i: T nghin c u ti li u hu ng d n, d c bi t l ph n 1 v ph n 2. Tru c m i bu i th c hnh, sinh vin c n dnh kho ng 30 pht d xem l i ph n l thuy t c a cu l nh s th c hnh (ph n 1 v 2 c a m i bi + ti li u tham kh o n u c n thi t).

Gio trnh th c hnh H QTCSDL

Trang 2

Khoa CNTT & TT - HCT Trong m i bu i th c hnh, sinh vin th c hi n cc yu c u theo hu ng d n trong bi. Sinh vin c n ph i t suy nghi tm ra dp n cho cc cu h i bi t p tru c khi tham kh o dp n c a gio vin cung c p. M i bu i sinh vin c n ph i hon t t t nh t l ph n bi t p c hu ng d n. Cn ph n bi t p t lm sinh vin ph i t hon t t tru c khi ti n hnh bi th c hnh ti p theo.

Gio trnh th c hnh H QTCSDL

Trang 3

Khoa CNTT & TT - HCT

PH N 2. CO B N V ORACLEI. M T VI KHI NI M U C S D NG TRONG ORACLE 10G: 1. Database v InstanceCc h qu n tr co s d li u (CSDL) d u dng c b nh my tnh v cc thi t b luu tr nhu c ng d ho t d ng. Cc c ng cung c p kh nang luu tr lu di v m t khng gian r ng l n d ch a hng tri u m u tin c th ln d n hng gigabyte. Tuy nhin, truy c p d li u t c ng ch m hon nhi u so v i truy c p t b nh . V th cc h co s d li u d u s d ng b nh vo vi c n p tru c d li u nh m tang t c d truy v n. Trong Oracle, m t co s d li u (database) l m t t p h p cc t p tin h th ng luu tr d li u do ngu i dng ho c chuong trnh dua vo v thng tin v c u trc c a co s d li u (metadata). c th truy v n v c p nh t CSDL, Oracle ph i kh i d ng m t s ti n trnh n n v c p pht m t vi vng nh s d ng trong su t qu trnh thao tc trn CSDL. Khi m t CSDL du c kh i d ng (start), m t SGA (System Global Area) du c c p pht. SGA l m t vng b nh dng d luu tr d li u v cc thng tin di u khi n c a m t th hi n (instance), ngu i dng khi k t n i d n server du c chia s cc d li u c trong SGA. Ngoi ra, Oracle cung c p pht cc vng d m b nh d ch a d ng d li u v thng tin di u khi n c a cc ti n trnh my ch (server process), PGA du c dng x l cc cu l nh truy v n SQL, qu n l truy nh p v cc thng tin v phin lm vi c (session). ng th i, cc ti n trnh n n c a Oracle cung du c kch ho t. Cc ti n trnh ny c nhi m v qu n l c u trc b nh , d ng b ha d li u vo ra c ng v cc nhi m v b o tr t ng qut khc (ghi nh t k, ph c h i). S k t h p gi a SGA, PGA v cc ti n trnh n n du c g i l th hi n CSDL (Database Instance ho c Oracle Instance). Nhn chung, m i th hi n c m t t p h p cc ti n trnh duy tr v thc p m i quan h gi a c u trc v t l c a CSDL v c u trc b nh . S lu ng cc ti n trnh ph thu c vo c u hnh c a m i th hi n CSDL. Trong m t server, nhi u CSDL c th t n t i song song. V v y, d khng b l n l n gi a cc CSDL khc nhau, m i th hi n CSDL du c nh n d ng b ng m t SID ring bi t (System Identifier). M t CSDL c th du c m (open hay mount) b i nhi u hon m t th hi n, nhung m t th hi n ch c th m nhi u nh t m t CSDL m thi.

Hnh 1 Database Instance

2. Data dictionaryT di n d li u l m t t p h p cc b ng (table) v khung nhn (view) gi ng nhu cc CSDL khc, l noi luu tr cc thng tin v c u trc v t l v lu n l c a CSDL. Cc thng tin ny bao g m: Thng tin ngu i dng (quy n, vai tr) Rng bu c ton v n c a cc b ng d li u. Tn v ki u d li u c a cc c t trong b ng d li u.

Gio trnh th c hnh H QTCSDL

Trang 4

Khoa CNTT & TT - HCT Thng tin v vng nh du c c p pht v s d ng c a cc schema object. Th hi n CSDL lun truy c p d n t di n d li u d phn tch c php cc cu l nh SQL. SYS l ch nhn v l ngu i dng duy nh t c th ton quy n thao tc trn cc b ng v khung nhn c a t di n d li u. tham kh o cc b ng v khung nhn c a t di n d li u, s d ng cu l nh: select * from DICT[IONARY]

3. Schema v Schema ObjectSchema l m t t p h p cc d i tu ng CSDL (database object ho c schema object) thu c v m t ngu i dng. M i ngu i dng trong 1 CSDL s h u duy nh t m t schema c tn trng v i tn ngu i dng, ngu c l i m i schema ch tuong ng v i m t ngu i dng m thi. Schema Object l c u trc lu n l lin quan tr c ti p d n d li u c a CSDL, bao g m cc c u trc nhu b ng (table), khung nhn (view), cc th t c tr s n (stored procedure)

II. C U TRC CO S

D

LI U TRONG ORACLE

Trong h qu n tr Oracle, m t CSDL du c c u thnh b i 2 c u trc: lu n l v v t l. C u trc lu n l m t cc vng nh dng d luu tr cc d i tu ng nhu cc b ng, cc hm Ngu c l i, c u trc v t l du c xc d nh b i cc t p tin h th ng hnh thnh nn CSDL.

1. C u trc lu n l (logical structure) a. Extenton v luu tr lu n l nh nh t du c c p pht cho m t d i tu ng co s d li u, bao g m m t dy lin t c cc d li u (data blocks) du c c p pht d luu tr m t ki u thng tin nh t d nh.

b. SegmentT p h p cc extent du c c p pht d luu tr cc c u trc d li u nh t d nh v cc extent ny du c luu tr trong cng m t tablespace. V d , d li u c a m t b ng du c luu trong m t table segment, cc ch m c du c luu trong cc index segment Khi cc extent c p pht cho segment d y d li u, Oracle s c p pht thm extent cho segment d. V cc extent du c c p pht khi c n thi t nn cc extent trong cng m t segment c th khng lin t c trong b nh . Oracle cung c p m t lo i segment d c bi t du c g i l rollback segment. Segment ny khng ch a cc d i tu ng CSDL, m ch a hnh nh tru c (before image) c a d li u du c thay d i trong khi m t giao tc chua hon thnh. Cc thay d i trn d li u c th du c cu n l i b ng cch s d ng segment ny.

c. TablespaceTuong duong m t phn vng lu n l c a co s d li u. T t c cc d i tu ng c a co s d li u d u du c luu tr trong cc tablespace. M t co s d li u c t nh t m t tablespace mang tn SYSTEM ch a t di n d li u (data dictionary). Cc tablespace khc du c t o ra nh m ph c v cho cc ng d ng v cc tc v khc nhau. Gi a schema v tablespace khng c m i lin quan v i nhau. Cc d i tu ng trong 1 schema c th t n t i trong cc tablespace khc nhau. Ngu c l i, Cc tablespace c th luu tr cc d i tu ng trong cc schema khc nhau.

d. DatabaseM t CSDL g m m t ho c nhi u vng nh c g i l tablespace dng d luu tr d li u.

Gio trnh th c hnh H QTCSDL

Trang 5

Khoa CNTT & TT - HCT

2. C u trc v t l (physical structure) a. Data Blockon v luu tr nh nh t du c dng trong co s d li u, du c xc d nh b i m t s byte nh t d nh trong vng nh v t l c a co s d li u. l n c a data block du c xc d nh khi co s d li u du c t o ra.

Hnh 2 M i quan h gi a Data block, extent v segment

b. DatafileV m t lu n l, Oracle luu tr d li u trong cc tablespace. V m t v t l, cc d li u ny du c luu tr trong cc datafiles (c ph n m r ng l dbf) tuong ng v i tablespace. B n ch t c a m t co s d li u l m t t p h p cc datafiles du c luu tr trn cc thi t b khc nhau nhu dia t , dia quang h c

Hnh 3 M i tuong quan gi a datafiles v tablespace

Ngoi cc datafiles c a co s d li u, cn t n t i 3 lo i t p tin khc k t h p v i m t th hi n co s d li u (database instance): Redo-log file (*.rdo ho c *.log): m i th hi n co s d li u duy tr m t t p h p cc t p tin d ng ny d ghi l i ton b cc giao tc (transaction). Khi CSDL b l i, cc t p tin nh t k du c dng d ph c h i l i d li u. Control file (*.ctl): m i th hi n co s d li u c t nh t 1 t p tin d ng ny. N r t c n thi t cho ho t d ng bnh thu ng c a CSDL. Cc t p tin ny du c c p nh t thu ng

Gio trnh th c hnh H QTCSDL

Trang 6

Khoa CNTT & TT - HCT xuyn trong qu trnh ho t d ng c a CSDL, v v y n lun du c d t vo ch d ghi khi CSDL du c m . V l do no d cc t p tin khng truy c p du c, CSDL s khng ho t d ng dng d n. Cc t p tin di u khi n ghi nh n cc thng tin c a CSDL nhu tn CSDL, cc thng tin v tablespace v cc redo-log file Archive / backup file: khi m t th hi n CSDL du c th c thi du i phuong th c archive-log, ti n trnh ARCH c a Oracle s dng cc t p tin d ng ny luu l i cc thay d i trn cc t p tin redo-log.

Hnh 4 Quan h gi a c u trc lu n l v v t l trong CSDL

3. C p pht thm vng nh cho CSDLTa c 3 cch d m r ng vng nh cho CSDL : B sung thm datafile cho tablespace. T o m t tablespace m i. Tang vng nh c a datafile.

B sung thm datafile

T o tablespace m i

Tang vng nh c a Datafile Hnh 5 C p pht thm vng nh cho CSDL

Gio trnh th c hnh H QTCSDL

Trang 7

Khoa CNTT & TT - HCT

III. KHNG GIAN D 1. Khng gian d li u

LI U (TABLESPACE) V B NG D

LI U (TABLE)

Oracle d nh nghia 3 lo i khng gian d li u khc nhau: Khng gian d li u c d nh (permanent tablespace) ch a cc d i tu ng CSDL t n t i lu di (persistent schema objects), cc d i tu ng ny du c luu trong datafile. Undo tablespace l m t ki u khng gian d li u c d nh du c dng d qu n l vi c hon tc d li u (undo data) n u co s d li u du c d t du i ch d qu n l hon tc t d ng (automatic undo management). Oracle khuy n co s d ng undo tablespace thay v s d ng rollback segment cho vi c hon tc d li u. Khng gian d li u t m th i (temporary tablespace) ch a cc d i tu ng CSDL trong m t phin lm vi c. Tablespace d ng ny du c dng d qu n l vng nh cho cc thao tc s p x p (sort operations) trn CSDL. V d , n u ta k t n i hai b ng d li u r t l n, Oracle khng th th c hi n thao tc s p x p trong b nh , m t vng nh s du c c p pht trong temporary tablespace d th c hi n thao tc ny. Cc l nh SQL c n cung c p vng nh th c hi n thao tc s p x p g m: CREATE INDEX, ANALYZE, Select DISTINCT, ORDER BY, GROUP BY, UNION, INTERSECT, MINUS, Trong bi gi ng ny, chng ta ch quan tm d n permanent tablespace.

2. B ng d li uB ng d li u du c d nh danh duy nh t b i tn v bao g m nhi u hng luu tr d li u, m i hng du c g i l 1 tuple hay 1 record. M t b ng d li u c th c nhi u c t. M i c t du c d nh nghia b i 1 tn v 1 ki u d li u, m t thu c tnh c a 1 b (tuple). M t b ng d li u c th c t i da 254 c t c ki u d li u gi ng nhau ho c khc nhau.

IV. CC KI U DTn ki u number(p,s) Integer Float Date

LI U TRONG ORACLE:Gi i thch Ki u s th p phn (10-84 Ki u s nguyn, t Ki u s th c, t ng ng 10127) ng v i Number(38) ng v i Number 31/12/9999) Bi u di n h ng1894.1204 1, 20 101.5E5 0.5E-2 '10-FEB-04' '10/02/04' (ty vo nh d ng th hi n ngy c a h th ng) '50% complete.'

Ngy thng (1/1/-4712

Char Nchar Varchar2 Nvarchar2

K t c di nh khng c nh v t i a l 255 k t (khng h tr Unicode) K t c di nh khng c 255 k t (h tr Unicode) nh v t i a l

Nguy n Van Minh Luong Tm '50% complete.'

K t c di nh khng c nh v t i a l 2000 k t (khng h tr Unicode) K t c di nh khng c 2000 k t (h tr Unicode) nh v t i a l

Nguy n Van Minh Luong Tm

Gio trnh th c hnh H QTCSDL

Trang 8

Khoa CNTT & TT - HCT

V. PRIVILEGES V ROLES 1. PrivilegesQuy n ngu i dng l quy n th c thi m t cu l nh SQL ho c quy n truy c p d n cc d i tu ng c a ngu i dng khc. Trong Oracle, c hai lo i quy n ngu i dng: quy n trn h th ng (system privilege) v quy n trn d i tu ng (object privilege). C m t s quy n l t h p bao g m nhi u quy n. M t quy n c th du c gn cho m t ngu i dng (user) ho c m t nhm ngu i dng v i vai tr gi ng nhau (role). T p h p cc quy n trong Oracle l c d nh, ngu i dng khng th d nh nghia thm.

a. System privilegesC 140 quy n h th ng trong phin b n Oracle 9.0.1, ta c th tham kh o cc quy n ny qua cu l nh SQL: SELECT name FROM system_privilege_map ; Tuy nhin, cc quy n h th ng quan tr ng nh t l: Create session: khng c quy n ny, ngu i dng s khng truy c p du c CSDL v s nh n du c l i ORA01-045. Create table Create view Create procedure Sysdba: 5 tc v trong Oracle yu c u ngu i dng ph i c quy n ny Kh i d ng CSDL T t (shutdown) CSDL Luu d phng CSDL Ph c h i CSDL T o CSDL tham kh o ngu i dng c quy n sysdba hay sysoper, th c thi cu l nh: SELECT * FROM v$pwfile_users

b. Object privilegesCc quy n ny du c gn cho ngu i dng trn cc d i tu ng CSDL sau: Table: select, insert, update, delete, alter, debug, flashback, on commit refresh, query rewrite, references, all. View: select, insert, update, delete, under, references, flashback, debug. Sequence: alter, select. Package, procedure, function: execute, debug. Materialized view: delete, flashback, insert, select, update. Directory: read, write. Library: execute. User defined type: execute, debug, under. Operator: execute. Indextypes: execute.

2. RolesThng thu ng, vi c s d ng role ph c v cho 2 m c dch sau: Qu n l quy n c a m t ng d ng CSDL. Qu n l quy n c a m t nhm ngu i dng c vai tr gi ng nhau d i v i CSDL.

Gio trnh th c hnh H QTCSDL

Trang 9

Khoa CNTT & TT - HCT

a. Roles du c d nh nghia tru c (predefined roles)Cc role ny du c d nh nghia s n khi m t CSDL du c t o m i, cc role co b n bao g m: Connect du c gn cc quy n: create session, alter session, create synonym, create view, create database link, create table, create cluster v create sequence. Resource g m cc quy n c a connect v cc quy n: create table , create cluster, create sequence, create trigger create procedure, create type, create indextype v create operator. Dba du c gn t t c cc quy n du c d nh nghia c a Oracle. tham kh o quy n c a cc role, ta dng l nh: SELECT * FROM DBA_SYS_PRIVS WHERE grantee=''

b. Roles do ngu i dng d nh nghia (user roles)Ta c th t d nh nghia m t role cho m t nhm ngu i dng CSDL v i cc yu c u quy n chung ph bi n c a nhm.

VI. NG

I DNG

Ngu i dng co s d li u tuong ng v i m t truy c p (login) du c gn m t s quy n nh t d nh. Cc thng tin v ngu i dng du c luu trong t di n d li u v ngu i dng du c c p pht m t vng b nh (tuong ng v i m t schema) luu tr cc d i tu ng CSDL. Cc bu c t o ngu i dng trong 1 CSDL Oracle: T o cc tablespace c n thi t dnh cho ngu i dng (n u c n thi t). T o ngu i dng. Gn cc quy n cho ngu i dng.

VII. IMPORT V EXPORT 1. Gi i thi uCh c nang export cho php xu t n i dung lu n l c a m t CSDL vo m t t p tin nh phn d nh nghia b i Oracle du c g i l t p tin dump. Ch c nang import s dng t p tin ny d t o l i cc d i tu ng CSDL. T p tin dump m t CSDL c th du c dng d t o l i d li u trn cng m t CSDL ho c trn m t CSDL khc, ngay c khi cc CSDL ny du c ci d t du i nh ng c u hnh ph n c ng v ph n m m khc nhau. V d , t p tin dump c a m t CSDL trn h di u hnh Windows c th dng d t o l i cc d i tu ng CSDL trn h di u hnh Linux. Trong Windows, d th c hi n 2 ch c nang ny ta dng 2 l nh h th ng exp v imp (th c thi trong windows command console).

2. Cc phuong th c c a ch c nang import v export a. C p d CSDLy l phuong th c ph c t p nh t. V i ch c nang export, t t c cc d i tu ng c a CSDL du c xu t ra t p tin dump tr cc d i tu ng c a m t s ngu i dng nhu: SYS, ORDSYS, CTXSYS, MDSYS, v ORDPLUGINS. ng th i, t p tin dump bao g m cc thng tin lin quan d n c u trc c a CSDL nhu d nh nghia cc tablespace v cc segments rollback V i ch c nang import, t t c cc d i tu ng s du c t o l i trong CSDL dch. Tham s FULL cho php xc d nh phuong th c ny trong cc ch c nang import v export. Ch : trong tru ng h p import c CSDL, c n ph i t o l i t t c ngu i dng v cc quy n tuong ng trong CSDL ngu n.

Gio trnh th c hnh H QTCSDL

Trang 10

Khoa CNTT & TT - HCT

b. C p d ngu i dngT t c cc d i tu ng c a ngu i dng bao g m cc b ng d li u, th t c, trigger d u du c xu t ra t p tin dump. Trong ch c nang export, tham s OWNER cho php ch d nh cc d i tu ng c a ngu i dng c n xu t. V i ch c nang import, tham s FROMUSER ch d nh t o l i cc d i tu ng c a ngu i dng no trong t p tin dump v tham s TOUSER ch d nh ngu i dng du c dch.

c. C p d b ng d li uT t c cc d i tu ng lin quan d n b ng d li u (index, rng bu c, cc quy n) s du c xu t ra t p tin dump.

d. C p d khng gian d li uCc metadata c a tablespace v cc d i tu ng CSDL du c xu t ra t p tin dump.

e. Yu c u v quy nHnh d ng Export schema Export schema c a ngu i dng khc Export ton b CSDL ho c tablespace Import cc d i tu ng Quy n ho c vai tr c n thi t CREATE SESSION SYSDBA, EXP_FULL_DATABASE v DBA EXP_FULL_DATABASE IMP_FULL_DATABASE

VIII. K T N I V I ORACLE NET 1. T ng quanOracle Net l m t middleware du c ci d t trn Oracle Client v Oracle Database Server. Oracle Net cung c p cc gi i php k t n i trong mi tru ng tin h c khng d ng nh t v phn tn, gip cho vi c c u hnh v qu n l m ng d dng hon. Oracle Net cho php thi t l p m t phin k t n i m ng (network session) t m t ng d ng trnh khch (Client Application) d n my ch CSDL (Database Server). M t khi phin k t n i m ng du c thi t l p, Oracle Net dng vai tr nhu m t knh trao d i d li u gi a ng d ng khch v my ch . N c nhi m v thi t l p, qu n l k t n i m ng v trao d i cc thng di p (messages) gi a trnh khch v my ch . Phin k t n i m ng du c thi t l p thng qua listener module, m t ti n trnh d c l p c a my ch CSDL. Listener nh n cc yu c u k t n i c a trnh khch v qu n l vi c d n du ng d n my ch . M i khi trnh khch yu c u k t n i, listener nh n yu c u ny. N u thng tin cung c p b i trnh khch tuong ng v i cc thng tin c a listener, trnh khch du c php truy c p d n my ch .

2. M hnh Client-Serveri v i client, database l m t d ch v (service) th c thi cng vi c thay cho client. y d ch v m database cung c p cho client chnh l l u tr d li u v g i l i d li u khi c n. Khi k t n i, client nh n bi t database qua tn d ch v (service name) m c nh trng v i global database name (k t h p c a tn CSDL v tn mi n). yu c u thi t l p k t n i, ngu i dng ph i g i di tn ti kho n v m t kh u cng v i m t d nh danh (identifier) c a d ch v c n k t n i. nh danh ny du c g i l d nh danh k t n i cho php xc d nh: D ch v c n k t n i. u ng d n m ng d n d ch v ny. nh danh k t n i c th du c bi u th b ng nhi u cch. Cch th c du c p d ng r ng ri nh t l tn d ch v m ng (net service name) tuong ng v i m t m t k t n i (connect descriptor). M t ny

Gio trnh th c hnh H QTCSDL

Trang 11

Khoa CNTT & TT - HCT ch a d ng cc thng tin v d ch v c n k t n i v du ng d n m ng. D ch v du c xc d nh b i tn c a d ch v (tn c a CSDL). u ng d n m ng cung c p cc thng tin v d a ch m ng, c ng ho t d ng v giao th c m ng s d ng c a Listener. Khi yu c u k t n i, client g i phuong th c Service Naming d thi t l p lin l c v i Listener du c ch d nh trong m t k t n i. Listener ch p nh n k t n i v i client thng qua m t giao th c m ng. N so snh cc thng tin do client cung c p v i cc thng tin tuong ng du c cung c p b i d ch v CSDL, n u cc thng tin ny kh p nhau, k t n i s du c php thi t l p gi a client v database server.

Hnh 6 Ki n trc Client-Server trong m ng Oracle

Phuong th c giao ti p m ng (netword protocol) thu ng du c s d ng trong m ng Oracle l TCP/IP, c c ng m c d nh 1521. Ngoi ra, d i v i l p trnh vin v qu n tr vin, ng d ng pha trnh khch (application client) l ng d ng c a nh pht tri n th ba (third party), cung c p m t giao di n tuong tc thn thi n v i h qu n tr Oracle. Hi n nay, cc ng d ng ny du c pht tri n r t nhi u trn th gi i nhu Maestro, SQL Navigator, Oracle SQL developer

Gio trnh th c hnh H QTCSDL

Trang 12

Khoa CNTT & TT - HCT

PH N 3. BI T P TH C HNHBI 1I. M C CH

Lm quen v i Oracle (k t n i v i server, t o/xa/thay d i/khi ph c database, t o/xa/thay d i table, t o ch m c, thm/xa/thay d i d li u trong m t table... )

II. L THUY TCc cu l nh SQL s d ng trong bi ny

1. C php cu l nh t o b ng d li uCREATE [GLOBAL TEMPORARY] TABLE [.] ( [DEFAULT ] [Cc rng bu c trn c t] [, [,...]] [, Cc rng bu c trn b ng] ) ; Cc rng bu c (RB) trn c t c th bao g m m t ho c nhi u lo i sau: [CONSTRAINT ] {UNIQUE|PRIMARY KEY} [CONSTRAINT ] CHECK() [CONSTRAINT ] [NOT] NULL [CONSTRAINT ] REFERENCES [()] [ON DELETE {CASCADE|SET NULL}] Cc rng bu c trn b ng c th bao g m m t ho c nhi u lo i sau: CONSTRAINT {UNIQUE|PRIMARY KEY}( [,...]) CONSTRAINT CHECK() CONSTRAINT FOREIGN KEY () REFERENCES [()] [ON DELETE {CASCADE|SET NULL}] V d : T o 2 b ng d li u sau: CUAHANG(MACH,TENCH,DCHI,DTHOAI) NHANVIEN(MANV,TENNV,NGAYSINH,MACH) CREATE TABLE CUAHANG ( MACH INTEGER PRIMARY KEY, TENCH NVARCHAR2(20), DCHI NVARCHAR2(30), DTHOAI VARCHAR(10) ) ;

Gio trnh th c hnh H QTCSDL

Trang 13

Khoa CNTT & TT - HCT CREATE TABLE NHANVIEN( MANV VARCHAR(10) PRIMARY KEY, TENNV NVARCHAR2(30), NGAYSINH DATE, DCHI NVARCHAR2(30), MACH INTEGER CONSTRAINT NV_FK REFERENCES CUAHANG(MACH) ) ;

2. C php cu l nh s a

i b ng d li ui>] ... ;

ALTER TABLE < nh ngh a thay i> [,< nh ngh a thay

nh ngh a thay i: ADD [COLUMN] ( [,...]) | ADD [CONSTRAINT []] PRIMARY KEY ([,...]) | ADD [CONSTRAINT []] FOREIGN KEY (,...) REFERENCES [()] | ALTER [COLUMN] {SET DEFAULT | DROP DEFAULT} | DROP [COLUMN] | DROP PRIMARY KEY | DROP FOREIGN KEY | RENAME TO V d : Xa rng bu c kha ngo i c a b ng NHANVIEN ALTER TABLE NHANVIEN DROP CONSTRAINT NV_FK ; T o l i rng bu c kha ngo i c a b ng NHANVIEN ALTER TABLE NHANVIEN ADD CONSTRAINT NV_FK FOREIGN KEY (MACH) REFERENCES CUAHANG(MACH) ;

3. C php xa b ng d li uDROP TABLE tbl_name [, tbl_name] ... [CASCADE CONSTRAINTS] CASCADE CONSTRAINTS: xa cc rng bu c ton v n lin quan n cc kha chnh trong b ng. N u b qua t kha ny v trong b ng c t n t i cc rng bu c ton v n lin quan n cc b ng khc, Oracle bo l i v khng th c thi cu l nh ny. V d : DROP TABLE NHANVIEN CASCADE CONSTRAINTS ;

4. C php l nh chn record vo b ngINSERT INTO [()] VALUES () ;

Gio trnh th c hnh H QTCSDL

Trang 14

Khoa CNTT & TT - HCT V d : INSERT INTO CUAHANG VALUES ( 1, 'CUA HANG 1', '123 LY TU TRONG', '071088822') ;

5. C php l nh c p nh t record trong b ngUPDATE SET = , . . . , = [WHERE ]; V d : UPDATE CUAHANG SET TENCH='CUA HANG CUA TOI' WHERE MACH=1;

6. C php l nh xa record trong b ngDELETE FROM [WHERE ]; V d : DELETE FROM PROJECT WHERE PEND < sysdate;

7. Cc l nh imp/expTham s Userid Contraints File Log Full Rows Grants Indexes Owner Query Tables Fromuser Touser Tablespace nghia Chu i k t n i co s d li u Imp/Exp cc rng bu c Tn t p tin DUMP Tn t p tin nh t k Imp/Exp ton b CSDL Exp d li u ra file dump Imp/Exp h i cc quy n Imp/Exp cc ch m c Tn ngu i dng c n Imp/Exp nh nghia di u ki n l c cc d li u c n Export Cc b ng c n Imp/Exp Tn ngu i dng du c Export Tn ngu i dng dch Imp/Exp cc d i tu ng du c luu tr trong tablespace X X X X N Y Y Y userid X X Y expdat.dmp X X X Gi tr m c d nh imp X exp X X X X X X X X X X X X

Ch : userid=username/password@net_service_name.

Gio trnh th c hnh H QTCSDL

Trang 15

Khoa CNTT & TT - HCT V d : dng username u1010666 v i password p1010666, net service name ServerTHOracle. Export ton b CSDL (full=y) khng c d li u(rows=n). C:\> exp userid=u1010666/p1010666@ServerTHOracle file=c:\backup\export_full.dump log=c:\control\export_full.log full=y rows=n Export ton b schema c a ngu i dng SCOTT. C:\> exp userid= u1010666/p1010666@ServerTHOracle file=c:\backup\export_full.dump log=c:\control\export_full.log owner=scott Export b ng ACCOUNT trong schema SCOTT. C:\> exp userid= u1010666/p1010666@ServerTHOracle file=c:\backup\export_full.dump log=c:\control\export_full.log tables=scott.account Import t t c schema. C:\> imp userid= u1010666/p1010666@ServerTHOracle file=c:\backup\export_full.dump log=c:\control\export_full.log Import cc d i tu ng c a SCOTT vo schema TEST. C:\> imp userid= u1010666/p1010666@ServerTHOracle =c:\backup\export_full.dump log=c:\control\export_full.log fromuser=scott touser=test Import b ng ACCOUNT c a SCOTT vo schema TEST. C:\> imp userid= u1010666/p1010666@ServerTHOracle file=c:\backup\export_full.dump log=c:\control\export_full.log fromuser=scott touser=test tables=scott.account

III. BI T P C H

NG D N

Yu c u: thi t l p k t n i CSDL qua Oracle Net Manager v Oracle SQL Developer 1.5. Oracle Net Manager v i m t giao di n thn thi n ngu i dng l m t cng c du c thi t k cho vi c c u hnh v qu n l mi tru ng m ng c a Oracle d dng hon.

Thi t l p net service nameM chuong trnh Oracle Net Manager (Start Programs Oracle Configuration and Migration Tools Net Manager) Vo m c Local Service naming

Hnh 7 Oracle Net Manager

Ch n m c Service Naming, kch chu t vo d u cc thng s th c hi n k t n i v i server CSDL.

pane bn tri d t o m t net service name v i

Gio trnh th c hnh H QTCSDL

Trang 16

Khoa CNTT & TT - HCT

Hnh 8 t Net Service Name

t Net Service Name l ServerTHOracle (sinh vin c th d t tn ty ). Ch n Next.

Hnh 9 Ch n giao th c m ng du c s d ng

Ch n Protocol TCP/IP. Ch n Next.

172.16.1.66

Hnh 10 Cc thi t l p c a giao th c

Trong bu c ny, thi t l p cc thng s nhu sau. Host Name: tn server ho c d a ch IP trong m ng, thi t l p 172.16.1.66 Port Number: c ng 1521 m c d nh. Ch n Next.

Hnh 11 Thi t l p tn service

Service Name: chnh l tn CSDL c n truy c p d n (Global Database Name).

Gio trnh th c hnh H QTCSDL

Trang 17

Khoa CNTT & TT - HCT t Service Name l HQTCSDL. T i bu c cu i cng, th c hi n ki m tra k t n i v i CSDL.

Hnh 12 Ki m tra k t n i

Ch n Test, n u k t n i thnh cng th xu t hi n b ng thng bo nhu sau.

Hnh 13 Thng bo k t n i thnh cng

Ch n Finish trong hnh 34 d k t thc.

Dng Oracle SQL Developer 1.5 k t n i v i CSDLKh i d ng chuong trnh Oracle SQL Developer, dy l m t chuong trnh du c pht tri n trn n n Java. l n ch y d u tin, chuong trnh yu c u xc l p du ng d n d n t p tin java.exe (yu c u JDK phin b n 1.5 tr ln) nhu hnh du i dy.

Hnh 14 Xc l p du ng d n d n t p tin java.exe

Click vo OK, giao di n SQL Developer hi n ra nhu sau:

Hnh 15 Giao di n SQL Developer

Gio trnh th c hnh H QTCSDL

Trang 18

Khoa CNTT & TT - HCT t o k t n i d n CSDL, click vo icon Cch 1: k t n i tr c ti p. bn tab Connections. C 2 cch t o k t n i:

Hnh 16 K t n i tr c ti p

Trong cch k t n i ny, cc tham s du c thi t l p nhu sau: Connection name: tn c a k t n i (d t ty ). Username, password: c a ngu i dng dang nh p. Connection type: basic. Hostname: d a ch IP c a database server. Port m c d nh 1521 SID: tn CSDL c n dang nh p. Cc tham s c a k t n i ny c th du c luu l i d dng sau ny b ng cch click vo nt Save. dang nh p, click vo nt Connect. Ch : username v password c a sinh vin du c d nh s n nhu sau Username = u + MSSV. Password = p + MSSV. V d : sinh vin c m s 1010666 c username u1010666 v password l p1010666. Cch 2: k t n i thng qua Oracle Net.

Hnh 17 K t n i thng qua Oracle Net

Trong cch k t n i ny, cc tham s du c thi t l p tuong t cch 1, ch khc

2 tham s :

Gio trnh th c hnh H QTCSDL

Trang 19

Khoa CNTT & TT - HCT Connection type: TNS. Network Alias: ch n net service name d t o bu c d u tin. Khi dang nh p thnh cng, h p tho i m i xu t hi n d thay d i password.

Hnh 18 Xc l p l i password

Xc l p l i password. Ch n OK, dang nh p thnh cng, c a s chnh c a SQL Navigator xu t hi n.

Hnh 19 C a s chnh c a SQL Developer

Giao di n du c chia thnh 2 ph n: Ph n bn tri: hi n th cc schema objects c a ngu i dng dang k t n i. Ph n bn ph i: c a s so n th o, th c thi v hi n th k t qu c a cc cu l nh SQL, PL/SQL. Ngoi ra, Oracle SQL Developer cn h tr m t s ch c nang khc nhu: giao di n d h a thao tc trn cc schema objects, tr gip v ngn ng SQL v PL/SQL trong module Snippets, qu n l cc l nh SQL d th c thi v i module SQL History, bin d ch v g r i PL/SQL V cn nhi u tnh nang khc, sinh vin t tm hi u trong qu trnh th c hnh.

Gio trnh th c hnh H QTCSDL

Trang 20

Khoa CNTT & TT - HCT

IV. BI T P T 1. Yu c u 1:

LM

Tham kh o l nh CREATE TABLE t o cc b ng theo m hnh MLD sau:PHONG(MA_PHONG, TEN_PHONG, TRUONG_PHONG ) M i phng c m t m duy nh t, m t tn phng, tru ng phng l m nhn vin c a tru ng phng. NHANVIEN(MA_NV, HTEN_NV, PHAI, CVIEC, LUONG, PHU_CAP, MA_PHONG) Nhn vin c m t m duy nh t, m t h tn, phi, cng vi c, luong, ph c p v thu c m t phng no d. TO_NN(MA_NV, NGOAINGU, BANG_CAP) M t nhn vin c th bi t nhi u ngo i ng , m i ngo i ng c th c cc b ng c p khc nhau. Th c hi n Insert, Update, Delete m t vi tr ng d li u vo cc b ng v a t o.

2. Yu c u 2:Th nghi m import v export. Bu c 1: M command console (Start Run, g vo cmd). Tham kh o cc tham s c a l nh imp v exp, th c hi n ch c nang import cc schema csdl1, csdl2, csdl3, csdl4, csdl5, csdl6, hr v scott d ph c v cho cc bi ti p theo (cc t p tin dump do gio vin cung c p). Bu c 2: Th c hi n ch c nang export schema, b ng d li u Bu c 3: ng v i m i phuong th c export Bu c 2, th c hi n ch c nang import.

Gio trnh th c hnh H QTCSDL

Trang 21

Khoa CNTT & TT - HCT

BI 2I. M C CH

Luy n t p kh nang nh n bi t s thng thuong trong m t co s d li u, t d k t n i d li u d truy xu t thng tin c n thi t.

II. L THUY TCu l nh SQL s d ng trong bi ny: SELECT FROM [] [, [] [,...] ] [ WHERE ]; T o m t d nh danh (tn g i t t) tham chi u d n m t d i tu ng c a m t schema: CREATE SYNONYM FOR .

III. CC L I THU NG G P TRONG SQL: 1. Tn c t khng tm th y trong b ngThng bo l i: ORA-00904: : invalid identifier Hu ng gi i quy t: xem l i tn c t (tn thu c tnh/tn tru ng) trong cu l nh d dng chua.

2. Tn b ng khng tm th yThng bo l i: ORA-00942: table or view d not exist Hu ng gi i quy t: xem l i tn b ng d li u trong cu l nh d dng chua.

3. L i c phpThng bo l i: ORA-00900: invalid SQL statement Hu ng gi i quy t: xem l i c php trong cu l nh d dng chua, c th sai t kha (g sai cc t SELECT, FROM, WHERE,...) ho c thi u d u ngo c c a hm hay cu select con.

4. Tn c t c m t

nhi u b ng

Thng bo l i: ORA-00918: column ambiguously defined Hu ng gi i quy t: xt xem cc c t trong m nh d SELECT c t n t i trong nhi u b ng hay khng. N u c, tn b ng ho c b danh c a b ng c n du c tham chi u ph i d t tru c tn c t d theo c php .

5. Php so snh khng tuong thch ki uThng bo l i: ORA-01722: invalid number Hu ng gi i quy t: ki m tra l i cc php so snh trong m nh d WHERE, xem xt cc d li u tham gia vo cc php so snh ny c cng ki u hay chua. Ch : trong Oracle, m i l i thng bo t h th ng d u tuong ng v i m t m (ora code) c d ng -, c th mang cc gi tr ORA, PLS, PROC nghia v cch gi i quy t cc l i ny du c m t chi ti t trn website http://www.ora-code.com

Gio trnh th c hnh H QTCSDL

Trang 22

Khoa CNTT & TT - HCT

IV. BI T P C HU NG D N: 1. CSDL: Qu n l cng trnh (CSDL1)B ng 1. KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KTS) M i ki n trc su c m t h tn, m t nam sinh, phai, noi t t nghi p, d a ch lin l c. Gi s khng c hai ki n trc su trng tn. B ng 2. CHUTHAU(TEN_THAU, TEL, DCHI_THAU) M i ch th u xy d ng cng trnh d u c m t tn th u, m t s di n tho i v m t d a ch . Gi s khng c hai ch th u trng tn. B ng 3. CHUNHAN(TEN_CHU, DCHI_CHU) M i ch nhn c a m t cng trnh d u c m t tn ch nhn v m t d a ch . Gi s khng c hai ch nhn trng tn. B ng 4. CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) M i cng nhn tham gia xy d ng cc cng trnh d u c m t h tn, m t nam sinh, m t nam vo ngh , v m t chuyn mn no d. Gi s khng c hai cng nhn trng h tn. B ng 5. CGTRINH(STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) M i cng trnh c m t s th t , m t tn cng trnh, m t d a ch , thu c v m t t nh thnh no d, du c xy d ng v i m t kinh ph (don v tnh l tri u d ng), thu c v s h u c a m t ch nhn, do m t ch th u xy d ng, v du c kh i cng xy t m t ngy no d. B ng 6. THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) M t cng nhn c th tham gia xy d ng nhi u cng trnh, v m t cng trnh cung c nhi u cng nhn tham gia. Khi m t cng nhn tham gia vo m t cng trnh no d s du c ghi nh n l i ngy b t d u tham gia v s ngy tham gia. B ng 7. THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) M t ki n trc su c th thi t k nhi u cng trnh, m i cng trnh cung c th do nhi u ki n trc su cng thi t k . Khi m t ki n trc su thi t k m t cng trnh s c m t th lao tuong ng.

2. Yu c u 1: Tm s thng thuong gi a cc b ng trong CSDL:CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KTS) THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) CGTRINH(STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) CHUTHAU(TEN_THAU, TEL, DCHI_THAU) CHUNHAN(TEN_CHU, DCHI_CHU)

Gio trnh th c hnh H QTCSDL

Trang 23

Khoa CNTT & TT - HCT

3. Yu c u 2: t synonym cho cc b ng ny t schema CSDL1. Sau d m cc b ng d li u d xem ki u d li u c a t ng tru ng v quan st d li u c a t ng b ng. 4. Yu c u 3: Hy vi t cu l nh SQL d tr l i cc cu h i sau: a. Hy cho bi t tn v d a ch cc cng trnh do ch th u Cng ty xy d ng s 6 thi cng.Phn tch cu h i: Yu c u cho bi t: TEN_CTR, DCHI_CTR l y t b ng: CGTRINH i u ki n: TEN_THAU = 'Cty xd so 6' Trong CSDL, tn th u c m t c hai b ng CGTRINH v CHUTHAU, nn ta ch c n d t K trn b ng CGTRINH d ch n bu c trn. Luu : Sinh vin c n ph i m b ng CGTRINH d xem d li u th c t c a b ng; nhu trong tru ng h p ny tn th u Cng Ty xy d ng s 6 du c luu tr thnh chu i 'cty xd so 6'. Cu truy v n: Select TEN_CTR, DiaCHI_CTR From CGTRINH Where TEN_THAU = 'cty xd so 6';

b. Tm tn v d a ch lin l c c a cc ch th u thi cng cng trnh trc su L Kim Dung thi t k .Phn tch cu h i: Yu c u cho bi t: TEN_THAU, DCHI_THAU i u ki n: TINH_THANH = 'Can tho' L y t b ng: CHUTHAU

C n Tho do ki n

t K trn b ng: CGTRINH

V HOTEN_KTS = 'Le Kim Dung' Trong CSDL, h tn KTS c m t c hai b ng KTRUCSU vTHIETKE, nhung ta ph i ch n b ng THIETKE, v b ng ny m i cho bi t KTS no thi t k cng trnh no, v v y ta d t K trn b ng: THIETKE Nhu v y, ta s truy xu t 3 b ng: CHUTHAU, CGTRINH, THIETKE. Ta th y cc b ng ny d u lin thng v i nhau, nghia l chng c c t chung, c th n i k t t nhin du c. Luu : Khi cu truy v n truy xu t thng tin t nhi u b ng th nh ph i: - M t d y d cc di u ki n k t n i cc b ng. - Cc c t chung ph i d t tn b ng (ho c b danh n u b ng d c b danh) pha tru c tn c t, phn cch b ng d u ch m. - Khi d t b danh cho b ng khng c t kha AS Cu truy v n: Select distinct a.TEN_THAU, DCHI_THAU From CHUTHAU a, CGTRINH b, THIETKE c Where a.TEN_THAU = b.TEN_THAU And b.STT_CTR = c.STT_CTR And TINH_THANH = 'can tho' And HOTEN_KTS = 'le kim dung';

c. Hy cho bi t noi t t nghi p c a cc ki n trc su d thi t k cng trnh Khch S n Qu c T C n Tho.Phn tch cu h i: Yu c u cho bi t: NOI_TN i u ki n: TEN_CTR = 'KS Quoc Te' L y t b ng: KTRUCSU t K trn b ng: CGTRINH

Gio trnh th c hnh H QTCSDL

Trang 24

Khoa CNTT & TT - HCT V TINH_THANH ='Can Tho' Nhu v y, ta s truy xu t 2 b ng: KTRUCSU v CGTRINH. Tuy nhin, ta th y hai b ng ny khng lin thng nhau hay khng c c t chung, khng th n i k t t nhin du c. Hay ni cch khc, hai b ng ny khng cho bi t KTS no d thi t k cng trnh Khch s n qu c t . V y, ta ph i thm vo b ng THIETKE trong truy v n. Cu truy v n: Select NOI_TN From KTRUCSU a, CGTRINH b, THIETKE c Where a.HOTEN_KTS = c.HOTEN_KTS And b.STT_CTR = c.STT_CTR And TEN_CTR = 'khach san quoc te' And TINH_THANH ='can tho';

d. Cho bi t h tn, nam sinh, nam vo ngh c a cc cng nhn c chuyn mn hn ho c di n d tham gia cc cng trnh m ch th u L Van Son d trng th u.Phn tch cu h i: Yu c u cho bi t: HOTEN_CN, NAMS_CN, NAM_VAO_N i u ki n: CH_MON = 'Han' Ho c CH_MON = 'Dien' V TEN_THAU = 'Le Van Son' t K trn b ng: CGTRINH Nhu v y, ta s truy xu t 2 b ng: CONGNHAN v CGTRINH. Tuong t nhu cu c, hai b ng ny khng cho bi t cng nhn no d tham gia cng trnh no. V y, ta ph i thm vo b ng THAMGIA trong truy v n. Luu : Trong danh sch cc di u ki n v a c AND v a c OR, ta ph i dng d u ngo c d ch r th t ki m tra di u ki n. Cu truy v n: Select HOTEN_CN, NAMS_CN, NAM_VAO_N From CONGNHAN a, CGTRINH b, THAMGIA c Where a.HOTEN_CN = c.HOTEN_CN And b.STT_CTR = c.STT_CTR And ( CH_MON = 'Han' or CH_MON = 'Dien' And TEN_THAU = 'Le Van Son'; L y t b ng: CONGNHAN t K trn b ng: CONGNHAN

)

e. Nh ng cng nhn no d b t d u tham gia cng trnh Khch s n Qu c T C n Tho trong giai do n t ngy 15/12/94 d n ngy 31/12/94, s ngy tuong ng l bao nhiu.Phn tch cu h i: Yu c u cho bi t: HOTEN_CN, NGAY_TGIA, SO_NGAY i u ki n: NGAY_TGIA thu c '12/15/94' -> '12/31/94' TEN_CTR = 'KS Quoc Te' V TINH_THANH ='Can Tho' Nhu v y, ta s truy xu t 2 b ng: THAMGIA v CGTRINH. Ta l y t b ng: THAMGIA (Ta khng c n l y t b ng CONGNHAN v khng c n cc thng tin khc c a cng nhn) t K trn THAMGIA t K trn b ng: CGTRINH

Gio trnh th c hnh H QTCSDL

Trang 25

Khoa CNTT & TT - HCT Luu : C n luu v cch bi u di n ngy thng l bi u di n 'ngy-tn thng-nam'; vd: '15-Dec1994'. Cu truy v n: Select HOTEN_CN, NGAY_TGIA, SO_NGAY From CGTRINH b, THAMGIA c Where b.STT_CTR = c.STT_CTR And NGAY_TGIA between '15-Dec-1994' And '31-Dec-1994' And TEN_CTR = 'khach san quoc te' And TINH_THANH ='can tho';

f. Cho bi t tn v d a ch c a cng trnh m cng nhn Nguy n Hng Vn dang tham gia vo ngy 18/12/94.Phn tch cu h i: Yu c u cho bi t: TEN_CTR, DCHI_CTR Ta l y t b ng: CGTRINH i u ki n: ang tham gia vo ngy 18/12/94 c nghia l: ngy 18/12/94 ph i n m trong kho ng t ngy b t d u v ngy k t thc tham gia (ngy k t thc t c l ngy b t d u tham gia + s ngy tham gia). NGAY_TGIA = '12/18/94' HOTEN_CN = 'Nguyen Hong Van' Cu truy v n: Select TEN_CTR, DIACHI_CTR From CGTRINH b, THAMGIA c Where b.STT_CTR = c.STT_CTR And NGAY_TGIA = '18-Dec-1994' And HOTEN_CN = 'nguyen hong van'; t K trn THAMGIA

g. Cho bi t h tn v nam sinh c a cc ki n trc su d t t nghi p thnh ph H Ch Minh v d thi t k t nh t m t cng trnh c kinh ph d u tu trn 400 tri u d ng.Phn tch cu h i: Yu c u cho bi t: HOTEN_KTS, NAMS_KTS i u ki n: NOI_TN = 'TP HCM' V KINH_PHI > 400 L y t b ng: KTRUCSU t K trn b ng: KTRUCSU t K trn b ng: CGTRINH

Nhu v y, ta s truy xu t 2 b ng: KTRUCSU v CGTRINH. Tuong t cu c, v hai b ng ny khng lin thng nhau nn ta ph i thm vo b ng THIETKE trong truy v n. Luu : - V don v tnh c a kinh ph trong CSDL l tri u d ng nn 400 tri u s l 400. - T 't nh t m t' trong cu truy v n c th b qua v n u m t KTS khng c cng trnh no tho di u ki n th khi d t K ch n v k t n i, KTS d s t d ng b lo i b . Quy lu t ny p d ng dng cho m i cu truy v n. Cu truy v n: Select a.HOTEN_KTS, NAMS_KTS From KTRUCSU a, CGTRINH b, THIETKE c

Gio trnh th c hnh H QTCSDL

Trang 26

Khoa CNTT & TT - HCT Where And And And a.HOTEN_KTS = c.HOTEN_KTS b.STT_CTR = c.STT_CTR NOI_TN = 'tp hcm' KINH_PHI > 400;

V. BI T P T

LM:

1. CSDL: Qu n l bo ch (CSDL2)B ng 1. B ng 2. BAIBAO(STT_BAI, TUA, MA_THLOAI) BAOTCHI(MA_BAO_TC, TEN, DCHI_TS, TEL, DINH_KY) M i bi bo du c dnh m t s th t phn bi t, c m t t a bi v cho bi t n thu c th lo i no. M i t bo ho c t p ch c m t m ring bi t, c m t tn, m t d a ch to so n, m t s di n tho i, v du c xu t b n theo m t d nh k no d. B ng 3. B ng 4. THELOAI(MA, DGIAI) DANGBAI(STT_BAI, MA_BAO_TC, SO_BAO_TC, TRANG) M i th lo i bi bo c m t m th lo i v m t di n gi i. M i bi bo khi du c dang trong m t bo ho c t p ch no d, th du c ghi nh n l d dang trong s bo ho c s t p ch no v dang t i trang s m y. B ng 5. B ng 6. PHATHANH(MA_BAO_TC, SO_BAO_TC, NGAY) VIETBAI(STT_BAI, BUT_HIEU) M i s bo ho c s t p ch khi du c pht hnh s du c ghi nh n ngy pht hnh. M i bi bo du c vi t b i m t tc gi m ta ghi nh n b ng bt hi u.

2. Yu c u 1: Tm s thng thuong gi a cc b ng trong CSDL2 3. Yu c u 2: t synonym cho cc b ng ny t schema CSDL2. Sau d m cc b ng d li u d xem ki u d li u c a t ng tru ng v quan st d li u c a t ng b ng. 4. Yu c u 3: Hy vi t cu l nh SQL d tr l i cc cu h i sau:a. Tm tn cc bo / t p ch c dang bi c a tc gi T Phan. Cho bi t dang trn s no? u c pht hng vo nh ng ngy no? b. N i dung c a t p ch Ki n th c ngy nay s 156 g m nh ng bi t a g? ang t trang no? c. Cho bi t t a v th lo i t t c cc bi bo do tc gi Nguy n Tr ng Vinh sng tc v d du c dang trn cc bo / t p ch xu t b n hng tu n. Cho bi t d ng th i tn v s c a t bo / t p ch tuong ng m i bi du c dang. d. Cho bi t cc s bo / t p ch v cc ngy pht hnh tuong ng trong nam 1994 c a t bo Lao d ng. e. T Tu i tr ch nh t s 23 c nh ng bi bt k no? (Cho bi t t a c a chng) f. Cho bi t ngy dang, tn v s c a t bo / t p ch d dang bi "Chc vui nam L n". g. Cho bi t tn, d a ch v s di n tho i c a t bo t p ch d dang bi "Tm hi u ch t d c sarin" trong tu n l t 23/04/95 d n 30/04/1995. h. Tc gi Hn Ng c C m c nh ng truy n no d du c dang trn bo / t p ch? Cho bi t t a c a chng. i. Cho bi t s lu ng bi bo m t p ch Ki n th c ngy nay d dang trn t t c cc s bo.

Gio trnh th c hnh H QTCSDL

Trang 27

Khoa CNTT & TT - HCT j. Cho bi t th lo i c a cc bi bo do cc tc gi c h L sng tc. k. Tm t a cc bi tho d du c dang trn cc bo/t p ch trong tu n l t 23/4/95 d n 30/4/95. l. Tm tn cc tc gi du c dang bi trn bo C u Chi n Binh. m. Tm tn nh ng bo/t p ch c dang x lu n. In ra tn cc bi x lu n d v cc s bo/t p ch tuong ng.

Gio trnh th c hnh H QTCSDL

Trang 28

Khoa CNTT & TT - HCT

BI 3I. M C CHLuy n t p cu l nh SELECT l ng nhau d tr l i cho cc cu h i c n s d ng php giao ho c php tr . Ngoi ra, cn luy n t p kh nang v n d ng cc hm k t t p max, min, sum, count, avg.

II. L THUY T 1. D ng cu ch a select con:SELECT FROM WHERE ( SELECT FROM [WHERE ] ) [AND | OR ( SELECT FROM [WHERE ] ) [ ... ] ] * i u ki n ch a select con c cc d ng sau dy: D ng 1. D ng 2. D ng 3. D ng 4. D ng 5. (): ALL (): ANY|SOME (): [NOT] IN (): [NOT] EXISTS (): K dng khi gi tr c a c t so snh dng v i gi tr tr v t select con. K dng khi gi tr c a c t so snh dng v i t t c cc gi tr tr v t select con. K dng khi gi tr c a c t so snh dng v i b t k m t gi tr no tr v t select con. K dng khi gi tr c a c t n m trong t p h p cc gi tr tr v c a select con. k dng khi k t qu tr v c a select con khc r ng. Cc d ng ny ph i du c l a ch n s d ng h p l ty theo k t qu tr v c a select con nhu sau: Select con tr v : M t dng Nhi u dng M tc t D ng 1 D ng 2, 3, 4 Nhi u c t D ng 5

Gio trnh th c hnh H QTCSDL

Trang 29

Khoa CNTT & TT - HCT

2. D ng cu s d ng php h p (union), giao (intersect), tr (minus):( SELECT ) UNION | INTERSECT | MINUS ( SELECT )

III. BI T P C HU NG D N: 1. CSDL: Qu n l cng trnh (CSDL1)B ng 1. B ng 2. B ng 3. B ng 4. KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KT) CHUTHAU(TEN_THAU, TEL, DCHI_THAU) CHUNHAN(TEN_CHU, DCHI_CHU) CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON)

B ng 5. CGTRINH(STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) B ng 6. B ng 7. THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) THIETKE(HOTEN_KTS, STT_CTR, THU_LAO)

Tham kh o bi 2 d xem di n gi i cho t ng b ng.

2. Yu c u 1: Hy vi t cu l nh SQL d tr l i cc cu h i sau: a. Cho bi t h tn cc ki n trc su v a thi t k cc cng trnh do Cng ty Xy d ng s 6 thi cng, v a thi t k cc cng trnh do ch th u L Van Son thi cng.Phn tch cu h i: C th minh h a cu h i ny b ng hnh nh giao nhau c a hai t p sau:

H tn cc KTS c thi t k ctr do ch th u 'cty xd so 6' thi cng

H tn cc KTS c thi t k ctr do ch th u 'Le Van Son' thi cng Vng giao nhau gi a hai t p chnh l vng k t qu c n tm.

V y ta ph i tm hai t p h p ny b ng hai cu l nh SELECT v giao chng l i v i nhau. Tuy nhin, v php giao khng du c h tr tr c ti p nn ta s d ng d ng cu SELECT l ng nhau trong d s d ng t kha IN d k t n i select cha v select con v i nhau (t c l d ng di u ki n ch a select con s 4 d d c p trn). Luu : Cch nh n bi t d ng cu h i s d ng php GIAO d tr l i: Yu c u tm m t v a th c hi n ny hay s h u m t ny, l i v a th c hi n khc hay s h u m t khc Cu truy v n: Select distinct HOTEN_KTS From THIETKE a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TEN_THAU = 'cty xd so 6'

Gio trnh th c hnh H QTCSDL

Trang 30

Khoa CNTT & TT - HCT INTERSECT (Select HOTEN_KTS From THIETKE a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TEN_THAU = 'le van son'); Th c m c: Hai l nh select trn c th d i ch cho nhau du c khng? Ho c: s d ng select l ng nhau nhu sau: Select distinct HOTEN_KTS From THIETKE a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TEN_THAU = 'cty xd so 6' and HOTEN_KTS in (Select HOTEN_KTS From THIETKE a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TEN_THAU = 'le van son'); Luu : Trong cu SELECT con d ng ny (dng t kha IN) ta ch du c select m t c t duy nh t (khng du c select nhi u c t), v c t select ph i l c t ta d t trong di u ki n ch a select con. Trong v d trn d l c t hoten_kts. Th c m c: Hai l nh select cha v con c th d i ch cho nhau du c khng?

b. Cho bi t tn cng trnh c kinh ph cao nh t.Phn tch cu h i: V ta chua bi t kinh ph cao nh t l bao nhiu nn ta ph i dng m t select con k t h p v i hm max d tm ra con s ny. V ch c duy nh t m t con s l n nh t, nn ta c th s d ng d ng di u ki n ch a select con s 1. Cu truy v n: Select TEN_CTR From CGTRINH Where KINH_PHI = (Select max(KINH_PHI) From CGTRINH); Luu : i v i cc cu h i d ng cu h i: Tm s h u m t < l n / nh / nhi u / ...>. nh t. Ta d u ph i s d ng select con trong cu truy v n.

c. Cho bi t h tn cc cng nhn c tham gia cc cng trnh khng c tham gia cng trnh Vinh Long.Phn tch cu h i:

C n Tho, nhung

Nhu ta bi t CSDL c a ta ch luu tr nh ng thng tin c hay d x y ra. V v y d tr l i du c cy h i ny, ta ch c th l y t p h p nh ng cng nhn c tham gia C n Tho tr di t p h p nh ng cng nhn c tham gia Vinh Long, nhu minh h a trong trong hnh sau:

H tn Cng Nhn c tham gia cc cng trnh

H tn Cng Nhn c tham gia cc cng trnh 'Vinh Long' Vng bn tri chnh l vng k t qu c n tm

Gio trnh th c hnh H QTCSDL

Trang 31

Khoa CNTT & TT - HCT V y tru c h t ta ph i tm hai t p h p ny b ng hai cu l nh SELECT v sau d tr t p th nh t cho t p th hai. Tuy nhin, v php tr khng du c h tr tr c ti p nn ta s d ng d ng cu SELECT l ng nhau trong d s d ng t kha NOT IN d k t n i select cha v select con v i nhau (t c l d ng di u ki n ch a select con s 4 d d c p trn). Luu : Cch nh n bi t d ng cu h i s d ng php TR d tr l i:

Yu c u tm m t c th c hi n ny hay s h u m t ny, nhung khng (ho c chua) th c hi n khc hay s h u m t khc Cu truy v n: Select distinct HOTEN_CN From THAMGIA a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TINH_THANH = 'can tho' Minus (Select HOTEN_CN From THAMGIA a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TINH_THANH = 'vinh long'); Th c m c: Hai cu select ny c th d i ch cho nhau du c khng? Ho c: s d ng l ng nhau nhu sau: Select distinct HOTEN_CN From THAMGIA a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TINH_THANH = 'can tho' and HOTEN_CN NOT IN (Select HOTEN_CN From THAMGIA a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TINH_THANH = 'vinh long'); Th c m c: Select cha va select con c a cu truy v n trn c th d i ch cho nhau du c khng?

d. Cho bi t tn c a cc ch th u d thi cng cc cng trnh c kinh ph l n hon t t c cc cng trnh do ch th u Phng D ch v S Xy d ng thi cng.Phn tch cu h i: Tru c h t ta ph i dng m t select d tm t t c cc kinh ph c a cc cng trnh do ch th u Phng d ch v s xy d ng thi cng. Sau d m t select th 2 d tm cc ch th u thi cng cc cng trnh l n hon t t c cc kinh ph ny. Ta th y hai cu select ny c th l ng nhau select th nh t s l select con v n du c th c hi n tru c, cn select th 2 s l select cha, v select cha s dng di u ki n ch a select con d ng th 2 (c t kha ALL). Cu truy v n: Select TEN_THAU From CGTRINH Where KINH_PHI > ALL (Select KINH_PHI From CGTRINH Where TEN_THAU = 'phong dich vu so xd'); Th c m c: Cu ny ta c th vi t l i b ng cch s d ng d ng di u ki n ch a select con s 1 du c khng?

Gio trnh th c hnh H QTCSDL

Trang 32

Khoa CNTT & TT - HCT

e. Tm tn v d a ch nh ng th u d trng th u cng trnh c kinh ph th p nh t.Phn tch cu h i: V ta chua bi t kinh ph th p nh t l bao nhiu nn ta ph i dng m t select con k t h p v i hm min d tm ra con s ny. V ch c duy nh t m t con s nh nh t, nn ta c th s d ng d ng di u ki n ch a select con s 1. Cu truy v n: Select a.TEN_THAU, DCHI_THAU From CHUTHAU a, CGTRINH b Where a.TEN_THAU = b.TEN_THAU And KINH_PHI = (Select min(KINH_PHI) From CGTRINH); Th c m c: - D ng cu h i ny gi ng cu h i no trong bi th c hnh ny? - Cu ny c th s d ng d ng di u ki n ch a select con s 3 hay khng?

f. Tm h tn v chuyn mn c a cc cng nhn tham gia cc cng trnh do ki n trc su 'Le Thanh Tung' thi t k .Phn tch cu h i: Tru c h t ta ph i dng m t select d tm s th t cc cng trnh do ki n trc su L Thanh Tng thi t k . Sau d dng m t select th 2 d tm cc cng nhn d tham gia vo cc cng trnh tm du c. Ta th y hai cu select ny c th l ng nhau: select th nh t s l select con v n du c th c hi n tru c, cn select th 2 s l select cha, v select cha s dng di u ki n ch a select con d ng th 4. Cu truy v n: Select a.HOTEN_CN, CH_MON From CONGNHAN a, THAMGIA b Where a.HOTEN_CN = b.HOTEN_CN and b.STT_CTR IN (Select STT_CTR From THIETKE Where HOTEN_KTS = 'le thanh tung');

g. Tm cc c p tn ch th u c trng th u cc cng trnh t i cng m t thnh ph .Phn tch cu h i: V m i dng trong b ng CGTRINH ch cho bi t ch th u no thi cng cng trnh no, nn d tm du c nh ng c p ch th u trng th u cc cng trnh t i cng thnh ph , th ta ph i m b ng CGTRINH hai l n v i hai b danh khc nhau, k t n i chng b ng cc di u ki n khc tn th u nhung cng t nh thnh: a.TEN_THAU b.TEN_THAU a.TINH_THANH = b.TINH_THANH Tuy nhin, v i di u ki n k t n i nhu v y, ta s nh n du c hai dng cho m i c p v i th t tn th u ngu c nhau; ch ng h n: (Le Van Son, Cty xd so 6) v (Cty xd so 6, Le Van Son). kh c ph c tnh tr ng ny, ta s a l i di u ki n k t n i (1) b ng: a.TEN_THAU < b.TEN_THAU Cu truy v n: Select Distinct c1.TEN_THAU, c2.TEN_THAU, c1.TINH_THANH From CGTRINH c1, CGTRINH c2 Where c1.TEN_THAU < c2.TEN_THAU and c1.TINH_THANH = c2.TINH_THANH; (1)

Gio trnh th c hnh H QTCSDL

Trang 33

Khoa CNTT & TT - HCT

h. Tm cc c p tn c a cc cng nhn c lm vi c chung v i nhau trong t nh t l hai cng trnh.Phn tch cu h i: Tru c h t ta ph i dng m t select d tm cc c p h tn cng nhn c tham gia cng cng trnh. Sau d dng m t select th hai truy xu t t k t qu c a select th nh t d nhm t ng c p cng nhn l i v d m s cng trnh h tham gia chung v i nhau, ch n ra nh ng c p c s cng trnh tham gia chung l n hon ho c b ng 2. V select th nh t c n du c luu l i tru c khi select th hai th c hi n nn select th nh t s n m trong m nh d FROM c a select th hai. Cu select th nh t hon ton tuong t nhu cu h trn. V m i dng trong b ng THAMGIA ch cho bi t cng nhn no tham gia cng trnh no, nn d tm du c nh ng c p cng nhn tham gia cng cng trnh, th ta ph i m b ng THAMGIA hai l n v i hai b danh khc nhau, k t n i chng b ng cc di u ki n: a.HOTEN_CN b.HOTEN_CN a.STT_CTR = b.STT_CTR Tuy nhin, v i di u ki n k t n i nhu v y, ta s nh n du c hai dng cho m i c p v i th t h tn ngu c nhau; ch ng h n: (Nguyen Van A, Tran Thi B) v (Tran Thi B, Nguyen Van A). kh c ph c tnh tr ng ny, ta s a l i di u ki n k t n i (1) b ng: a.HOTEN_CN < b.HOTEN_CN Cu truy v n: Select t1.HOTEN_CN As cn1, t2.HOTEN_CN As cn2, t1.STT_CTR From THAMGIA t1, THAMGIA t2 Where t1.HOTEN_CN < t2.HOTEN_CN and t1.STT_CTR = t2.STT_CTR ; Luu : M c d hai c t l y t hai b ng v i b danh khc nhau nhung c tn gi ng nhau, nn ta ph i d t l i tn c t b ng t kha AS th m i c th luu l i. Ta c th d t tn cho k t qu trung gian ny nhu d t b danh cho b ng. Select cn1, cn2 From (Select t1.HOTEN_CN As cn1, t2.HOTEN_CN As cn2, t1.STT_CTR From THAMGIA t1, THAMGIA t2 Where t1.HOTEN_CN < t2.HOTEN_CN and t1.STT_CTR = t2.STT_CTR) tam Group by cn1, cn2 Having count(STT_CTR) >= 2; (1)

IV. BI T P T

LM:

1. CSDL: Qu n l mua bn hng ha (CSDL3)B ng 1. B ng 2. HANGHOA(MA_HANG,TEN_HG) DAILY(STT_DL, TEN_DL, DCHI_DL) M i hng ha du c gn m t m hng ring bi t d d phn bi t, v c m t tn hng. M i d i l du c gn m t s th t phn, c m t tn d i l v m t d a ch lin l c.

Gio trnh th c hnh H QTCSDL

Trang 34

Khoa CNTT & TT - HCT B ng 3. MUA(MA_HANG, STT_DL, NGAY_MUA, SOLG_MUA, TRIGIA_MUA)

Khi m t d i l mua m t m t hng no d (MA_HANG), vo m t ngy no d (NGAY_MUA), s du c ghi nh n l i s lu ng mua v tr gi mua t ng c ng. B ng 4. BAN(MA_HANG, STT_DL, NGAY_BAN, SOLG_BAN, TRIGIA_BAN) Khi m t d i l bn m t m t hng no d (MA_HANG), vo m t ngy no d (NGAY_BAN), s du c ghi nh n l i s lu ng bn v tr gi bn t ng c ng.

2. Yu c u 1: Tm s thng thuong gi a cc b ng trong CSDL3 3. Yu c u 2: t synonym cho cc b ng ny t schema CSDL3. Sau d m cc b ng d li u d xem ki u d li u c a t ng tru ng v quan st d li u c a t ng b ng. 4. Yu c u 3: Hy vi t cu l nh SQL d tr l i cc cu h i sau:a. Tm tn nh ng d i l v a c bn coca cola v a c bn pepsi cola. b. Tm tn nh ng m t hng du c mua nhung chua du c bn. c. Tm tn v d a ch nh ng d i l c mua cng m t hng v i V n L i mua. d. Cho bi t tn cc m t hng du c t nh t l hai d i l mua vo v i s lu ng trn 50. e. Tm t ng tr gi mua Coca Cola f. Tm t ng tr gi bn Coca Cola d i l Tn Hi p Hung. d i l Tn Hi p Hung. d i l Tn Hi p Hung vo c hai ngy 15/12/94 v ngy d i l Tn Hi p Hung trong

g. Tm tn nh ng m t hng du c bn 31/12/94.

h. C bao nhiu m t hng du c mua vo nhung chua du c bn ra thng 12 nam 1994. i. Tm tn cc m t hng c mua v bn trong cng m t ngy

cng m t d i l.

j. Tm tn v d a ch c a cc d i l v nh ng m t hng c s lu ng mua v bn b ng nhau trong cng m t ngy. k. Tm tn d i l d mua coca cola v i s lu ng nhi u hon t t c cc d i l khc.

Gio trnh th c hnh H QTCSDL

Trang 35

Khoa CNTT & TT - HCT

BI 4I. M C CH:Luy n t p cu l nh SELECT c GROUP BY, HAVING c k t h p v i cc d ng SELECT d th c t p cc bi tru c.

II. L THUY T:Cu l nh SQL s d ng trong bi ny: SELECT , FROM [ WHERE ] GROUP BY [, [,...]] HAVING C php t o b ng t m (tham chi u d n m t kh i l nh truy v n): WITH AS () [, AS () [,]] SELECT FROM WHERE ; Ch : b ng t m ch c nghia trong cu truy v n khai bo ngay sau n.

III. BI T P C HU NG D N 1. CSDL: Qu n l Cng Trnh (CSDL 1)1. KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KT) 2. CHUTHAU(TEN_THAU, TEL, DCHI_THAU) 3. CHUNHAN(TEN_CHU, DCHI_CHU) 4. CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) 5. CGTRINH(STT_CTR, TEN_CTR, DIACHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) 6. THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) 7. THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) Tham kh o bi 2 d xem di n gi i cho t ng b ng.

2. Yu c u 1: Hy vi t cu l nh SQL d tr l i cc cu h i sau: a. Tm t ng kinh ph c a t t c cc cng trnh theo t ng ch th u.Phn tch cu h i:

Gio trnh th c hnh H QTCSDL

Trang 36

Khoa CNTT & TT - HCT V m i dng d li u trong b ng CGTRINH ch cho bi t kinh ph c a t ng cng trnh, nn mu n bi t t ng kinh ph theo t ng ch th u th ta ph i nhm cc dng d li u theo c t TEN_THAU, sau d dng hm sum d c ng kinh ph cho m i nhm. Cu truy v n: Select TEN_THAU, sum(KINH_PHI) As TongKP From CGTRINH Group by TEN_THAU; Th c m c: N u trong m nh d Select ta thm c t TEN_CTR th c du c khng?T i sao?

b. Cho bi t h tn cc ki n trc su c t ng th lao thi t k cc cng trnh l n hon 25 tri u.Phn tch cu h i: V m i dng d li u trong b ng THIETKE ch cho bi t th lao thi t k c a m t ki n trc su cho m t cng trnh no d, nn mu n bi t t ng th lao thi t k cc cng trnh c a t ng ki n trc su, th ta ph i nhm cc dng d li u theo c t HOTEN_KTS, sau d dng hm sum d c ng th lao cho m i nhm. Sau cng, dng m nh d HAVING d ch n l i cc nhm (hay cc ki n trc su) c t ng th lao > 25. Cu truy v n: Select HOTEN_KTS, sum(THU_LAO) As TongTL From THIETKE Group by HOTEN_KTS Having sum(THU_LAO) > 25;

c. Cho bi t s lu ng cc ki n trc su c t ng th lao thi t k cc cng trnh l n hon 25 tri u.Phn tch cu h i: Cu h i ny tuong t nhu cu b, nhung thay v li t k h tn cc ki n trc su th a di u ki n, th ta ch c n cho bi t c t ng c ng bao nhiu ki n trc su th a di u ki n nhu v y. V v y, tru c h t ta ph i tm danh sch cc ki n trc su th a di u ki n tru c r i m i d m trn danh sch tm du c. Hay ni khc hon, ta ph i th c hi n 2 bu c b ng 2 l nh select: Cu 1. Gi ng h t cu b, nhung cu ny d t trong m nh d FROM c a cu 2. Cu 2. m s dng trn b ng k t qu c a cu 1. Cu Truy V n: Select count(*) As Solg_KTS From (Select HOTEN_KTS, sum(THU_LAO) As TongTL From THIETKE Group by HOTEN_KTS Having sum(THU_LAO) > 25); Th c m c: Ta c nh t thi t l ph i d m phn bi t khng?

d. Tm t ng s cng nhn d tham gia c a m i cng trnh.Phn tch cu h i: V m i dng d li u trong b ng THAMGIA ch cho cng nhn no tham gia cng trnh no, nn mu n bi t t ng s cng nhn d tham gia theo t ng cng trnh, th ta ph i nhm cc dng d li u

Gio trnh th c hnh H QTCSDL

Trang 37

Khoa CNTT & TT - HCT theo c t STT_CTR, sau d dng hm count d d m s dng (m i dng l m t cng nhn) trong m i nhm d c du c t ng s cng nhn tham gia. Cu truy v n: Select STT_CTR, count(*) As TongSoCN From THAMGIA Group by STT_CTR; Th c m c: Trong m nh d Select c a cu ny c th thm c t HOTEN_CN khng?

e. Tm tn v d a ch cng trnh c t ng s cng nhn tham gia nhi u nh t.Phn tch cu h i: Cu h i ny tuong t nhu cu d, nhung thay v cho bi t t ng s cng nhn tham gia c a t t c cc cng trnh, th dy ta ch yu c u k t xu t ra cng trnh no c t ng s cng nhn tham gia nhi u nh t. V v y, tru c h t ta ph i th c hi n cu d tru c d t k t qu c a n v i b danh a, t b ng a ny ta m i c th ch n ra cng trnh c t ng s cng nhn tham gia nhi u nh t du c. V y, ta ph i th c hi n 2 cu select: Cu 1. gi ng h t cu d, cu ny s d t trong m nh d FROM c a cu 2, d t b danh a. Cu 2. Ch n ra dng c TongSoCN cao nh t t k t qu cu 1 (b ng a), d ng th i k t n i v i b ng CGTRINH d l y thng tin v tn v d a ch cng trnh. Cu truy v n: Select TEN_CTR, DIACHI_CTR, TongSoCN From (Select STT_CTR, count(*) As TongSoCN From THAMGIA Group by STT_CTR) a, CGTRINH b Where a.STT_CTR = b.STT_CTR And TongSoCN = (Select Max(TongSoCN) From (Select STT_CTR, count(*) As TongSoCN From THAMGIA Group by STT_CTR) );

f. Cho bi t tn cc thnh ph v kinh ph trung bnh cho m i cng trnh c a t ng thnh ph tuong ng.Phn tch cu h i: V m i dng d li u trong b ng CGTRINH ch cho bi t kinh ph c a m i cng trnh v cho bi t cng trnh d no thu c t nh thnh no, nn mu n bi t kinh ph trung bnh cho m i cng trnh c a t ng thnh ph , th ta ph i nhm cc dng d li u theo c t TINH_THANH, sau d dng hm avg d tnh kinh ph trung bnh cho m i nhm (t c l m i thnh ph ). Cu truy v n: Select From TINH_THANH, Avg(KINH_PHI) As KinhPhiTB CGTRINH Group By TINH_THANH;

g. Cho bi t h tn cc cng nhn c t ng s ngy tham gia vo cc cng trnh l n hon t ng s ngy tham gia c a cng nhn Nguyen Hong Van.Phn tch cu h i:

Gio trnh th c hnh H QTCSDL

Trang 38

Khoa CNTT & TT - HCT tr l i du c cu h i ny tru c h t ta ph i bi t t ng s ngy tham gia cc cng trnh c a m i cng nhn. Sau d m i ch n ra nh ng cng nhn c t ng s ngy ny l n hon t ng s ngy c a cng nhn Nguy n H ng Vn. V v y, ta ph i th c hi n hai bu c ny b ng 2 cu Select: Cu 1. Nhm d li u trong b ng THAMGIA theo HOTEN_CN, v tnh t ng s ngy tham gia. Cu ny n m trong m nh d FROM c a cu select 2, d t b danh cho b ng k t qu l a. Cu 2. Ch n cc dng trn b ng a th a di u ki n. Cu truy v n: Select HOTEN_CN, TongSoNgay From (Select HOTEN_CN, Sum(SO_NGAY) As TongSoNgay From THAMGIA Group By HOTEN_CN) Where TongSoNgay > (Select Sum(SO_NGAY) From THAMGIA where HOTEN_CN = 'nguyen hong van')

h. Cho bi t t ng s cng trnh m m i ch th u d thi cng t i m i thnh ph .Phn tch cu h i: V m i dng d li u trong b ng CGTRINH ch cho cng trnh no thu c t nh thnh no v do ch th u no thi cng, nn mu n bi t t ng s cng trnh m m i ch th u d thi cng t i m i t nh thnh, th ta ph i nhm cc dng d li u theo 2 c t TEN_THAU v TINH_THANH, sau d dng hm count d d m s dng chnh l s cng trnh c a m i nhm. Cu truy v n: Select From Group By TEN_THAU, TINH_THANH, Count (STT_CTR) CGTRINH TEN_THAU, TINH_THANH As TongSoCTR

i. Cho bi t h tn cng nhn c tham giaPhn tch cu h i:

t t c cc cng trnh.

V m i dng d li u trong b ng THAMGIA ch cho cng nhn no tham gia cng trnh no, nn mu n bi t cng nhn no c tham gia h t t t c cc cng trnh tru c h t ta d m xem m i cng nhn d tham gia t ng c ng bao nhiu cng trnh, dua vo b ng t m. Sau d, ch n t b ng t m nh ng cng nhn c t ng s cng trnh tham gia b ng v i t ng s cng trnh ta c, b ng cch d m s dng trong b ng CGTRINH. Cu truy v n: Select HOTEN_CN From ( Select HOTEN_CN, Count (STT_CTR) From THAMGIA Group by HOTEN_CN) Where TongSoCtrTG = (Select Count(*) From CGTRINH);

As

TongSoCtrTG

Gio trnh th c hnh H QTCSDL

Trang 39

Khoa CNTT & TT - HCT

IV. BI T P T

LM

1. CSDL: Qu n l mua bn hng ha (CSDL3)1. HANGHOA(MA_HANG,TEN_HG) 2. DAILY(STT_DL, TEN_DL, DCHI_DL) 3. MUA(MA_HANG, STT_DL, NGAY_MUA, SOLG_MUA, TRIGIA_MUA) 4. BAN(MA_HANG, STT_DL, NGAY_BAN, SOLG_BAN, TRIGIA_BAN) Tham kh o bi 3 d xem di n gi i cho t ng b ng.

2. Yu c u 1: Hy vi t cu l nh SQL d tr l i cc cu h i sau:a. Tm don gi mua trung bnh c a bia Si gn tnh trn t t c cc d i l. b. Tm don gi mua trung bnh c a bia Si gn tnh trn trn t ng d i l c. Hi n th s lu ng t n kho c a t ng m t hng theo t ng d i l. d. Tm tn, d a ch c a d i l c t ng gi tr mua trong m t ngy l n hon 700000. e. V i m i d i l, hy cho bi t ngy no c s lu ng m t hng bn ra l t nh t. f. Tm tn v d a ch c a nh ng d i l c t ng tr gi bn cao nh t. g. Tm t ng s ti n m m i d i l d chi d mua hng theo t ng thng. h. Tm tn v t ng s lu ng bn ra c a cc m t hng d bn du c v i s lu ng nhi u nh t c a t ng d i l. i. Cho bi t t ng s mn hng m m i d i l kinh doanh (mua v bn). j. Tm tn d i l d mua vo m t hng bia Heineken v i don gi mua l cao nh t.

Gio trnh th c hnh H QTCSDL

Trang 40

Khoa CNTT & TT - HCT

BI 5I. M C CH:Luy n t p cu l nh SELECT c s d ng cc hm hm x l chu i, hm x l ngy thng, hm chuy n ki u, ...; k t h p v i cc d ng cu SELECT c a cc bi tru c.

II. L THUY T: 1. Cc hm x l d li u: a. Cc hm x l chu i:LENGTH(): Tr v d di chu i. INSTR(,,,): Tr v v hi n l n th i c a chu i con b trong chu i a, b t d u tm t v tr x. N u x= '30-jan-2006' and ngay_ta