43
Giaùo trình Oracle caên baûn Muïc tieâu baøi giaûng Sau khoùa hoïc, hoïc vieân coù theå: Laøm vieäc vôùi caùc öùng duïng treân ORACLE. Vieát caâu hoûi keát xuaát döõ lieäu theo yù muoán. Hieäu chænh, caäp nhaät CSDL ôû cöûa soå leänh. Vieát caùc ñoaïn chöông trình ñôn giaûn. Taïo ñöôïc caùc Form vaø Report. 1. Laøm vieäc vôùi öùng duïng truy caäp CSDL Oracle 1.1 Khôûi ñoäng vaø thoaùt khoûi Oracle 1.1.1 ÔÛ Server SQLDBA cung caáp caùc dòch vuï quaûn trò heä thoáng, nhö: taïo laäp CSDL, môû - ñoùng CSDL, taïo vaø quaûn lyù caùc USER ... Ñeå laøm vieäc vôùi CSDL ORALE, quaûn trò vieân vaøo SQLDBA, connect internal (khoâng coù password), môû CSDL ORALE baèng leänh startup. Khi startup, Oracle khôûi taïo instance, mount CSDL vaø môû CSDL. Khi startup xong CSDL ñaõ saün saøng ñeå laøm vieäc, Sau khi startup coù theå thoaùt khoûi SQLDBA baèng leänh exit. Sau khi laøm vieäc xong, tröôùc khi taét maùy phaûi ñoùng CSDL, vaøo SQLDBA, connect internal vaø phaùt leänh Shutdown. Khi Shutdown, Oracle seõ ñoùng CSDL, dismount CSDL, loaïi boû Instance. 1.1.2 ÔÛ Client Caùc öùng duïng cuûa oracle chaïy trong moâi tröôøng Windows vôùi giao dieän graphic, caùc öùng duïng thöôøng duøng coù SQL*Plus, Oracle Form, Oracle

Giao Trinh Oracle

Embed Size (px)

DESCRIPTION

Oracle

Citation preview

Giao trnh Oracle can banMuc tieu bai giangSau khoa hoc, hoc vien co the: Lam viec vi cac ng dung tren ORACLE. Viet cau hoi ket xuat d lieu theo y muon. Hieu chnh, cap nhat CSDL ca so lenh. Viet cac oan chng trnh n gian. Tao c cac Form va Report.1. Lam viec vi ng dung truy cap CSDL Oracle1.1 Khi ong va thoat khoi Oracle 1.1.1 ServerSQLDBA cung cap cac dch vu quan tr he thong, nh: tao lap CSDL, m - ong CSDL, tao va quan ly cac USER ...e lam viec vi CSDL ORALE, quan tr vien vao SQLDBA, connect internal (khong co password), m CSDL ORALE bang lenh startup.Khi startup, Oracle khi tao instance, mount CSDL va m CSDL.Khi startup xong CSDL a san sang e lam viec, Sau khi startup co the thoat khoi SQLDBA bang lenh exit. Sau khi lam viec xong, trc khi tat may phai ong CSDL, vao SQLDBA, connect internal va phat lenh Shutdown.Khi Shutdown, Oracle se ong CSDL, dismount CSDL, loai bo Instance. 1.1.2 ClientCac ng dung cua oracle chay trong moi trng Windows vi giao dien graphic, cac ng dung thng dung co SQL*Plus, Oracle Form, Oracle Report, Oracle Case Dictionary ... Viec chay cac ng dung nay hoan toan giong nh viec chay cac ng dung thong thng trong moi trng windows.e lam viec vi cac ng dung truy cap CSDL Oracle, ngi s dung (NSD) phai connect vao CSDL. Co hai cach e connect. Connect NSD/password, v du NSD ten Scott co password la tiger th Connect Scott/tiger Phat lenh connect vi ten NSD, khi o Oracle se hoi passwordConnect ScottEnter password: *****NSD co the lam viec trong pham vi cho phep cua mnh ma Oracle goi la khung canh (Schema) cua NSD. Moi khung canh cha nhieu oi tng cac loai, NSD ch co the tac ong len cac oi tng trong khung canh cua mnh.Trong cac ng dung eu co chc nang thoat va t ong disconnect.1.2 Truy cap CSDL Oracle Oracle cung cap tap lenh SQL e truy cap CSDL, ngoai ra oracle cung co nhieu cong cu tien dung gian tiep truy cap CSDL nh Oracle form, Oracle report... Tuy nhien cac cong cu nay cung phai thong qua cac lenh SQL khi truy cap CSDL.2. SQL, SQL*Plus va PL/SQL2.1 Gii thieu ngon ng SQL2.1.1 Lch s phat trien cua ngon ng SQLMo hnh c s d lieu (CSDL) quan he do E.F Codd a ra vao au thap ky 70, t o en nay no lien tuc phat trien tr thanh mo hnh CSDL pho bien bac nhat.SQL (Structured Query Language, oc la sequel) la tap lenh truy xuat CSDL quan he. Ngon ng SQL c IBM s dung au tien trong he quan tr CSDL System R vao gia nhng nam 70, he ngon ng SQL au tien (SEQUEL2) c IBM cong bo vao thang 11 nam 1976. Nam 1979, tap oan ORACLE gii thieu thng pham au tien cua SQL, SQL cung c cai at trong cac he quan tr CSDL nh DB2 cua IBM va SQL/DS.Ngay nay, SQL c s dung rong rai va uc xem la ngon ng chuan e truy cap CSDL quan he. 2.1.2 Chuan SQLNam 1989, vien tieu chuan quoc gia Hoa ky (ANSI) cong nhan SQL la ngon ng chuan e truy cap CSDL quan he trong van ban ANSI SQL89. Nam 1989, to chc tieu chuan quoc te (ISO) cong nhan SQL ngon ng chuan e truy cap CSDL quan he trong van ban ISO 9075-1989.Tat ca cac he quan tr CSDL ln tren the gii cho phep truy cap bang SQL va hau het theo chuan ANSI.2.1.3 u iem cua SQLSQL co nhieu u iem cho ngi s dung, t ngi s dung au cuoi cho en cac thao chng vien, cac quan tr vien, cac nha quan ly. Ngon ng khong moduleSQL la ngon ng khong module v no lam viec vi tap hp cac mau tin va cho phep di chuyen t ong en cac muc d lieu. SQL cho phep lam viec vi cau truc d lieu cap cao hn la phai thao tac tren tng mau tin. Cac lenh SQL cho phep au vao va au ra la mot tap hp cac mau tin, ket qua cua cau lenh SQL co the la au vao cua mot cau lenh SQL tiep theo.SQL khong bat ngi s dung phai ch ra phng phap truy cap CSDL va do o giup ngi s dung co the tap trung vao cong viec chnh. Tat ca cac lenh SQL eu s dung phng thc toi u hoa, ngi s dung khong can biet en cac ch muc, chc nang toi u hoa se nhan biet va s dung mot cach thch hp. Ngon ng cho moi ngi s dungSQL c s dung di nhieu goc o tuy theo ngi s dung, nh Ngi quan tr he thong Ngi quan tr CSDL Ngi quan tr viec bao mat Ngi thao chng ng dung Ngi c he thong ho tr e ra quyet nh Ngi s dung di nhieu dang khacSQL co tap lenh de hoc va tng oi ong nhat cho moi ngi s dung. Ngon ng hp nhatSQL cung cap tap lenh hp nhat c s dung cho nhieu muc ch khac nhau, nh Truy van d lieu Them, cap nhat, xoa cac mau tin Tao lap, thay the, hieu chnh, huy cac object ieu khien viec truy cap CSDL va cac object Bao am tnh thong nhat va toan ven d lieu Ngon ng chung cho tat ca cac CSDL quan heBi v tat ca cac he quan tr CSDL ln eu cho phep s dung SQL, v vay ban co the ap dung nhng kien thc ve SQL khi lam viec vi cac he quan tr CSDL khac nhau. Hn na, cac ng dung viet bang SQL eu co the chuyen oi c, do o ban co the chuyen mot ng dung tren he quan tr CSDL nay sang he quan tr CSDL khac ma khong phai hieu chnh nhieu. Nhung SQLNhung SQL hieu theo ngha la viec s dung lenh SQL trong cac ngon ng lap trnh co cau truc. Nhung SQL la tap hp cac lenh sau: Tat ca cac lenh SQL, nh : SELECT, INSERT... Cac lenh ieu khien, nh : PREPARE, OPEN... nham ket cac lenh SQL chuan vao ngon ng lap trnh cau truc.ORACLE cung cap cac tien bien dch (Precompiler) cho cac ngon ng nhung SQL, bao gom: Tien bien dch Pro*Ada Tien bien dch Pro*C Tien bien dch Pro*COBOL Tien bien dch Pro*FORTRAN Tien bien dch Pro*PASCAL Tien bien dch Pro*PL/I Cac cong cu cua ORACLE Hau het cac cong cu cua ORACLE eu cho phep s dung SQL, tuy nhien co mot so ac thu rieng khi s dung SQL tuy theo tng cong cu.2.1.4 Soan thao, thc thi mot chng trnh Thc thi chng trnh trong SQL*PlusDung lenh start hoac ky t @ e ch nh thc thi chng trnh trong SQL*Plus, v du thc thi chng trnh EXAMPLE.SQLSQL> start example.sqlHaySQL> @example.sql Soan thao chng trnhCac chng trnh SQL co the soan thao bang cac phan mem soan thao van ban. Phan mem soan thao van ban mac nhien trong SQL*Plus hien la NotePad cua Microsoft Windows, NSD co the khai bao phan mem soan thao khac neu muon.e kch hoat phan soan thao, dung lenh ED, v du soan thao tap tin EXAMPLE.SQLSQL > ED EXAMPLE.SQLe lu tr lenh trong buffer vao tap tin dung lenh SAVE, v du lu noi dung buffer vao tap tin BUFFER.SQLSQL > SAVE BUFFER.SQL Cac chu thch trong chng trnh SQL*PlusCo the them cac ghi chu, dien giai khi viet cac lenh SQL.S dung /* */ cho cac comment dai can e tren nhieu dongS dung (--) cho cac comment tren mot dong2.1.5 Ket xuatMac nhien ket qua ket xuat ra man hnh va troi lien tuc, neu muon ket qua ket xuat ra tap tin van ban phai SET SPOOL ON va ch ra ten tap tin cha ket qua.V duSET SPOOL ONSET SPOOL TO C:\RESULT.TXTCach nay rat tien li cho viet chng trng sinh chng trnh (cac chng trnh Generate)e ngng ket xuat vao tap tin SET SPOOL OFF2.2 Cac thanh phan cua SQL2.2.1 Cac schema objectSchema la tap hp cac cau truc logic cua d lieu, c goi la cac object cua schema. Mot schema c s hu bi mot ngi s dung CSDL va c mang ten cua ngi s dung. Moi ngi s dung co mot schema duy nhat. Cac object cua schema (schema object) co the c tao lap va thao tac thong qua cac lenh SQL va bao gom cac object sau Cac schema object Cluster - cac bo d lieu Data link - cac lien ket d lieu Stand-alone function - cac ham n le Stand-alone procedure - cac thu tuc n le Index - cac ch muc Package - cac goi thu tuc va ham Sequence - cac day tuan t Snapshot - cac ban sao d lieu Synonym - cac ong ngha Table - cac bang Database trigger View - cac bang ao Profile Role - vai tro Rollback segment Tablespace Cac thanh phan con cua Schema object- Cac cot trong mot bang- Cac rang buoc toan ven trong mot bang - Cac package procedure, package function va cac object khac trong mot package2.2.2 Cac quy tac at ten object1. Ten dai t 1 en 30 ky t, ngoai tr ten CSDL khong qua 8 ky t va ten lien ket co the dai en 128 ky t2. Ten khong cha dau nhay ()3. Khong phan biet ch hoa ch thng4. Ten phai bat au bang ky t ch trong bo ky t cua CSDL5. Ten ch co the cha ky t so trong tap ky t cua CSDL. Co the dung cac ky t _, $, #. ORACLE khong khuyen khch dung cac ky t $ va #.6. Ten khong c trung vi cac t a dung bi ORACLE (xemphu luc 1)7. Ten khong c cach khoang trong8. Ten co the at trong cap dau nhay kep, khi o ten co the bao gom cac ky t bat ky, co the bao gom khoang trong, co the dung cac t khoa cua ORACLE, phan biet ch hoa ch thng.9. Ten phai duy nhat trong khong gian ten nhat nh. Cac object thuoc cung khong gian ten phai co ten khac nhau.Cac b danh cua cot, b danh bang, ten ngi s dung, mat khau mac du khong phai la cac object hoac cac thanh phan con cua object nhng cung phai c at ten theo cac quy tac tren, ngoai tr B danh cot, b danh bang ch ton tai khi thc hien cac lenh SQL va khong c lu tr trong CSDL, do vay khong ap dung quy tac 9 ve khong gian ten.Mat khau khong thuoc ve khong gian ten nao va do o cung khong ap dung quy tac 9.Nen theo mot quy tac at ten thong nhat2.2.3 Cac quy tac khi tham chieu en object Cu phap chung khi tham chieu en cac objectS o chung khi tham chieu cac object hoac thanh phan cua cac objectSchema.Object.Part.@dblinkTrong oobjectTen objectschemaSchema cha objectpartThanh phan cua objectdblinkTen CSDL cha object ORACLE giai quyet viec tham chieu cac objectKhi ban tham chieu en mot object trong cau lenh SQL, ORACLE phan tch cau lenh va va xac nh cac object trong khong gian ten. Sau khi xac nh cac object, ORACLE thc hien cac thao tac ma cau lenh quy nh tren object. Neu ten object truy cap khong thuoc khong gian ten th cau lenh khong c thc hien va co thong bao loi.Cau lenh sau them mot mau tin vao bang DEPTINSERT INTO Dept VALUES (50, SUPPOR, PARIS)Theo ng canh cua cau lenh, ORACLE xac nh bang Dept co the la Mot table trong schema cua ban Mot view trong schema cua ban ong ngha rieng cho table hoac view ong ngha chung cho table hoac view Tham chieu en cac object khong thuoc quyen s hue tham chieu en cac object khong thuoc schema hien thi, phai ch ra ten cua schema cha object muon truy cap schema.objectV du e xoa table EMP trong schema SCOTTDROP TABLE scott.emp Tham chieu cac object t xae truy cap en mot CSDL xa, sau ten object phai ch ra ten lien ket CSDL (database link) cua CSDL cha object muon truy cap. Database link la mot schema object, ORACLE dung e tham nhap va truy xuat CSDL t xa.2.2.4 Kieu d lieu (Datatype) CHARKieu CHAR dung e khai bao mot chuoi co chieu dai co nh, khi khai bao bien hoac cot kieu CHAR vi chieu dai ch nh th tat ca cac muc tin cua bien hay cot nay eu co cung chieu dai c ch nh. Cac muc tin ngan hn ORACLE se t ong them vao cac khoang trong cho u chieu dai. ORACLE khong cho phep gan muc tin dai hn chieu dai ch nh oi vi kieu CHAR. Chieu dai toi a cho phep cua kieu CHAR la 255 byte VARCHAR2Kieu VARCHAR2 dung e khai bao chuoi ky t vi chieu dai thay oi. Khi khai bao mot bien hoac cot kieu VARCHAR2 phai ch ra chieu dai toi a, cac muc tin cha trong bien hay cot kieu VARCHAR2 co chieu dai thc s la chieu dai cua muc tin. ORACLE khong cho phep gan muc tin dai hn chieu dai toi a ch nh oi vi kieu VARCHAR2. Chieu dai toi a kieu VARCHAR2 la 2000 byte VARCHARHien tai ORACLE xem kieu VARCHAR2 va VARCHAR la nh nhau, tuy nhien ORACLE khuyen nen dung VARCHAR2. ORACLE d nh trong tng lai dung kieu VARCHAR e cha cac chuoi vi chieu dai bien oi, nhng trong phep so sanh se c ch nh theo nhieu ng ngha khac nhau. NUMBERKieu so cua ORACLE dung e cha cac muc tin dang so dng, so am, so vi dau cham ong.NUMBER(p, s) trong op : so ch so trc dau cham thap phan (precision), p t 1 en 38 ch sos : so cac ch so tnh t dau cham thap phan ve ben phai (scale), s t -84 en 127NUMBER(p) so co dau cham thap phan co nh vi precision bang p va scale bang 0NUMBER so vi dau cham ong vi precision bang 38. Nh rang scale khong c ap dung cho so vi dau cham ong.V du sau cho thay cach thc ORACLE lu tr d lieu kieu so tuy theo cach nh precision va scale khac nhau

D lieu thcKieuLu tr 7456123.89 NUMBER 7456123.89 7456123.89 NUMBER(9) 7456123 7456123.89 NUMBER(9,2) 7456123.89 7456123.89 NUMBER(9,1) 7456123.8 7456123.89 NUMBER(6)khong hp le 7456123.8 NUMBER(15,1) 7456123.8 7456123.89 NUMBER(7,-2) 7456100 7456123.89 NUMBER(-7,2)khong hp leFLOATDung e khai bao kieu so dau cham ong, vi o chnh xac thap phan 38 hay o chnh xac nh phan la 126.FLOAT(b) Khai bao kieu dau cham ong vi o chnh xac nh phan la b, b t 1 en 126. Co the chuyen t o chnh xac nh phan sang o chnh xac thap phan bang cach nhan o chnh xac nh phan vi 0.30103 LONGDung e khai bao kieu chuoi ky t vi o dai bien oi, chieu dai toi a cua kieu LONG la 2 gigabyte. Kieu LONG thng c dung e cha cac van ban.Co mot so han che khi dung kieu LONG Mot table khong the cha nhieu hn mot cot kieu LONG D lieu kieu LONG khong the tham gia vao cac rang buoc toan ven, ngoai tr kiem tra NULL va khac NULL Khong the index mot cot kieu LONG Khong the truyen tham so kieu LONG cho ham hoac thu tuc Cac ham khong the tra ve d lieu kieu LONG Trong cau lenh SQL co truy cap cac cot kieu LONG, th viec cap nhat hoac khoa cac bang ch cho phep trong cung mot CSDLNgoai ra, cac cot kieu LONG khong c tham gia trong cac thanh phan sau cua cau lenh SQL Cac menh e WHERE, GROUP BY, ORDER BY, CONNECT BY hoac vi tac t DISTINCT trong cau lenh SELECT Cac ham s dung trong cau lenh SQL nh SUBSTR, INSTR Trong danh sach la chon cua cau lenh SELECT co s dung menh e GROUP BY Trong danh sach la chon cua cau hoi con, cau hoi co s dung cac toan t tap hp Trong danh sach la chon cua cau lenh CREATE TABLE AS SELECT DATEDung e cha d lieu ngay va thi gian. Mac du kieu ngay va thi gian co the c cha trong kieu CHAR va NUMBER.Vi gia tr kieu DATE, nhng thong tin c lu tr gom the ky, nam, thang, ngay, gi, phut, giay. ORACLE khong cho phep gan gia tr kieu ngay trc tiep, e gan gia tr kieu ngay, ban phai dung TO_DATE e chuyen gia tr kieu chuoi ky t hoac kieu so. Dang mac nh cua gia tr kieu DATE c khai bao trong tham so he thong NLS_DATE_FORMAT. V du NLS_DATE_FORMAT = DD-MON-YYNeu gan mot gia tr kieu ngay ma khong ch thi gian th thi gian mac nh la 12 gi em, Neu gan gia tr kieu ngay ma khong ch ra ngay, th ngay mac nh la ngay au cua thang. Ham SYSDATE cho biet ngay va thi gian he thong.Tnh toan oi vi kieu ngayoi vi d lieu kieu ngay, ban co the thc hien cac phep toan cong va tr.V du SYSDATE+1 ngay hom sauSYSDATE-7 cach ay mot tuanSYSDATE+(10/1440) mi phut sauNgay JulianLa gia tr so cho biet so ngay ke t ngay 1 thang gieng nam 4712 trc cong nguyen.V duSELECT TO_CHAR (TO_DATE(01-01-1992, MM-DD-YYYY), J) JULIAN FROM DUALCho ket quaJULIAN-----------------------------------------------2448623 RAW va LONG RAWKieu RAW va LONG RAW dung e cha cac chuoi byte, cac d lieu nh phan nh hnh anh, am thanh. Cac d lieu kieu RAW ch co the gan hoac truy cap ch khong c thc hien cac thao tac nh oi vi chuoi ky t.Kieu RAW giong nh kieu VARCHAR2 va kieu LONG RAW giong kieu LONG, ch khac nhau cho ORACLE t ong chuyen oi cac gia tr kieu CHAR, VARCHAR2 va LONG gia tap hp ky t cua CSDL va tap ky t cua cac ng dung. ROWIDMoi mau tin trong CSDL co mot a ch co kieu ROWID. ROWID gom block.row.file, trong oblock: chuoi he bat phan cho biet block cha rowrow: chuoi he bat phan cho biet row trong blockfile: chuoi he bat phan cho biet database file cha blockV du0000000F.0000.0002Row au tien trong block 15 cua data file th hai. MLSLABELKieu MLSLABEL dung e cha label dang nh phan ma ORACLE dung e am bao hoat ong cua ban than he thong. Chuyen oi kieuNo chung mot bieu thc khong the gom cac gia tr thuoc nhieu kieu khac nhau, tuy nhien ORACLE cho phep chuyen oi gia cac kieu d lieu.ORACLE ngam chuyen oiORACLE t ong chuyen kieu cua d lieu trong mot so trng hp sauKhi INSERT hoac UPDATE gan gia tr cho cot co kieu khac, ORACLE se t ong chuyen gia tr sang kieu cua cot.Khi s dung cac ham hoac cac toan t ma cac tham so co kieu khong tng thch th ORACLE se t ong chuyen kieu.Khi s dung toan t so sanh ma cac gia tr co cac kieu khac nhau, ORACLE se t ong chuyen kieu.V du 1SELECT ename FROM emp WHERE hiredate = 12-MAR-1993ORACLE a t ong chuyen chuoi 12-MAR-1993 sang kieu DATE trong phep so sanhV du 2SELECT ename FROM emp WHERE ROWID = 00002514.0001.0001ORACLE a t ong chuyen chuoi 00002514.0001.0001 sang kieu ROWID trong phep so sanhNgi s dung t chuyen oiORACLE cung cap cac ham e chuyen oi kieu, v duTO_NUMBER Chuyen sang kieu soTO_CHAR Chuyen sang kieu ky tTO_DATE Chuyen sang kieu ngay (xem phan tra cu cac ham va thu tuc)2.2.5 D lieu rong (Null)Cot co gia tr rong (NULL) la cot cha c gan gia tr, noi cach khac no cha c khi tao gia tr. Cac cot vi bat kieu d lieu nao cung co the co tr NULL, tr khi c no la khoa hay co rang buoc toan ven NOT NULL. NULL trong cac ham cua SQLTrong cac ham lam viec vi tng cot hay ham vo hng (scalar function)Cac ham loai nay tra ve tr null khi co tham so null, tr ham NVL va TRANSLATE co the tra ve gia tr thc. V duNVL(comm,0) tra ve tr 0 khi comm la nullTrong cac ham lam viec vi nhom cac cot (group function)Hau het cac ham lam viec tren nhom bo qua tr null, v du nh khi s dung ham AVG e tnh trung bnh cho mot cot co cac gia tr 1000, null, null, null, 2000 khi o trung bnh c tnh la (1000+2000)/2=1500, nh vay tr null b bo qua ch khong phai xem la la tr 0. NULL trong cac bieu thc so sanhe kiem tra co phai null hay khong dung cac toan t IS NULL hoac IS NOT NULL. Neu trong bieu thc so sanh co tr null tham gia va ket qua cua bieu thc phu thuoc vao tr null th ket qua la khong xac nh, tuy nhien trong bieu thc DECODE, hai gia tr null c xem la bang nhau trong phep so sanh. NULL trong bieu thc ieu kienORACLE xem cac bieu thc vi ket qua khong xac nh tng ng vi FALSE, v du comm = NULL co ket qua khong xac nh va do o bieu thc so sanh xem nh cho ket qua FALSE. Trong cau lenh sau khong co mau tin nao c chonSELECT * FROM emp WHERE comm=NULLNeu muon chon cac nhan vien co comm la NULL th phai dung toan t IS NULLSELECT * FROM emp WHERE comm IS NULL2.2.6 Cac cot gia (Pseudocolumn)Cac cot gia giong nh cac cot that cua bang nhng khong thc s cha d lieu trong bang. Co the select t cot gia nhng khong the insert, update hay delete. CURVAL va NEXTVALSequenceSequence la obect dung e phat sinh day so tuan t, thng c dung e lam khoa.e tao sequence, dung lenh create nh sauCREATE SEQUENCE sequence_name INCREMENT BY integer START WITH integer[MAXVALUE integer][MINVALUE integer][CYCLE/NO CYCLE]V duCREATE SEQUENCE sample_sequence INCREMENT 1 STRAT WITH 2 MAXVALUE 100e lam viec vi cac sequence, dung lenh SQL vi cac cot gia sauCURVALCho gia tri hien thi cua sequenceNEXTVALTang gia tri hien thi cua sequence va cho gia tr sau khi tangphai xac nh ten sequence trc curval va nextvalsequence.CURVALsequence.NEXTVALe truy cap cac sequence khong thuoc schema hien thi, th phai ch ra ten schemaschema.sequence.CURVALschema.sequence.NEXTVALe truy cap cac sequence t xa, th con phai ch ra [email protected]@dblinkS dung sequenceCURVAL va NEXTVAL co the c s dung trong cac trng hp sau: Trong danh sach la chon cua cau lenh SELECT Trong menh e VALUES cua cau lenh INSERT Trong menh e SET cua cau lenh UPDATE Khong c s dung CURVAL va NEXTVAL trong cac trng hp sau Trong cau hoi con Trong cac view va snapshot Trong cau lenh SELECT co tac t DISTINCT Trong cau lenh SELECT co s dung GROUP BY hay ORDER BY Trong cau lenh SELECT co s dung cac phep toan tap hp nh UNION, INTERSET, MINUS Trong menh e WHERE cua cau lenh SELECT Ga tr DEFAULT cua cot trong cau lenh CREATE TABLE hay ALTER TABLE Trong ieu kien cua rang buoc CHECKLevelCo the nh ngha quan he tha ke trong cau hoi bang menh e STAR WITH va CONNECT BY trong cau lenh SELECT, moi mau tin la mot node trong cay phan cap. Cot gia LEVEL cho biet cap cua mau tin hay cap cua node trong quan he tha ke.Root node la node cap cao nhatChild node la node con hay khong phai la root nodeParent node la node co node conLeaf node la node khong co node conRowwidMoi mau tin trong table ORACLE co mot a ch, cot gia ROWID cho biet a ch nay. Moi ROWID gom block.row.fileROWID co nhieu u iem sau Qua ROWID la cach nhanh nhat e dnh v mot mau tin Cho biet mau tin c lu tr nh the nao La unique identify cho table ROWID khong thay oi trong suot qua trnh ton tai cua mau tin.V du sau cho biet ROWID va ten nhan vien trong table empSELECT ROWID, ename from emp where depno = 20RownumLa cot gia cho biet th t cua mau tin trong ket qua tra ve cua cau lenh SELECT, v du e chon t hn 10 mau tin trong table emp SELECT * FROM emp WHERE ROWWNUM < 10Lu y ieu kien kiem tra ROWID ln hn so nguyen dng luon luon cho tr FALSE, cau lenh SELECT sau cho ket qua rongSELECT * FROM emp WHERE ROWNUM > 1Row th nhat c kiem tra va gan ROWNUM la 1, ieu kien khong thoa man. Row th hai c lay ra va xem nh row au tien (do row th nhat a b loai), do vay lai gan ROWNUM bang 1. C the khong co row nao c chon.2.3 Toan t, ham, bieu thc va ieu kien2.3.1 Toan t Toan t thao tac tren cac muc d lieu va tra ve cac ket qua, cac muc d lieu goi la cac toan hang hay oi so. Cac toan t c bieu dien bang cac ky hieu hoac t khoa. Co hai loai toan t la toan t mot toan hangva toan t hai toan hang. Toan t mot toan hangoperator operand Toan t hai toan hangoperand1 operator operand2 o u tieno u tien la th t thc hien cac toan t trong mot bie thc. Trong mot bieu thc, cac toan t vi o u tien cao se c thc hien trc, cac toan t co o u tien nh nhau se thc hien tuan t t trai sang phai.Bang sau cho biet th t u tien cua cac toan t Toan t so+, - : Toan t mot toan hang ch so am hay dng, toan t hai toan hang ch phep cong hay phep tr*, / : Ch phep nhan hay chia Toan t chuoi ky t|| : Ket noi chuoi ky t Toan t so sanh= : Toan t bang hay tng ng!=, ^=, +, : Toan t khac hay khong tng ng> : Toan t ln hn< : Toan t nho hn>= : Toan t ln hn hoac bang= ALL (1400, 3000) [NOT] BETWEEN x AND y : [Khong] ln hn hoac bang x va nho hn hoac bang y. V duSELECT * FROM emp WHERE sal BETEEN 2000 AND 3000EXISTS : Tra ve TRUE neu co ton tai. V duSELECT dname FROM dept WHEREEXISTS (SELECT * FROM emp WHERE dept.deptno = emo.deptno)x [NOT] LIKE y : ung neu x [khong] giong khung mau y. Cac ky t dung trong khuon mau :Dau gach di (_) : Ch mot ky t bat kyDau phan tram (%) : Ch mot nhom ky t bat kyV du:ename LIKE SMITH_ co ket qua ung khi ename la SMITHE, SMITHYe chon nhng nhan vien co ten bat au bang SMSELECT * FROM emp WHERE ename LIKE SM%e tm nhng nhan vien co ten co chuoi A_BSELECT ename FROM emp WHERE ename LIKE %A\_B% ESCAPE \V ky hieu _ dung e ai dien cho mot ky t bat ky nen neu khong co menh e ESCAPE, cau lenh tren se tm tat ca cac nhan vien ten AAB, ABB, ACB, v.v... Neu muon ky hieu _ mang y ngha nguyen thuy, tc la khong con ai dien cho ky t bat ky na, ta at dau \ trc ky hieu. ong thi khai bao them menh e ESCAPE \Ta cung co the dung mot ky t bat ky thay cho \. Chang han menh e sau co cung ket qua vi menh e trenSELECT ename FROM emp WHERE ename LIKE %A^_B% ESCAPE ^Ta goi cac ky t nh \ hay ^ noi tren la cac ky t ESCAPE. IS [NOT] NULL :Kiem tra gia tr rong,V duSELECT * FROM emp WHERE comm IS NULL Toan t logicCac toan t Logic nh NOT, AND, OR Toan t tap hp UNION, INTERSET, MINUSUNION Ket hp ket qua cua nhieu cau hoi vi nhau, ch gi lai mot ai dien cho cac mau tin trung nhau.UNION ALLKet hp ket qua cua nhieu cau hoi vi nhau, cac mau tin trung nhau cung c lap laiINTERSET Lay phan giao cac ket qua cua nhieu cau hoiMINUS Lay ket qua co trong cau hoi th nhat ma khong co trong cau hoi th hai (cau hoi sau toan t MINUS)2.3.2 HamMoi ham co the co mot hoac nhieu tham so: Function (argument, argument,...). Cac ham chia lam hai nhom: Ham tac ong tren tng mau tinHam tren kieu soau vao va au ra la cac gia tr kieu soABS(n) cho gia tr tuyet oiCEIL(n) cho so nguyen nho nhat ln hn hoac bang nCOS(n) cho cosin cua n (n tnh bang radian)COSH(n) cho hypebol cosin cua nEXP(n) cho gia tr cua enFLOOR(n) cho so nguyen ln nhat bang hoac nho hn nLN(n) cho logarit nepe cua n, n >0LOG(m,n) cho logarit c so m cua nMOD(m,n) cho phan d cua phep chia m cho nPOWER(m,n)cho luy tha bac n cua mROUND(n[,m]) cho gia tr lam tron cua n (en cap m, mac nhien m=0)SIGN(n) cho dau cua n. n0 co SIGN(n)= 1SIN(n) cosin cua n (n tnh bang radian)SINH(n) cho hepebol sin cua nSQRT(n) cho can bac 2 cua n, n>=0TAN(n) cotang cua n (n tnh bang radian)TANH(n) cho hyperbole tang cua nTRUNC(n[,m]) cho gia tr n lay m ch so tnh t cham thap phanHam tren kieu ky t CONCAT(char1, char2)cho ket hp cua 2 chuoi ky t, tng t nh s dung toan t ||INITCAP(char) cho chuoi vi ky t au cac t la ky t hoaLOWER(char) cho chuoi ky t viet thng (khong viet hoa)LPAD(char1, n [,char2]) cho chuoi ky t co chieu dai bang n. Neu chuoi char1 ngan hn n th them vao ben trai chuoi char2 cho u n ky t. Neu chuoi char1 dai hn n th gi lai n ky t tnh t trai sangLTRIM(char1, n [,char2]) bo cac ky t trong ben traiNLS_INITCAP(char) cho chuoi vi ky t au cac t la ch hoa, cac ch con lai la ch thngREPLACE(char,search_string[,replacement_string])thay tat ca cac chuoi search_string co trong chuoi char bang chuoi replacement_string.V du REPLACE(JACK and JUE, J, BL) cho ket qua la BLUERPAD(char1, n, [,char2]) cho chuoi ky t co chieu dai bang n. Neu chuoi char1 ngan hn n th them vao ben phai chuoi char2 cho u n ky t. Neu chuoi char1 dai hn n th gi lai n ky t tnh t trai sangRTRIM(char1, n [,char2]) bo cac ky t trong ben phaiSOUNDEX(char) cho chuoi ong am cua char. V duSOUNDEX(SMYTHME) cho ket qua SMITHSUBSTR(char, m [,n])cho chuoi con cua chuoi char lay t v tr m ve phai n ky t, neu khong ch n th lay cho en cuoi chuoiSUBSTRB(char, m [,n]) tng t nh ham SUBSTR ch khac la m va n ch bang byte ch khong phai bang ky t. oi vi tap ky t CSDL mot byte th hai ham tren hoan toan tng ngTRANSLATE(char, from, to)cho chuoi trong o moi ky t trong chuoi from thay bang ky t tng ng trong chuoi to, nhng ky t trong chuoi from khong co tng ng trong chuoi to se b loai bo.V duTRANSLATE(2XYZ229, 0123456789ABCDE, 0123456789) cho ket qua 2229UPPER(char) cho chuoi ch hoa cua chuoi charASCII(char) cho ky t ASCII cua byte au tien cua chuoi charINSTR(char1, char2 [,n[,m]]) tm v tr chuoi char2 trong chuoi char1 bat au t v tr n, lan xuat hien th m.V duINSTR(CORPERATE FLOOR OR, 3, 2) cho ket qua la 14INSTRB(char1, char2 [,n[,m]]) giong INSTR nhng n tnh bang byte, v du khi tap ky t CSDL la 2 byte thINSTR(CORPERATE FLOOR OR, 5, 2)cho ket qua la 27LENGTH(char) cho chieu dai cua chuoi charLENGHTB(char) cho chieu dai tnh bang byte cua chuoi charHam tren kieu ngayADD_MONTHS(d, n) cho ngay d them n thang. V duTO_CHAR(ADD_MONTHS(TO_DATE(17-JUNE-1995,DD-MONTH-YYYY), 1))cho ket qua 17-JULY-1995LAST_DAY(d)cho ngay cuoi cung trong thang ch bi d. V duTO_CHAR(LAST_DAY(TO_DATE(17-JUNE-1995,DD-MONTH-YYYY))) cho ket qua la 30-JUNE-1995MONTH_BETWEEN(d1, d2) cho biet so thang gia ngay d1 va d2. V duMONTHS_BETWEEN(TO_DATE(02-02-1992,DD-MM-YYYY), TO_DATE(01-01-1992,DD-MM-YYYY) cho gia tr 1.03225806 Ham tac ong tren nhom cac mau tinAVG([DISTINCT/ALL] n) Gia tr trung bnh cua n,khong ke tr nullCOUNT([DISTINCT/ALL] expr) So row co expr khac nullMAX([DISTINCT/ALL] expr) Gia tr ln nhat cua exprMIN([DISTINCT/ALL] expr) Gia tr nho nhat cua exprSTDDVE([DISTINCT/ALL] n) Phng sai cua n khong ke tr nullSUM([DISTINCT/ALL] n) Tong cua cua n khong ke tr nullVARIANCE([DISTINCT/ALL] n) Variance cua n khong ke tr null2.3.3 Bieu thcBieu thc gom cac ham, cac bien, cac cot, cac toan t ..., v duLENGTH(MOOSE)+12SQRT(144)+20 Bieu thc Decode DECODE(EXPR, SEARCH, RESULT, DEFAULT)V du:DECODE (deptno, 10, ACCOUNTING, 20, RESEARCH, NONE)2.3.4 ieu kienLa cac bieu thc Logic cho ket qua TRUE hoac FALSE. V duename = SMITH(1=1) AND (5500),comm NUMBER(9,0) DEFAULT NULL,deptno NUMBER(2) CONSTRAINT nn_deptno NOT NULLCONSTRAINT fk_deptno REFERENCES scott.dept(deptno)) PCTFREE 5 PCTUSED 75V du 2CREATE TALE salgrade(grade NUMBER CONSTRAINT pk_salgrade PRIMARY KEY USING INDEX TALESPACE users_a, losal NUMBER, hisal NUMBER)TABLESPACE human_resourceSTORAGE (INITIAL 6144 NEXT 6144 MINEXTENTS 1 MAXEXTENTS 5 PCTINCREASE 5)2.ALTER TABLE : oi cau truc tableALTER TABLE tablename [ADD/MODIFY/DROP options ([column [column constraint) [ENABLE clause] [DISABLE clause]- Menh e ADD: them column hay constraint.V duALTER TABLE emp ADD (spouse_name CHAR(10)- Menh e MODIFY: sa o cau trucV duALTER TABLE emp MODIFY (ename CHAR(25)- Menh e DROP: bo column hay constraint.V duALTER TABLE emp DROP CONSTRAINT emp_mgrALTER TABLE DROP PRIMARY KEY- Menh e ENABLE/DISABLE: Che khuat hoac a vao s dung ma khong xoa hanV duALTER TABLE dept DISABLE CONSTRAINT dept_prim3. DROP TABLE xoa tableDROP TALE table_name [CASCADE CONSTRAINTS]Option CASCADE e xoa tat ca cac rang buoc toan ven lien quan en table bi xoa.V du:DROP TALE empKhi drop table th: Xoa tat ca d lieu View va synonym van con nhng khong co gia tr Cac giao dch cha gia quyet xong se c commit Ch ngi tao ra table hay DBA co the xoa table4. RENAME thay oi ten objectRENAME old TO newV duRENAME emp TO employee5. TRUNCATE TABLE xoa d lieu cua table, xoa tat ca cac row trong tableTRUNCATE TABLE table_name [REUSE STORAGE]Option REUSE STORAGE gi lai khung e cha, ch xoa d lieu6. DESCRIBE xem cau truc tableDESCRIBE table_name Lenh thao tac d lieuNhom lenh thao tac d lieu nh: select, insert, update, delete ... Cac lenh thao tac d lieu ch cap nhat thc vao CSDL ch khi c commit.DELETEEXPLAIN PLANINSERTLOCK TABLESELECTUPDATEMot so lenh hay dung1. SELECT : Truy xuat d lieuCau truc lenhSELECT [DISTINCT/ALL] [expr [c_ias]]FROM [table/view/snapshot] [t_alias][WHERE condition][START WITH condition CONNECT BY condition][GROUP BY expr] [HAVING condition][UNION/UNION ALL/INTERSET/MINUS select command] [ORDER BY expr/position [DESC/ASC]][FOR UPDATE OF [column]][NOTWAIT]Cac thanh phan trong cau lenh SELECTDISTINCTCh chon 1 cho cac row giong nhau trong ket quaALLKet xuat ca cac row giong nhau*Chon tat ca cac column trong table, view...table.*, view.*, snapshot.*Chon tat ca cac cot trong table, view hay snapshot c ch nhexprChon cac bieu thcc_aliasTen cot trong ket qua ket xuattable, view, snapshotTen table, view hay snapshotsubqueryCau hoi select cont_aliasTen cho cac tableWHEREChon cac row thoa ieu kien trong menh e WHERESTART WITH,CONNECT BYChon cac dong trong th t tha keGROUP BYNhom cac dong co expr giong nhauHAVINGChon nhng nhom thoa ieu kien menh e HAVINGUNION, UNION ALL, INTERSET, MINUSCho ket qua ket hp cac toan t tap hpORDER BYXep th t cac row theo expr hay position (trong danh sach select)ASC, DESCTrat t xuoi (mac nhien) hay ngcFOR UPDATEKhoa nhng row c chon, cho biet ban co y nh xoa hay cap nhat cac row nayNOTWAITTra quyen ieu khien neu khi muon lock row a b lock bi user khac.V du 1SELECT ename, sal+250 * 12 FROM emp WHERE sal < 1000;V du 2SELECT ename, sal, deptno FROM empWHERE sal = (SELECT MIN(sal) FROM emp GROUP BY deptno);V du 3SELECT deptno, MIN(sal), MAX(sal) FROM empWHERE job = CLERKGROUP BY deptnoV du 4SELECT deptno, dname FROM deptMINUSSELECT emp.deptno,dname FROM emp, dept WHERE emp.deptno=dept.deptno;V du 5SELECT deptno, AVG(sal) FROM empHAVING AVG(sal) > (SELECT AVG(sal) FROM WHERE deptno = 30) GROUP BY deptno;V du 6SELECT ( , 2*(LEVEL-1))||ename org_chart, empno, mgr, job FROM empWHERE job != ANALYSTSTART WITH job = PRESIDENTCONNECT BY PRIOR empno = mgrORDER BY empnoChu y:PRIOR cho biet empno thuoc node cha va mgr thuoc node con, trong ieu kien sau, PRIOR at trc empno do o empno thuoc node cha, mgr, sal va comm thuoc node conCONNECT BY PRIOR empno = mgr AND sal > salV du 7 SELECT empno, sal, commFROM emp, deptWHERE job = CLERKAND emp.deptno =dept.deptnoAND loc = NEW YORKFOR UPDATEKhoa cac row c chonV du 8 SELECT ename, job, dept.deptno, dnameFROM emp, deptWHERE emp.deptno(+) = dept.deptno(+) outer join Chon tatca cac row cua dept, nhng dept khong co nhan vien th ename va job bang null2. INSERT : Chen mot row vao tableINSERT INTO tablename ([column, column, ...])VALUES (value, value ...)V duINSERT INTO dept (depno, dname, loc) VALUES (50, MARKETING, SAN JOSE)Chep d lieu t table khacINSERT INTO table [(column, column...)]SELECT select_listFROM table(s)V duINSERT INTO emp_tmp (ename, sal)SELECT ename, sal FROM emp WHERE sal > 10003. UPDATE ROW : Cap nhat dongUPDATE table [alias]SET column [,column...] = [expr, subquery][WHERE condition]V du 1UPDATE empSET job = SALEMAN, hiredate = sysdate, sal = sal * 1.1WHERE ename = SCOTTV du 2UPDATE empSET comm = (SELECT comm FROM commission C WHERE C.empno = emp.empno)WHERE empno IN (SELECT empno FROM commission)V du 3UPDATE emp aSET deptno = (SELECT deptno FROM deptWHERE loc = BOSTON),(sal, comm) = (SELECT 1.1*AVG(sal),1.5*AVG(comm) FROM emp bWHERE a.deptno = b.deptno)WHERE deptno IN (SELECT deptno FROM dept WHERE loc = DALLAS OR loc = DETROIT)Chu thch:- Cap nhat cac nhan vien Dallas hoac Detroit- Thay DEPTNO cua cac nhan vien nay bang DEPTNO cua Boston- Thay lng cua moi nhan vien bang lng trung bnh cua bo phan * 1.1- Thay commission cua moi nhan vien bang commission trung bnh cua bo phan * 1.5 4. DELETE ROW : Xoa dongDELETE FROM table [WHERE condition]V duDELETE FROM empWHERE deptno = 10 Lenh ieu khien giao dchCOMMITROLLBACKSAVEPOINTSET TRANSACTION Lenh ieu khien sessionALTER SESSIONSET ROLE Lenh he thongALTER SYSTEM Nhung lenh SQLCLOSECONNECTDECLARE CURSORDECLARE DATABASEDECLARE STATEMENTDECLARE TABLEDESCRIBEEXECUTEEXECUTE IMMEDIATEFETCHOPENPREPARETYPEVARWHENEVER2.4.3 Cac bien trong SQL*Plus D lieu thay the trong cau lenhDung (&) e ch phan thay the trong cau lenh. V duSELECT * FROM empWHERE &ConditionEnter value for condition: sal > 1000Khi ay cau lenh tren tng ngSELECT * FROM empWHERE sal > 1000Neu dung (&&) ch bien thay the th sau cau lenh bien thay the van con ton tai Lenh DefineKhai bao va gan tr cho cac bien, v du khai bao bien condition co tri sal > 1000DEFINE condition = sal > 1000Khi o cau lenh sau khong yeu cau nhap vao gia tr cho coditionSELECT * FROM empWHERE &Conditione loai bo bien ra khoi bo nh dung lenh UNDEFINE, v duUNDEFINE conditione liet ke cac bien a khai bao dung lenh DEFINE ma khong ch bien, v duDEFINEDEFINE CONDITION = SAL > 1000 Lenh AcceptKhai bao va gan tr cho bien vi dong hien thACCEPT variable [NUMBER/CHAR] [PROMPT/NOPROMPT text] HIDEACCEPT Salary NUMBER PROMPT Salary figure: Salary figure : 3000Option hide cho phep che chuoi nhap lieu, hay dung khi nhap password.ACCEPT password CHAR PROMPT Enter password: HIDEPassword : ******2.4.4 Cac ViewBang ao hay cach nhn ve CSDL. Co the ket xuat d lieu t view. Tao cac viewCREATE [REPLACE] [FORCE] VIEW view_name [(column, column,...)]ASSELECT statement[WITH CHECK OPTION [CONSTRAINT constraint_name]]V du 1CREATE VIEW emp_viewAS SELECT empno, ename, sal FROM emp WHERE deptno = 10V du 2CREATE VIEW dept_summary(name, minsal, maxsal, avsal)AS SELECT dname, min(sal), max(sal), avg(sal) FROM emp, dept FROM emp, deptWHERE emp.deptno = dept.deptnoGROUP BY dname;V du 3CREATE VIEW dept_viewAS SELECT eame, sal*12 AnnsalFROM empWHERE deptno = 20; Xoa cac viewCh nhng ngi tao view mi co quyen DROPDROP VIEW dept_view2.5 Sql*Plus va PL/SQL2.5.1 SQL trong PL/SQL Moi lenh SQL ket thuc bang dau (;) Lenh nh ngha CSDL (DDL) khong c s dung trong PL/SQL Lenh SELECT tra ve nhieu dong co the gay exception Lenh DML co the tac ong tren nhieu dong2.5.2 PL/SQL blockKhoi lenh PL/SQL gom cac thanh phan nh trong v du sauV du 1DECLAREempno NUMBER(4):=7788;BEGINUPDATE emp SET sal = 9000WHERE empno = 0001;....END; V du 2DECLAREv_deptno NUMBER(2);v_loc VARCHAR2(15);BEGINSELECT deptno, locINTO v_deptno, v_locFROM deptWHERE dname = SALES;END; 2.5.3 Cau truc lap trnh PL/SQL IF IF condition THEN actions [ELSIF condition THEN actions] [ELSE actions]END IFV du 1IF ename := SCOTT THENbeam_me_up := YES;COMMIT;ELSEbeam_me_up := NO;ROLLBACK;END IF;V du 2IF choice= 1 THEN action := Run payroll;ELSIF choice=2 THEN action:=Run;ELSIF choice=3 THEN action:=Backup;ELSE action:=Invalid;END IF; LOOP va EXITLOOPactions;[EXIT loop_label [WHEN condition]]END LOOPV du 1:LOOPcounter:=counter-1INSERT INTO numbered_rows VALUES (counter);.....IF counter = 10 THEN COMMIT;EXIT;END IF;END LOOP;V du 2:LOOP.....EXIT WHEN total_sals = 60000;....END LOOP; FORFOR control_variable IN [REVERSE] low_value .. high_valueV duFOR I IN 1..2000LOOPINSERT INTO numbered_rows VALUES (i);preserve_i:=i;....END LOOP; WHILEWHILE conditionV duWHILE Bill 2000; Open cursorV duOPEN c1; FetchFETCH cursor_identifier INTO variable, variable...V duFETCH c1 into v_name, v_sal; CloseCLOSE cursor_identifierV duCLOSE c1Cac v du dung cursorDECLARECURSOR c1 IS SELECT dname, loc FROM dept FOR UPDATE OF loc;dept_recc1%ROWTYPE;sales_countNUMBER:=0;non_salesNUMBER:=0;BEGINOPEN c1;LOOPFETCH c1 INTO dept_rec;EXIT WHEN c1%NOTFOUND;IF dept_rec.dname = SALES AND dept rec.loc!=DALLASTHEN UPDATE dept SET loc=DALLAS WHERE CURRENT OF c1;sales_count:=sales_count+1;ELSIFdept rec.dname!=SALES AND dept rec.loc!=NEWYORK THENUPDATE dept SET loc =NEWYORK WHERE CURRENT OF c1;non_sales:=non_sales+1;END IF;END LOOP;CLOSE c1;INSERT INTO counts (sales_set, non_sales_set)VALUES (sales_count, non_sales);COMMIT;END;2.5.5 Lam viec vi exception ieu kien kch hoat exceptionCo 2 nhom exception:Cac exception cua ban than Oracle nh: NO_DATA_FOUND, FOUND, TOO_MANY_ROW ...Cac exception do ngi s dung khai baoCac exception he thong t ong b kch hoat trong cac trng hp nhat nh. Cac exception ngi s dung nh ngha phai t kch hoat, v duRAISE exception_identifier; Cac exception do ngi s dung nh nghaKhai bao exceptionidentifier EXCEPTION;V du:DECLAREcredit_exceeded EXCEPTION;BEGINIF stock_ordered > credit_limit THENRAISE credit_exceeded;END IF....EXCEPTIONWHEN credit_exceeded THEN ....END; at ten cho cac exception he thongMoi exception he thong c gan mot so xac nh, co the at ten cho cac exception e de s dung hn.PRAGMA EXCEPTION_INIT (exception_identifier, number)V duDECLAREfetch_failed EXCEPTION;PRAGMA EXCEPTION_INIT (fetch_failed, -1002);BEGIN....EXCEPTION WHEN fetch_failed THEN ....END;

3 Oracle Forms3.1 Cac thanh phan cua FormORACLE FORMForm Module Objects

Form:La tap hp cua tat ca cac nh ngha cua cac oi tng Form va nhng thu tuc (Routine) PL/SQL.Block:La tap hp cac e muc (Item) lien he vi nhau cho viec hien th cac mau tin(Record).Item:La oi tng giao dien (Interface Objects) dung cho viec hien th d lieu, chap nhan d lieu, hoac khi tao cac hanh ong.Window:La ca so (Frame) dung e hien th mot hoac nhieu Canvas.Canvas:La vung lam viec ieu khien cac Item va Boilerplate Objects, lien ket ben trong mot Window nao o.Alert:La Window bao hieu mot ieu kien thc hien chng trnh khong bnh thng (khong mong muon), lien quan vi cac thu tuc PL/SQL hoac cac Trigger.Editor:La mot Text Editor lien ket en mot hoac nhieu Text Item.LOV:Danh sach cac gia tr ung ta co the chon e gan gia tr cho mot hoac nhieu Item.Visual Attribute:La tap hp cac ten cua cac thuoc tnh hien th lien quan ti mot hoac nhieu Item.Trigger:La cac chng trnh PL/SQL lien ket vi mot Form, Block hoac Item.PL/SQL Routine:La mot chng trnh PL/SQL c goi bi mot Trigger hoac mot PL/SQL Routine khac.Global Variable:La cac bien dung chung ben trong cac Trigger va PL/SQL Routine, c tao va tham khao bi cac Trigger & PL/SQL Routine.Timer:La mot Internal Clock dung cho viec khi tao cac hanh ong khoang thi gianch nh; c tao va c s dung bi cac Trigger & cac PL/SQL Routine.Relation:La cac oi tng Logic nh ngha cac quan he gia Master Block va Detail Blocks.Chu y Phan biet Boilerplate va Display Text. Button, Chech Box, Radio Button. Image. Chart. List. Record.3.1.1 The status lineMod:Ten cua Module hien hanh.File:Ten va ng dan cua Module File hien hanh.:ang ket noi vi c s d lieu.:Soan thao ang che o (Mode) viet chen (Insert) hay viet chong len (Replace).3.1.2 Object list Dung e tao mi, thay oi, xoa bo cac Object. Moi kieu Oracle Form Object co mot Object List.3.1.3 Property sheet Dung e thay oi thuoc tnh cac oi tng tren Form Moi kieu Oracle Form Object co mot kieu Property Sheet rieng vi cac thuoc tnh khac nhau. Cac gia tr thuoc tnh cua Property Sheet c khi tao giai oan thiet ke.

3.1.4 Phan biet window, canvas va view

Mot Window la mot Empty Picture Frame. Mot Canvas la ni hien th cac Item & Boilerplate. Mot View la phan hien hu cua Canvas trong mot Window vao thi gian thc thi.3.1.5 Tao mot form module File / New / Form Phan biet Database & File System. Thay oi thuoc tnh Form ModuleForm / Module.3.1.6 Default block Cach nhanh nhat va de dang nhat e tao mot Block. Ch can nhap vao mot so t thong tin -> Oracle Form se s dung nhng nh ngha ben trong Data Dictionary e xay dng mot Block. Co the thay oi Block Characteristics (dung Object list). Phai Connect to DataBase neu muon dung Default Block.3.2 Saving, Generating, Executing a Form File / Save (.FMB neu dung File System). File / Generate -> chuyen oi Form sang dang co the thc hien c di Oracle Form (.FMX). File / Run.3.2.1 Tao block co quan he Cac kieu quan he cua Oracle Form:

Quan he Master - Detail : la quan he gia hai block co Primary Key lien he Foreign Key. Dung e hien th cac dong chi tiet trong Detail Block ben di dong co khoa tng ng trong Master Block. Dung Default Block e tao. Co the ch ra s lien he gia Master & Detail Block khi ta xoa mot Record trong Master Block Khong kiem tra Detail. Khong cho xoa Master neu ton tai Records trong Detail co Foreign Key la Key cua Master. Xoa Master va Detail tng ng. Cach tao mot Master - Detail Form Module au tien phai tao Master Block (dung Default Block). Tao Detail Block (dung Default Block). Vao Property Sheet cua Detail Block-Vung Master Block : Nhap vao ten cua Master Block.-Vung Join Condition : ieu kien e lien ket gia Master & Detail Block.3.2.2 Customize a form ieu khien nhng thay oi c tao ben trong Layout (Menu Control) Apply:chap nhan thay oi & ghi len Layer nhng van hien dien Layout Window. Accept:chap nhan thay oi & ghi len Layer nhng ong Layout Window. Revert:bo qua thay oi & van hien dien trong Layout Window. Cancel:bo qua thay oi & ong Layout Window.Layer : la mot vung bo nh lu tnh trang hien hanh cua cac oi tng. Cac thuoc tnh cua oi tng co the c thay oi va se c lu lai hay bo qua.Chuyen Active Block : Control / SetBlock.Chuyen Canvas : Control / Switch.Tao Boilerplate Graphic: Text:ABC Image:3.2.3 Overlapping visual object(Chong cac oi tng len nhau)Arrange Sent to back. Bring to font. Move Backward. Move Foreward.Rearrange objects.Resize objects.Change color of object.3.2.4 Classify blocksDefault Block:block lien quan trc tiep en Table, moi Text Item tng ng vi mot column cua Table.Control Block:cha tat ca cac Item ieu khien ma khong lien quan en Table nao ca.Single - Record Block:tai mot thi iem ch hien th mot Record cua Table.Multi - Record Block:tai mot thi iem co the hien th nhieu Record cua Table.Master Block:hien th cac Master Records.Detail Block:hien th cac Detail Records.3.2.5 Object Relation la mot oi tng cua Oracle Form ieu khien s quan he gia hai Block lien ket. Non - Isolated:Cam xoa Master neu ton tai Detail. Isolated:Cho xoa Master bat chap Detail. Cascading:Xoa Master & Detail. Text Item c tao t ong vi Default Block, tng ng vi mot column ben trong mot Table. Set Property trong Property Sheet (t Object List)- Multi - Line:thng s dung cho Text Item cha a ch. Kieu phai la : Char, Alpha hoac Long.- Secure:dung e che gia tr lu tr trong Single - Line Text Item.- Defaul Value:gan gia tr mac nh cho moi Record mi.- Copy:(dang dung : blockname.itemname) source value dung e tao gia tr cho Item.Thng dung trong Master - Detail Form Module.Khong nhap vao (ngan chan s khong toan ven d lieu).- Editor name- LOV name Phan biet Item with Functionality (Check Box, Radio Group, List Item).Check Boxthe hien mot trong hai tnh trang Check & UncheckCo 3 gia tr da tren 3 PropertyChecked YUnchecked N Other Value NotCheckedUncheckedRadio Groupla mot nhom cac Radio Button propertyRadio Button: Danh sach ten cua mot hoac nhieu Radio Button thuoc ve mot Radio Group.Label: text se xuat hien tren Form Module tng ng vi mot ten nao o.Value: gia tr tng ng vi text se c gan vi column c ai dien bi Name Property cua Table.List Item.la danh sach cac la chon a c nh ngha trc, moi chon la tng ng vi mot gia tr d lieu ch nh.Ch c chon mot gia tr t List Item Property List Element: ch nh cac Label tng ng cho cac chon la.Value: gia tr tng ng cho cac chon la se c gan cho column cua Table c ai dien bi name property.Item without Functionality (Display Item, Button, Image Item). Display Item ch hien th d lieu khong cho phep sahien th d lieu theo y (bieu thc da tren d lieu t Table).DataType : Number, Date, CharButtondung e khi tao mot hanh ong PropertyIconic: co hay khong co Icon.Icon name: ten va ng dan cua Icon file.Image Item.c s dung nh Boilerplate Image trong Form ModuleBoilerplate t ong hien th khi ta m Form Module con Image Item ta co the ieu khien s hien th cua noCo hai loaiFile System: bat ky Supported Image File (BMP, GIF, ..)DataBase: column vi kieu LongRaw, co the len ti 2GBPropertyBase Table: co chon -> Image lay t Column.khong chon -> Image lay t File System.3.2.6 Window objectsEditor, LOV, Alert Editor La mot Oracle Form Object lien ket vi mot hoac nhieu Text Item. Giup viec nhap d lieu chuoi c thuan tien. Property-Top Title:header cho Editor.-Bottom Title:footer cho Editor. LOV Danh sach cac gia tr ung co the xem va chon cho nhng Text Item. Co the lien ket vi mot hoac nhieu Text Item. Property-Auto-Display:t ong hien th khi di chuyen ti Text Item.-TypeRecord Group:LOV c tao t mot Record Group a ton tai => phai cung cap ten Record GroupQuery:LOV c tao thanh t menh e Select => phai go vao lenh Select- Return Item:ten Text Item se c gan gia tr tra ve t LOV. Alert La mot ca so dung e hien th thong bao da tren cac ieu kien nao o. Co the dung Alert e-Thong bao va ch xac nhan trc khi tiep tuc.-Yeu cau Yes / No question.-a ra nhng li khuyen trong cac tnh huong khong bnh thng. Trigger La mot khoi chng trnh e tang them chc nang x ly. Moi Trigger co ten & bao gom 1 hoac nhieu menh e PL/SQL. Moi Trigger la s lien ket gia chng trnh & cac bien co e lam thc hien chng trnh o. Moi Trigger c thc hien khi co 1 bien co tng ng xay ra trong thi gian RunTime. Thanh phan cua Trigger : moi Trigger co 3 thanh phan Kieu (Type) Pham vi anh hng (Scope) Van ban chng trnh (Text)

WHENFORMONBLOCKPREITEMPOSTKEYSQLPL/SQL, Built - In Routine4 Oracle report module4.1 Report moduleModules la nhng oi tng ma ta co the tao ben trong Oracle Report Designer va s dung chung e tao cac report.Modules Type External Query : *.SQL (query c tao la nhng File System). External PL/SQL Library : cha cac ham & thu tuc dung chung. Report :

Ca 3 loai Module eu co the c lu tr dang File System hoac DataBase.REPORT MODULEBao gom 4 loai Objects Report Data Model Layout Parameter4.1.1 Report Object Global Property:nh ngha nhng oi tng ai loai nh khai bao trang, khi tao cac thuoc tnh cho Previewer. Trigger:thc hien PL/SQL cac giai oan khac nhau cua Report (v du: trc khi nh dang Report, gia cac trang, ...). PL/SQL Library:bao gom cac ham va thu tuc co the c goi t oi tng Report khac ben trong cung Report.4.1.2 Data Model nh ngha d lieu dung trong Report va cau truc d lieu. Ta co the tao mi hoac sa oi cac oi tng Model ben trong Data Model Painter. Cac kieu Data Model Queries:dung e chon d lieu dung cho Report. Group:to chc d lieu e hnh thanh cac dang cau truc phan cap. Link:lien ket cac query vi nhau e hnh thanh nen nhng quan he d lieu phc tap. Columns:cha d lieu c nhat ra t cac column cua Table / hoac la nhng bieu thc c nh ngha trong cac query. Parameter:cung cap kha nang nhap lieu vao thi iem thc hien Report.4.1.3 Parameter Form Dung e nh ngha cac thuoc tnh cua Parameter xuat hien luc thc hien Report. Ta co the tao & sa oi cac Parameter Form ben trong Parameter Form Painter. Co 2 loai Fields:cha gia tr Parameter. Boilerplate:cha cac chuoi hang hoac Graphic ma no se xuat hien tren Parameter Form.4.1.4 Layout Object Dung e nh dang Report, v tr & cach hien th d lieu,... Ta co the tao & thay oi Layout trong Layout Painter. Co 5 loai Repeating Frame: cha cac oi tng va c in 1 lan cho moi record cua nhom lien quan ti chung. Frame: cha cac oi tng & ch c in duy nhat 1lan. Field: cha noi dung d lieu. Boilerplate: cha Constant Text & Graphic.4.2 S dung query e nhat d lieu tao reportMot query la menh e Select nh ngha cac dong va cot t cac Table ch nh. Tat ca cac menh e cua Select eu c chap nhan ngoai tr INTO & FOR UPDATE.4.2.1 Xay dng multi-query report Mot Report co the s dung 1 hoac nhieu query. Multi-Part Report tng ng vi Unrelated queries. V tr cua cac query trong Data Model se xac nh th t ma Report se in tng ng cho cac nhom d lieu. Multi-Part Report tng ng vi Related queries. Tao quan he gia cac query, s dung Link.4.2.2 S dung link e nh cau truc cho report Mot Link se nh ngha mot quan he Cha / Con gia 1 nhom & 1 query da tren Primary Key. Quan he Cha / Con se thc hien Child (Detail) Query tng ng vi moi gia tr cua Parent (Master) Group. Ta co the nh ngha 1 hoac nhieu Link gia cung 1 Group va 1 Query. V du :Link 1 : SAL >= LOSALLink 2 : SAL vao Property sheet cua Anchor. Parent Object co the la : Text, repeating Frame, Frame, Boilerplate, ...4.3.7 Default layout style4.4 Lu tr thc hien Lu tr.RDF Generate.REP (Executable File)4.5 ieu khien report vi parameterParameter la 1 thanh phan cua Data Model La bien nhan gia tr luc thc hien Report. Dung bat c Region nao cua Report (Header, Body / Margin hay Trailer). Co 2 loai System Parameter : dung e nh ngha 1 so ieu kien ket xuat (nh in ra man hnh hay File). Developer - Created Parameter : la nhng Parameter do ta tao. Parameter co the c s dung eGii han gia tr trong menh e WHEREWhereCUSTID=??Thay the 1 cot hoac 1 bieu thcSelectCUSTID, ??FromCUSTOMERThay the 1 phan cua menh e SELECTSelectORDID, TOTALFromORDWhere??Select*FromORD&Where_Clause Tham chieu en mot Parameter Bind Reference:parameter_namenhan gia tr t Parameter Lexical Reference&parameter_namethay the Parameter bang noi dung nhap vaoV duSelectORDID, TOTALFromORDWhereCUSTID=:CUSTSelectENAME, JOB, SALFromEMP&Where_ClauseTRIGGER & PL/SQL