intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Cơ sở dữ liệu 1: Ngôn ngữ SQL - Nguyễn Đức Thuần

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:64

162
lượt xem
42
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngôn ngữ SQL ? SQL ( Structure Query Language) là ngôn ngữ truy vấn có cấu trúc. SQL là 1 ngôn ngữ chuẩn để thao tác trên dữ liệu lưu trữ trong CSDL quan hệ. SQL bao gồm3 ngôn ngữ sau:

Chủ đề:
Lưu

Nội dung Text: Cơ sở dữ liệu 1: Ngôn ngữ SQL - Nguyễn Đức Thuần

  1. Ng Duc Thuan Taøøi lieääu tham khaûûo Ta lie kha Cô sôûû döõ lieääu 1 sô lie * SQL & PL/SQL Oracle @ Ngoân ngöõ SQL ngö * RELATIONAL DATABASES and SQL PROGRAMMING Christopher Allen Simon Chatwin Catherine A. Creary * Database System Design/Building I NGUYEÃN ÑÖÙC THUAÀN Boä Moân Heä Thoáng Thoâng Tin JIPDEC ÑH Thuyû Saûn * Giaùo trình lyù thuyeát & thöïc haønh ORACLE Traàn Tieán Duõng (Chuû bieân) NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS Giôùùi thieääu SQL Giô thie Ngoân ngöõ SQL ? SQL ( Structure Query Language) laø ngoân ngöõ truy vaán coù caáu truùc. SQL laø 1 ngoân ngöõ chuaån ñeå thao taùc treân döõ lieäu löu tröõ trong CSDL quan heä. SQL bao goàm 3 ngoân ngöõ sau: -Ngoân ngöõ ñònh nghóa döõ lieäu (DDL) Data Definition Language Ñònh nghóa 1 ñoái töôïng CSDL nhö 1 teân Table, kieåu döõ lieäu,.. NGOÂN NGÖÕ SQL (Oracle) -Ngoân ngöõ ñieàu khieån döõ lieäu (DCL) Data Control Language Ñieàu khieån quyeàn truy xuaát CSDL cuûa ngöôøi söû duïng -Ngoân ngöõ thao taùc döõ lieäu (DML) Data Manipulation Language Thao taùc CSDL baèng caùch : Choïn (tìm kieám), Caäp nhaät, Xoaù döõ lieäu … NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS Caùùc kieååu döõ lieääu trong SQL (oracle) Ca kie lie Ngoân ngöõ SQL (tt) ngö (tt) SQL coù theå phaân thaønh 2 möùc theo quyeàn truy xuaát: Teân kieåu YÙ nghiaõ VARCHAR2(size) Chöùa chuoãi TEXT ñeán 2000 byte Möùc ngöôøi s.duïng Kieåu SQL Caùc leänh maãu CHAR(size) Chöùa chuoãi TEXT ñeán 255 byte DDL Quaûn trò CSDL Create table Drop table NUMBER(p[,s]) Chöùa döõ lieäu soá Alter table DATE Chöùa döõ lieäu ngaøy (‘dd-MMM-yy’) DCL Grant to RAW Chöùa döõ lieäu nhò phaân ñeán 2000 byte DML Ngöôøi söû duïng Select From LONG Chöùa döõ lieäu TEXT ñeán 2 giga byte Insert into < ds giaù trò> LONG RAW Chöùa döõ lieäu nhò phaân ñeán 2 giga byte Update SET teân_trg =dlieäu Delete from Where ROWID Kieåu döõ lieäu hoã trôï maõ haøng aûo keát hôïp moãi baûng NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 1
  2. Ng Duc Thuan Chuùù yù: Chu ?Char(n) ≠ varchar2(n) ? Number(n) ? Number(n,m) ? Date : khuoân daïng ‘dd-MMM-yy’, löu giaù trò ngaøy thaùng döôùi daïng soá thaäp phaân ( tính töø ngaøy 31/12/4713 tröôùc CN) ? Trong 1 soá taøi lieäu coøn kieåu: CLOB: döõ lieäu kyù töï toái ña 4 GB BLOB: döõ lieäu nhò phaân toái ña 4 GB Caùi phuùt ban ñaàu löu luyeán aáy BFILE:döõ lieäu nhò phaân toái ña 4 GB, löu tröõ ôû thieát bò nhôù ngoaøi Nghìn naêm chöa deã maáy ai queân NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Taïïo caááu truùùc Table Ta ca tru Taïo caáu truùc Table: Create table ( [, ]); Ngoân ngöõ ñònh nghóa döõ lieäu Ví duï: (DDL) create table vidu ( Taïïo Table & Quaûûn lyùù Table Ta Qua ly EMP_ID number (5) PRIMARY KEY, Emp_Name varchar2(30), Emp_Address varchar2(60), Emp_birth date); NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Taïïo caááu truùùc Table Ta ca tru * Taïïo caááu truùùc Table Ta ca tru l Qui ñònh teân Table: Phaûi baét ñaàu bôûi 1 chöõ caùi - - Chæ chöùa caùc kyù töï : A-Z, a-z, 0-9, _,$, # - Khoâng truøng vôùi teân Table ñaõ coù - Khoâng laø töø khoaù cuûa Oracle Xem caùc Table ñaõ taïo laäp: Select * from user_tables; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 2
  3. Ng Duc Thuan Taïïo caááu truùùc Table Ta ca tru * Theâm 1 coäät vaøøo caááu truùùc Table co va ca tru Taïo caáu truùc Table baèng caùch söû duïng Theâm 1 coät vaøo caáu truùc Table Subquery: Alter table ADD () Create table as SUBquery Ví duï: Alter table VIDU Add (Job VARCHAR2(30)); Ví duï: EMP_ID create table vidu as Emp_Name select empno, ename, sal*12 Emp_Address From Emp Emp_birth Where deptno = 30; job NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Hieääu chænh 1 coäät Hie chæ co * Xoaùù 1 coäät Xoa co Coù theå thay ñoåi kieåu döõ lieäu, kích thöôùc, vaø giaù trò maëc ñònh 1 coät: Coù theå xoaù caùc coät: Alter table DROP (); Alter table MODIFY (); Ví duï: Ví duï: Alter table VIDU DROP Emp_Name; Alter table VIDU MODIFY (Emp_Name VARCHAR2(15)); NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caéét (Truncating)bôùùt Table Ca Truncating)bô * Thieáát laääp muïïc choïïn UNUSED Thie la mu cho O Söû duïng muïc choïn SET UNUSED ñeå ñaùnh Leänh TRUNCATE TABLE: daáu nhieàu coät (khoâng cho söû duï ng). - Xoaù taát caû caùc doøng töø 1 Table O Söû duïng muïc choïn DROP UNUSED - Xoaù Khoâng gian löu tröõ ñöôïc duøng bôûi COLUMNS ñeå xoaù caùc coät ñaõ ñaùnh daáu Table bôûi UNUSED Alter table Truncate table ; SET UNUSED (); Alter table * Khoâng theå roll back caùc doøng sau khi xoaù DROP UNUSED COLUMNS; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 3
  4. Ng Duc Thuan * Ñònh nghóa caùùc raøøng buoääc nghó ca rang buo * Theåå hieään caùùc raøøng buoääc The hie ca rang buo (contraints) contraints) CREATE TABLE ( l Caùc raøng buoäc laø gì? [gtrò maëc ñònh] [], – Laø caùc qui taéc coù hieäu löïc ôû möùc Table ……….. [][….]; – Raøng buoäc ngaên caûn vieäc xoaù 1 Table neáu coù Ví duï: söï phuï thuoäc create table vidu ( – Caùc raøng buoäc sau laø coù hieäu löïc trong Oracle EMP_ID number (5), Emp_Name varchar2(30) NOT NULL, Raøng buoäc ñöôïc taïo ra : Emp_Address varchar2(60), - Khi taïo Table Emp_birth date, - Sau khi Table ñöôïc taïo CONSTRAINT EMP_ID_PK PRIMARY KEY (EMP_ID)); NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Ñònh nghóa caùùc raøøng buoääc nghó ca rang buo * raøøng buoääc NOT NULL rang buo l Ñaûm baûo coät phaûi chöùùa giaù trò, ñn ôû möùc l Coù 2 möùc coät Möùc raøng buoäc coät: Ví duï : [CONSTRAINT constraint_name] create table vidu ( EMP_ID number (5), Möùc raøng buoäc Table: Emp_Name varchar2(30) NOT NULL, ,….. Emp_Address varchar2(60), [CONSTRAINT constraint_name Emp_birth date); (,…..) NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * raøøng buoääc UNIQUE KEY * raøøng buoääc UNIQUE KEY rang buo rang buo Ñònh nghóa coù theå treân möùc Table hoaëc treân möùc DEPTNO DNAME LOC Coät 10 Accounting New York 20 Research Dallas Ví duï : 30 Sales Chicago create table Dept( 40 Operations Boston deptno number (2), Khoâng cho pheùp dname varchar2(14), (Teân Sales ñaõ coù) 50 Sales Detroit Loc varchar2(13), Cho pheùp 60 Boston CONSTRAINT dept_dname_uk UNIQUE (dname)); NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 4
  5. Ng Duc Thuan * raøøng buoääc PRIMARY KEY * raøøng buoääc PRIMARY KEY rang buo rang buo Ñònh nghóa coù theå treân möùc Table hoaëc treân möùc DEPTNO DNAME LOC Coät 10 Accounting New York Ví duï : 20 Research Dallas create table Dept( 30 Sales Chicago deptno number (2), 40 Operations Boston dname varchar2(14), Khoâng cho pheùp Loc varchar2(13), (DEPTNO 20 ñaõ coù) 20 Sales Detroit CONSTRAINT dept_dname_uk UNIQUE (dname), Khoâng Cho pheùp 60 Boston CONSTRAINT dept_deptno_pk PRIMARY KEY (deptno)); (DEPTNO roãng) NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * raøøng buoääc FOREIGN KEY rang buo * raøøng buoääc FOREIGN KEY rang buo DEPT PRIMARY KEY Ñònh nghóa coù theå treân möùc Table hoaëc treân möùc DEPTNO DNAME LOC coät 10 Accounting New York Ví duï : 20 Research Dallas create table emp( ….. empno number (4), EMP ename varchar2(10) NOT NULL, FOREIGN KEY EMPNO ENAME JOB … COMM DEPTNO ….. 7839 KING PRESIDENT 10 deptno number(7,2) NOT NULL, 7698 BLAKE MANAGER 30 Khoâng cho CONSTRAINT emp_deptno_fk FOREIGN KEY pheùp (deptno) REFERENCES dept (deptno)); (DEPTNO 9 chöa coù trong DEPT 2571 FORD MANAGER 200 9 Cho pheùp 7571 FORD MANAGER 200 20 NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * raøøng buoääc FOREIGN KEY * raøøng buoääc CHECK rang buo rang buo l Ñònh nghóa 1 ñieàu kieän maø moãi doøng phaûi thoaû Caùc bieåu thöùc khoâng cho pheùp: l l FOREIGN KEY : Ñònh nghóa treân coät taïi - Tham chieáu ñeán CURRVAL, NEXTVAL, LEVEL, vaø ROWNUM Table con, nôi thieát laäp möùc raø ng buoäc - Goïi ñeán SYSDATE, UID, USER vaø caùc haøm USERENV l REFERENCES : Ñònh danh Table, coät - Truy vaán tham khaûo ñeán caùc giaù trò trong caùc haøng khaùc trong Table meï. … ,deptno NUMBER(2), l ON DELETE CASCADE : Khi xoaù döõ lieäu CONSTRAINT emp_deptno_ck trong Table meï thì döõ lieäu trong Table con CHECK (DEPTNO BETWEEN 10 AND 99)… töông öùng cuõng bò xoaù. NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 5
  6. Ng Duc Thuan * theâm 1 raøøng buoääc * xoaùù 1 raøøng buoääc rang buo xoa rang buo ALTER TABLE ALTER TABLE DROP CONSTRAINT ; ADD CONSTRAINT kieåu (teân_coät); Ví duï : ?Theâm hoaëc xoaù, nhöng khoâng hieäu chænh ñöôïc 1 ALTER TABLE emp raøng buoäc DROP CONSTRAINT emp_mgr_fk; ?Theâm 1 raøng buoäc NOT NULL baèng caùch söû duïng meänh ñeà MODIFY NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * voâ hieääu hoaùù raøøng buoääc hie hoa rang buo * kích hoaïït raøøng buoääc hoa rang buo ALTER TABLE DISABLE CONSTRAINT ; * Kích hoaït caùc raøng buoäc toaøn veïn ñaõ voâ hieäu hoaù tröôùc ñoù baèng DISABLE * Coù theå söû duïng muïc choïn CASCADE ñeå voâ hieäu hoaù caùc ALTER TABLE raøng buoäc toaøn veïn phuï thuoäc ENABLE CONSTRAINT ; Ví duï : * Moät chæ muïc UNIQUE hay PRIMARY KEY töï ALTER TABLE ñoäng ñöôïc taïo laäp neáu kích hoaït raøng buoäc DISABLE CONSTRAINT emp_mgr_fk CASCADE; UNIQUE hay PRIMARY KEY NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * raøøng buoääc thaùùc nöôùc * Xem caùùc raøøng buoääc rang buo tha ca rang buo ? Truy vaán Table USER_CONSTRAINTS ñeå ? Söûduïng meänh ñeà CASCADE CONSTRAINT xem taát caû caùc ñònh nghóa vaø teân caùc raøng buoäc. theo sau meänh ñeà DROP COLUMN SELECT constraint_name, constraint_type, ? Meänh ñeà CASCADE CONSTRAINT xoaù taát caû search_condition caùc raøng buoäc toaøn veïn tham chieáu lieân quan FROM USER_CONSTRAINTS; ñeán coät bò xoaù. NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 6
  7. Ng Duc Thuan * Xoaùù Table Xoa Drop Table ; Ngoân ngöõ thao taùc döõ lieäu Ví duï: (DML) Drop table vidu; Thao taùùc treân Table ta NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Cheøøn döõ lieääu Che lie * Cheøøn döõ lieääu Che lie Cheøn caùc doøng vôùi giaù trò Null * Phöông phaùp khoâng töôøng minh: Boû qua coät trong INSERT INTO () danh saùch coät VALUES (< DS GIAÙ TRÒ>); Ví duï : Insert into Don_vi (mdv) values (’01’); * Cheøn doøng döõ lieäu * Phöông phaùp töôøng minh: Söû duïng töø khoaù NULL Ví duï : Ví duï : Insert into Don_vi (mdv, ten_dv) values (’01’,’Day la 1 Insert into Don_vi (mdv,Ten_don_vi) values (’01’, vi du’); null); - Giaù trò chuoãi kyù töï hay ngaøy phaûi ñaët trong 2 daáu nhaùy NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Cheøøn döõ lieääu: Taïïo 1 kòch baûûn vôùùi Che lie Ta ba vô * Sao cheùùp caùùc doøøng döõ lieääu töø 1 che ca dong lie caùùc daááu nhaééc tuyøø bieáán ca da nha tuy bie Table khaùùc kha * ACCEPT löu giaù trò vaøo 1 bieán * PROMT hieån thò vaên baûn tuyø yù cuûa baïn Vieát caâu leänh INSERT vôùi Subquery Ví duï: Ví duï: ACCEPT msnv_id PROMPT ‘ Dua vao ma so Insert into Nhan_vien (msnv,Ten_nv, ngayhd) nhan vien: ’ Select ms_nv,Ten_nv1, ngayhd ACCEPT Ten_nv_id PROMPT ‘ Dua vao ten From NV nhan vien: ’ Where job = ‘thay giao’; Insert into Nhan_vien (msnv,Ten_nv, ngayhd) values (msnv_id, Ten_nv_id,SYSDATE); * Khoâng duøng töø khoaù VALUES NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 7
  8. Ng Duc Thuan * Thay ñoåi döõ lieääu töø 1 Table lie * Caääp nhaäät vôùùi subquery nhieààu coäät Ca nha vô nhie co Caâu leänh UPDATE Ví duï: Update Nhan_vien Tu söûa caùc doøng ñaõ coù SET (mpx,pcap) = UPDATE (Select mpx,pcap SET = [, = ,..] From Nhan_vien [where ]; Where msnv =‘7899’) Ví duï: Where msnv = ‘12345’; Update Nhan_vien SET ngayhd= ’12-DEC-04’ Where msnv = ‘12345’; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caääp nhaäät caùùc doøøng döïa treân cô sôûû ø Caääp nhaäät caùùc doøøng Ca nha ca dong sô Ca nha ca dong 1 Table khaùùc Loãi raøøng buoääc toaøøn veïïn kha rang buo toa ve UPPDATE emp *Söû duïng truy vaán con trong caâu leänh UPDATE ñeå caäp SET deptno = 55 nhaät caùc haøng trong 1 Table döïa treân cô sôû caùc giaù trò töø taïi toàn WHERE deptno = 10; 1 Table khaùc oâng 5 kh soá 5 UPPDATE employee ôûng ân xö UPPDATE emp a õ ph SET deptno = (SELECT deptno Ma * FROM emp ERROR at line 1: WHERE empno = 7788) ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) WHERE job = (SELECT job Violate – parent key not found FROM emp WHERE empno = 7788); NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Xoaùù caùùc doøøng döïa treân 1 Table Xoa ca dong * Xoaùù caùùc doøøng töø 1 Table Xoa ca dong khaùùc kha Söû duïng caâu leänh DELETE l Döïa treân truy vaán con trong leänh DELETE ñeå DELETE [FROM] xoaù caùc doøng töø 1 Table döïa treân cô sôû 1 table [where ]; khaùc Ví duï: DELETE FROM employee Delete From Nhan_vien WHERE deptno = Where msnv =‘7899’); (SELECT deptno FROM dept * Khi khoâng coù meänh ñeà where, taát caû caùc doøng WHERE dname =‘SALES’); cuûa Table ñöôïc chæ ra ñeàu bò xoaù. NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 8
  9. Ng Duc Thuan Xoaùù caùùc doøøng : Xoa ca dong *Caùùc giao dòch Cô sôûû döõ lieääu Ca sô lie Loãi raøøng buoääc toaøøn veïïn rang buo toa ve Bao goàm caùc leänh sau: l DELETE FROM dept h hín aù c n g 1 WHERE deptno = 10; ho 1 k aïi tro ùa go hö g c aù n Caùc leänh DML laøm thay ñoåi döõ lieäu 1. oø n k h o ù 1 d aù o a 1 k h o h aù c åx DELETE FROM dept the nhö ble k 2. Moät leänh DDL ân g Ta g h o û du ï n ïn k * B a ô ï c sö ö 3. Moät leänh DCL ñ ERROR at line 1: ORA – 02292 : integrity constraint (USR.EMP_DEPTNO_FK) Violated – child record found NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Caùùc leäänh COMMIT vaøø ROLLBACK Ca lenh va *Caùùc giao dòch Cô sôûû döõ lieääu Ca sô lie naâng cao l Baét ñaàu khi leänh thi haønh ñöôïc laàn ñaàu tieân l Ñaûm baûo raøng buoäc toaøn veïn döõ lieäu ñöôïc thöïc hieän l Keát thuùc vôùi 1 trong nhöõng söï kieän sau: l Xem xeùt caùc thay ñoåi tröôùc khi thöïc hieän nhöõng thay ñoåi thöôøng xuyeân – -COMMIT hay ROLLBACK ñöôïc ñöa ra – -Leänh DDL hay DCL thöïc hieän (töï ñoäng l Caùc pheùp toaùn lieân quan ñeán nhoùm commit) logic – -Ngöôøi söû duïng thoaùt – -Heä thoáng vôõ (crash) NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Caùùc ñieààu khieåån giao dòch *Cô cheáá xöû lyùù giao dòch Ca ie khie che ly 1. Moät COMMIT töï ñoäng sinh ra trong caùc tình Giao dòch huoáng sau: Moät leänh DDL ñöôïc thi haønh – INSERT UPDATE INSERT DELETE Moät leänh DCL ñöôïc thi haønh – – Thoaùt bình thöôøng töø SQL*PLUS, khoâng nhaát thieát COMMIT Savepoint A Savepoint B phaûi söû duïng COMMIT hay ROLLBACK ROLLBACK to Savepoint B 2. Moät ROLLBACK töï ñoäng sinh ra khi keát thuùc ROLLBACK to Savepoint A SQL*Plus khoâng bình thöôøng hay heä thoáng hoûng. ROLLBACK NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 9
  10. Ng Duc Thuan Traïïng thaùùi cuûûa döõ lieääu tröôùc lie trö Traïïng thaùùi cuûûa döõ lieääu sau Trang tha cu Trang tha cu lie COMMIT hay ROLLBACK COMMIT l Traïng thaùi tröôùc ñoù cuûa döõ lieäu ñöôïc phuïc hoài l Döõ lieäu thay ñoåi ñöôïc löu thöôøng xuyeân trong CSDL l Ngöôøi söû duïng hieän haønh coù theå xem laïi caùc keát quaû cuûa caùc thao taùc DML baèng caùch duøng leänh l Traïng thaùi tröôùc ñoù cuûa döõ lieäu laø bò maát SELECT l Taát caû ngöôøi söû duïng coù theå xem caùc keát quaû l Nhöõng ngöôøi söû duïng khaùc khoâng theå xem caùc keát l Caùc khoaù treân caùc doøng giaû laäp (affected) bò xoaù; quaû caùc leänh DML nhöõng doøng naøy coù khaû naêng nhöõng ngöôøi söû l Nhöõng doøng gæa laäp bò khoaù; nhöõng ngöôøi söû duïng duïng khaùc xöû lyù khaùc khoâng theå thay ñoåi döõ lieäu caùc doøng giaû laäp l Taát caû caùc ñieåm löu bò xoaù boû NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS Traïïng thaùùi cuûûa döõ lieääu sau Trang tha cu lie * COMMIT Data ROLLBACK l Thöïc hieän caùc thay ñoåi Loaïi boû nhöõng thay ñoåi chöa quyeát ñònh baèng caùch duøng l UPDATE Emp leänh ROLLBACK SET deptno = 10 Döõ lieäu thay ñoåi bò xoaù boû thay ñoåi l WHERE empno = 7782 Traïng thaùi tröôùc ñoù cuûa döõ lieäu ñuôïc phuïc hoài l COMMIT caùc thay ñoåi Caùc khoaù treân caùc doøng giaû laäp (affected) ñöôïc loaïi boû l SQL> COMMIT DELETE FROM Employee; 14 rows deleted Commit complete SQL> ROLLBACK Rollback Complete NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS Caùùc möùc leäänh ROLLBACK Ca lenh ROLLING BACK thay ñoåi ñeán 1 ñaùnh daááu nh da Taïo laäp 1 ñaùnh daáu trong giao dòch hieän haønh baèng caùch l Neáu moät leänh DML ñôn loãi trong quaù trình thöïc l duøng leänh SAVEPOINT. hieän, chæ 1 leänh ñöôïc ROLLBACK ROLLBACK ñeán 1 ñaùnh daáu söû duïng leänh l l Maùy chuû Oracle caøi ñaët 1 savepoint aån. ROLLBACK TO SAVEPOINT l Taát caû nhöõng thay ñoåi khaùc ñöôï c giöõ laïi SQL> UPDATE SQL> SAVEPOINT update_done; l Ngöôøi söû duïng neân keát thuùc caùc giao dòch baèng Savepoint Created caùch thöïc hieän caùc leänh COMMIT hay SQL> INSERT ROLLBACK SQL> ROLLBACK TO update_done; Rollback complete NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 10
  11. Ng Duc Thuan * Nhaáát quaùùn ÑOÏC * Caøøi ñaët nhaáát quaùùn ÑOÏC Nha qua Ca nha qua l Nhaát quaùn ÑOÏC ñaûm baûo 1 thoáng nhaát döõ lieäu Data Blocks UPDATE emp taïi moïi thôøi ñieåm. SET sal = 2000 Rollbacks WHERE ename = ‘Scott’; l Thay ñoåi thöïc hieän bôûi 1 ngöôøi söû duïng khoâng segments xung ñoät vôùi nhöõng thay ñoåi cuû a ngöôøi söû duïng USER A khaùc Döõ lieäu ñaõ thay ñoåi vaø chöa thay ñoåi l Nhaát quaùn ÑOÏC baûo ñaûm raèng treân caùc döõ lieäu Ñoïc aûnh nhaát quaùn SELECT * tröôùc khi thay ñoåi gioáng nhau: FROM emp; döõ lieäu “cuõ” – Nhöõng ngöôøi ñoïc khoâng chôø nhöõng ngöôøi ghi USER B – Nhöõng ngöôøi ghi khoâng chôø nhöõng ngöôøi ñoïc NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Khoaùù (Locking) * Toùùm löôïc Khoa To Oracle khoaù : Leänh Moâ taû *Ngaên chaën taùc ñoäng tieâu cöïc giöõa nhöõng giao INSERT Theâm 1 doøng môùi vaøo Table dòch töông tranh UPDATE Tu söûa caùc doøng ñaõ coù trong Table *Yeâu caàu khoâng coù taùc ñoäng ngöôøi söû duïng DELETE Xoaù caùc doøng ñaõ coù *Töï ñoäng duøng möùc thaáp nhaát cuûa söï haïn cheá COMMIT Thöïc hieän taát caû taát caû nhöõng thay ñoå i *Naém giöõ khoaûng thôøi gian cuûa giao dòch *Coù 2 moâ hình cô baûn: SAVEPOINT Cho pheùp 1 rollback ñeán 1 ñaùnh daáu savepoint - Loaïi tröø ROLLBACK Huyû taát caû nhöõng thay ñoåi coøn treo - Chia seû NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Choïïn döõ lieääu (Select) Cho lie * Bieååu thöùc toaùùn hoïïc Bie thöù toa ho Choïn coät hieån thò: Taïo caùc bieåu thöùc treân döõ lieäu NUMBER vaø SELECT () l DATE baèng caùch söû duïng caùc pheùp toaùn FROM ); Pheùp toaùn YÙ nghóa Coäng + Ví duï: Tröø - Select EMP_ID, Emp_Name, Nhaân FromVIDU; * Chia / NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 11
  12. Ng Duc Thuan * Söû duïïng caùùc pheùùp toaùùn soáá hoïïc * Ñònh nghóa bí danh (alias) 1 coäät nghó dung ca phe toa so ho co Ví duï : Select ename, sal, sal +300 l Ñònh nghóa laïi tieâu ñeà From VIDU; l Ñöôïc duøng cho caùc bieåu thöùc tính toaùn *Thöù töï öu tieân caùc pheùp toaùn: l Ñöôïc vieát lieàn sau teân coät; hoaëc söû duïng töø */-+ Select ename, sal, 12*Sal +100 khoaù AS giöõa teân coät vaø bí danh From VIDU; l Yeâu caàu coù daáu “ “ neáu chöùa khoaûng Söû duïng daáu ngoaëc ñeå theå hieän thöù töï öu tieân traéng, kyù töï ñaëc bieät Select ename, sal, 12* (Sal +100) From VIDU; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Toaùùn töû gheùùp (concatenation Toa ghe * Söû duïïng bí danh (alias) coäät dung co operation) • Select ename AS name, sal salary l Gheùp caùc coät hay caùc chuoãi kyù töï vaøo caùc coät khaùc From VIDU; l Ñöôïc bieãu dieãn baèng || l Taïo keát quaû laø 1 bieåu thöùc kyù töï ‚Select ename “Name”, sal*12 “Annual Ví duï: Salary”; Select empname || job AS “Employee” From emp; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Chuoãi chöõ theâm cho caùùc bieååu thöùc chö ca bie thöù * Söû duïïng chuoãi chöõ theâm cho caùùc chö dung ca hieåån thò bieååu thöùc hieåån thò bie thöù hie hie l Moät chöõ (literal)laø 1 kyù töï, 1 soá , hay 1 SELECT || || ngaøy thaùng ñöôïc chöùa trong danh saùch caâu [AS ] leänh SELECT l Giaù trò chöõ Ngaøy hay kyù töï phaûi chöùa trong Ví duï: daáu nhaùy keùp SELECT ename || “is a”|| l Moãi chuoãi kyù töï ñöôïc xuaát 1 laàn trong moãi Job AS “Employee Detail” doøng NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 12
  13. Ng Duc Thuan * Caùùc doøøng truøøng laéép * Haïïn cheáá caùùc doøøng truøøng laéép Ca dong trung la Ha che ca dong trung la Hieån thò maëc ñònh caùc truy vaán giaù trò truøng nhau cuûa Söû duïng töø khoaù DISTINCT caùc doøng vaãn hieån thò Ví duï : SELECT DISTINCT deptno From emp; Ví duï : SELECT deptno From emp; DEPTNO DEPTNO ----------------- ----------------- 10 10 30 30 10 20 20 …. …. NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Töông taùùc giöõa SQL & SQL Plus ta giö * Tìm hieååu theâm SQL Plus hie SQL Statements SQL Statements * Caùc leänh SQL*PLUS soaïn thaûo * Caùc leänh SQL*PLUS xöû lyù File: Buffer . SAVE Server . GET SQL*PLUS . START . @ . EDIT SQL*PLUS Commands Query Results . SPOOL Formatted Report . EXIT NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Söû duïïng meäänh ñeà WHERE dung menh * Hieåån thò caááu truùùc Table Hie ca tru - Giaù trò chuoãi kyù töï vaø ngaøy thaùng phaûi ñeå trong daáu nhaùy keùp. DESC[RIBE] -Giaù trò chuoãi phaân bieät kyù töï hoa, thöôøng. Giaù trò ngaøy thaùng phaûi theo khuoân daïng. *Ruùùt trích vaøø saéép xeááp döõ lieääu Ru trí va sa xe lie -Giaù trò maëc ñònh coù daïng DD-MON-YY Ví duï: SELECT [DISTINCT] (* | [alias],….) SELECT ename, job, deptno FROM FROM emp [WHERE ] WHERE ename = “THUAN” NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 13
  14. Ng Duc Thuan *Söû duïïng meäänh ñeà WHERE dung menh *Söû duïïng meäänh ñeà WHERE dung menh Toaùn töû so saùnh Caùc toaùn töû so saùnh khaùc Toaùn töû YÙ nghóa baèng = Toaùn töû YÙ nghóa lôùn hôn > [NOT]Between … and … Giöõa 2 caän giaù trò lôùn hôn hoaëc baèng >= [NOT] IN (danh saùch) Thuoäc danh saùch nhoû hôn < [NOT] LIKE Gioáng khuoân daïng nhoû hôn hoaëc baèng
  15. Ng Duc Thuan Saéép xeááp thöù töï Sa xe thöù Ví duï: SELECT empno, ename, sal*12 annsal From emp Caùùc haøøm treân töøng doøøng Ca ha ng do ng Order by annsal; Coù theå saép xeáp thöù töï nhieàu coät SELECT empno,deptno , sal From emp Order by deptno, sal DESC; NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Hai loaïïi haøøm SQL loa ha * Caùùc haøøm SQL Ca ha Input Caùc haøm Output Haøm Function Caùc treân Tham soá 1 Caùc haøm nhieàu doøng Treân töøng doøng Tham soá 2 Giaù trò keát quaû ° Tham soá n ° NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caùùc haøøm treân töøng doøøng Ca ha ng dong * Caùùc haøøm treân töøng doøøng Ca ha ng dong Kyù töï ? Thao taùc caùc muïc choïn döõ lieäu Thoâng thöôøng ? Chaáp nhaän caùc tham soá vaø traû veà 1 giaù trò Soá Caùc haøm ? Traû veà 1 giaù trò treân moãi doøng Treân töøng doøng ? Coù theå tu söûa kieåu döõ lieäu ? Coù theå loàng nhau Chuyeån ñoåi Ngaøy Teân_haøm (coät | bieåu_thöùc, [thsoá1], thsoá2, …]) NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 15
  16. Ng Duc Thuan * Caùùc haøøm kyùù töï Ca ha ky * Caùùc haøøm chuyeåån ñoåi kyùù töï Ca ha chuye ky Caùc haøm Chuyeån ñoåi chuoãi kyù töï Kyù töï Haøm Keát quaû Caùc haøm chuyeån ñoåi Caùc haøm thao taùc LOW(‘SQL Course’) sql course kyù töï Kyù töï UPPER (‘SQL Course’) SQL COURSE LOWER CONCAT INITCAP (‘SQL Course’) Sql Course UPPER SUBSTR INITCAP LENGTH INSTR LPAD TRIM NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caùùc haøøm soáá Ca ha so * Caùùc haøøm thao taùùc kyùù töï Ca ha ta ky * ROUND: Laøm troøn giaù trò theo soá thaäp Thao taùc treân chuoãi kyù töï phaân ñöôïc chæ ñònh ROUND(45.926, 2) 45.93 Haøm Keát quaû *TRUNC: Caét giaù trò theo soá thaäp phaân ñöôïc CONCAT(‘Good’,’String’) GoodString SUBSTR(‘String’,1,3) Str chæ ñònh LENGTH(‘String’) 6 TRUNC (45.926, 2) 45.92 INSTR(‘String’,’r’) 3 *MOD :Traû veà phaàn dö cuûa pheùp chia LPAD(sal,10,’*’) *****5000 TRIM(‘S’ FROM ‘SSMITH’) MITH MOD (1600, 300) 100 NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Laøøm vieääc vôùùi ngaøøy thaùùng La vie vô nga thang *Söû duïïng haøøm ROUND dung ha Ví duïï: SELECT ROUND(45.923,2), ROUND(45.923,0), du ROUND(45.923,-1)FROM DUAL ROUND(45.923,- *Oracle löu tröõ ngaøy thaùng trong 1 daïng soá Keáát quaûû: Ke qua (Julian): Theá kyû, naêm, thaùng, ngaøy, giôø, phuùt, ROUND(45.923,2) 45.92 giaây. ROUND(45.923,0) 46 ROUND(45.923,-1) ROUND(45.923,- 50 *Daïng ngaøy thaùng maëc ñònh laø : DD-MON-YY *Söû duïng haøm TRUNC *SYSDATE laø haøm traû veà ngaøy, giôø heä thoáng Ví duï: SELECT TRUNC(45.923,2), TRUNC(45.923,0), *DUAL laø 1 table giaû (aûo) ñöôï c duøng ñeå xem TRUNC(45.923,-1)FROM DUAL Keát quaû: SYSDATE TRUNC(45.923,2) 45.92 TRUNC(45.923,0) 45 TRUNC(45.923,-1) 40 DUAL laø 1 Table aûo chöùa keát quaû pheùp toaùn NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 16
  17. Ng Duc Thuan * Caùùc pheùùp tính soáá hoïïc vôùùi ngaøøy thaùùng Ca phe so ho vô nga thang * Caùùc haøøm ngaøøy thaùùng Ca ha nga thang *Coäng hay tröø 1 soá vaøo 1 ngaøy, cho keát quaû laø giaù Haøm YÙ nghóa trò ngaøy MONTHS_BETWEEN Soá thaùng giöõa 2 ngaøy tham soá *Tröø 2 döõ lieäu ngaøy thaùng cho keát quaû laø 1 soá nguyeân chæ soá ngaøy giöõa caùc döõ lieäu ngaøy thaùng ADD_MONTHS Coäng soá thaùng vaøo ngaøy tham soá naøy. NEXT_DAY Ngaøy keá tieáp cuûa ngaøy chæ ñònh * Coäng giôø vaøo 1 ngaøy baèng caùch chia soá giôø cho LAST_DAY Ngaøy cuoái cuûa thaùng öùng vôùi 24. ngaøy chæ ñònh ROUND Laøm troøn ngaøy TRUNC Laøm troøn baèng caùch caét ngaøy NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Chuyeåån ñoåi kieååu döõ lieääu töôøng minh Chuye kie lie ng * Söû duïïng caùùc haøøm ngaøøy thaùùng dung ca ha nga thang MONTHS_BETWEEN(’01-SEP-95’,’11-JAN-94’) ‘19.6774194’ TO_NUMBER TO_DATE ADD_MONTHS(’11-JAN-94’,6) ‘11-JUN-94’ NEXT_DAY(’01-SEP-95’, ‘FRIDAY’ ‘08-SEP-95’ LAST_DAY (’01-SEP-95’) ‘30-SEP-95’ ROUND(’25-JUL-95’,’MONTH’) 01-AUG-95 DATE NUMBER CHARACTER ROUND(’25-JUL-95’,’ YEAR’) 01-JAN-96 TRUNC(’25-JUL-95’,’MONTH’) 01-JUN-95 TRUNC(’25-JUL-95’,’ YEAR’) 01-JAN-95 TO_CHAR TO_CHAR NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS *Haøøm TO_CHAR vôùùi döõ lieääu ngaøøy Ha vô lie nga * Caùùc phaààn töû khuoân daïïng ngaøøy Ca pha dang nga TO_CHAR (date, ‘fmt’); -Khuoân daïng phaûi vieát trong daáu nhaùy ñôn YYYY Ñaày ñuû caùc kyù soá cuûa naêm -Neáu coù tieáp ñaàu ngöõ fm ñeå xoaù giaù trò baét ñaàu laø 0 YEAR Ñaønh vaàn teân naêm - Phaân caùch caùc giaù trò ngaøy laø 1 daáu , MM Hai kyù soá giaù trò thaùng Ví duï: MONTH Teân ñaày ñuû cuûa thaùng Select ename, TO_CHAR(birth_day, ‘fmDD Month YYYY’ From emp; DY Ba kyù töï teân ngaøy trong tuaàn DAY Teân ñaày ñuû cuûa ngaøy NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 17
  18. Ng Duc Thuan * Caùùc phaààn töû khuoân daïïng ngaøøy * Caùùc phaààn töû khuoân daïïng ngaøøy Ca pha dang nga Ca pha dang nga Ví duï: l Caùc phaàn töû thôøi gian ñònh daïng vò trí thôøi gian trong ngaøy Select to_char(ngay, ‘fm DD MM YEAR’) from ABC; HH24:MI:SS AM 15:45:32 PM l Theâm chuoãi kyù töï baèng caùch vieát giöõa 2 daáu nhaùy keùp DD “of” MONTH 12 of OCTOBER To_char(ngay, fmDD MONTHYEAR) -------------------------------------------------- 15 12 TWO THOUSAND FOUR NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Haøøm TO_CHAR vôùùi soáá Ha vô so * Haøøm TO_CHAR vôùùi soáá Ha vô so Select TO_CHAR(he_so_luong,’ $0099.999’) from ngach_bac_luong; TO_CHAR(soá, ‘fmt’) Hieån thò 1 giaù trò soá nhö 1 kyù töï Bieåu dieãn 1 soá 9 TO_CHAR(he_so_luong,’$0099.99’) 0 Hieån thò soá 0 ----------------------------------------------- Hieån thò daáu $ $ $003.35 $004.12 Hieån thò kyù töï tieàn teä L $002.55 In ra 1 daáu chaám thaäp phaân . In ra 1 daáu phaân caùch haøng ngaøn , NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Haøøm DECODE Ha * Haøøm NVL Ha Xöû lyù meänh ñeà ñieàu kieän, baèøng caùch söû duïng töông töï caâu leänh CASE hay IF- THEN-ELSE DEDCODE (/, , < kquaû 1>, Haøm chuyeån ñoåi giaù trò Null thaønh giaù trò [/, , < kquaû i>] [, ] ñöôïc chæ ra Select job, sal, DECODE(job, ‘Thay’, sal*1.1, ‘Quan ly, sal*1.15, sal) - Kieåu döõ lieäu coù theå laø ngaøy, kyù töï, vaø soá Revised_salary from emp - Kieåu döõ lieäu phaûi phuø hôïp JOB SAL Revised_salary --------------------- --------------- ----------------------- NVL(comm,0) PRESIDENT 5000 5000 MANAGER 2 850 3420 NVL(hiredate,’01-JAN-97’) MANAGER 2 450 2940 NVL(job,’Giao vien’) * Caùc haøm coù theå loàng nhau NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 18
  19. Ng Duc Thuan * Keáát noáái ? Ke no * Hieåån thò döõ lieääu töø nhieààu Table Hie lie nhie SELECT ., ,.. From , WHERE .= . EMP ENAME ……… DEPTNO DEPTNO DNAME ……… LOC ------------------------------------------------ ------------------------------------------------ 7234 KING ……… 10 10 ACCOUNTING NEWYORK l Vieát ñieàu kieän keát noái trong meänh ñeà WHERE 7235 BLAKE ……… 30 30 RESEARCH DALLAS …… …… l Tröôùc teân caùc coät laø teân Table 7345 MILLER ……… 10 40 OPERATIONS BOSTON l Tích DESCASTER ñöôïc taïo ra khi ñieàu kieän keát EMP DEPTNO LOC noái khoâng hôïp leä hay bò boû qua ------------------------------------------- 7234 10 NEWYORK l Neân söû duïng bí danh ñeå thay theá teân Table 7235 30 DALLAS l Coù theå keát noái nhieàu Table ….. 7345 10 NEWYORK NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Keáát noáái khoâng baèèng (Non – Ke no bang * Keáát noáái döõ lieääu Ke no lie Equijoins) Equijoins) SELECT e.name, e.sal, a.grade EMPNO ENAME SAL GRADE LOSAL HISAL -------------------------------------------------- --------------------------------------------------- * Keát xuaát caùc baûn ghi e, salgrade a From emp 7348 KING 5000 1 700 1200 keát noái khoâng baènWhere e.sal g 7698 BLAKE 2850 2 1201 1400 BETWEEN a.losal AND a.hisal 7782 CLARK 2450 3 1401 2000 7844 ALLEN 1600 4 2001 3000 7900 JACK 1500 ………………. 7653 BIN 900 EMP SAL GRADE SALGRADE 7888 LENA 1200 --------------------------------------------------- 7653 900 1 7888 1200 2 EMP 7900 1500 3 7844 1600 3 …….. NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Keáát noáái ngoaøøi (Outer Joins) Ke no ngoa * Keáát noáái ngoaøøi (Outer Joins) Ke no ngoa EMP DEPT Coù theå söû duïng keát noái ngoaøi ñeå thaá y caùc doøng l khoâng thoaû ñieàu kieän keát noái ENAME DEPTNO DEPTNO DNAME ----------------------------------- ------------------------------------------- Toaùn töû keát noái ngoaøi laø daáu + KING 10 10 ACCOUNTING l BLAKE 30 20 RESEARCH SELECT Table1.column, Table2.column CLARK 10 30 SALES From Table1, Table2 JONES 20 40 OPERATIONS ………… Where Table1.column(+) = Table2.column; SELECT Table1.column, Table2.column From Table1, Table2 Where Table1.column = Table2.column(+); Khoâng coù nhaân vieân naøo thuoäc phoøng OPERATIONS NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 19
  20. Ng Duc Thuan * Keáát noáái ngoaøøi (Outer Joins) * Töï keáát noáái (Self Joins) Ke no ngoa ke no SELECT e.ename, d.deptno, d.name EMP (WORKER) EMP (MANAGER) From emp e, dept d EMPNO ENAME MGR EMPNO ENAME Where e. deptno(+) = d.deptno; ------------- ------------ -------------- ------------- ------------ 7839 KING Order by e.deptno 7698 BLAKE 7839 7839 KING 7698 CLARK 7839 7839 KING 7566 JONES 7839 7839 KING ENAME DEPTNO DNAME 7644 MARTIN 7698 7698 BLAKE -------------------------------------------------------- 7499 ALLEN 7698 7698 BLAKE KING 10 ACCOUNTING CLARK 10 ACCOUNTING ……….. 40 OPERATIONS MGR trong baûng WORKER baèng EMPNO trong baûng MANAGER NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caùùc toaùùn töû taääp hôïïp Ca toa ta hô * Töï keáát noáái (Self Joins) ke no SELECT worker.ename ll ’works for ‘ll TOAÙN TÖÛ TAÄP HÔÏP KEÁT QUAÛ ÑÖÔÏC TAÏO RA manager.ename UNION Pheùp hôïp – hôïp caùc keát quaû cuûa 2 From emp worker, emp manager MINUS caâu leänh SELECT, nhöõng haøng truøng laép chæ hieån thò moä t haøng Where worker.mgr = manager.emptno; UNION ALL Pheùp hôïp – töông töï pheùp hôïp UNION UNION, ñieåm khaùc : caùc haøUNION ALL ng INTERSECT truøng laép ñöôïc hieån thò WORKER.ENAME ll ’works for ‘ll MANAGER INTERSECT Pheùp giao – Caùc haøng thuoäc caû 2 -------------------------------------------------------- caâu leänh SELECT BLAKE works for KING MINUS Pheùp tröø – Caùc haøng ñöôïc traû veà CLARE works for KING caâu leänh SELECT thöù nhaá t khoâng JONES works for KING xuaát hieän caâu leänh SELECT thöù MARTIN works for BLAKE hai NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS * Caùùc toaùùn töû taääp hôïïp Ca toa ta hô * Goääp döõ lieääu söû duïïng haøøm GROUP Go lie dung ha Ví duï : Caùc haøm GROUP ? Select ename Caùc haøm GROUP thao taùc treân taäp caùc doøng ñeå cho ra keát quaû treân moãi nhoùm From empa DEPTNO SAL EMP MINUS ------------------------------ 10 2450 UNION 10 5000 INTERSECT 10 1300 MAX(SAL) 20 800 Select ename 20 1100 ---------------------- Löông lôùn nhaát trong Table EMP 20 3000 5000 From emp 20 3000 20 2975 Where ename LIKE ‘S%’ ; 30 1600 30 2850 30 1250 30 950 30 1500 30 1250 NgDucThuan- @2004- 2005-DHTS NgDucThuan- @2004- 2005-DHTS 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2