Oracle cơ bản - SQL và PL/SQL pptx

106 333 0
Oracle cơ bản - SQL và PL/SQL pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

SQL và PL/SQL C b nơ ả Oracle c b n - SQL và PL/SQL ơ ả M C L C Ụ Ụ M C L C Ụ Ụ 1 CH NG 1. GI I THI U CHUNG ƯƠ Ớ Ệ 5 1.1. NGÔN NG SQL Ữ 5 1.1.1. L ch s phát tri n c a ngôn ng SQL ị ử ể ủ ữ .5 1.1.2. Chu n SQL ẩ 5 1.2. CÁC KHÁI NI M C B N TRONG C S D LI U Ệ Ơ Ả Ơ Ở Ữ Ệ 5 1.2.1. Các thành ph n logic trong database ầ 5 1.2.2. Các đ i t ng trong database ố ượ 6 1.2.3. Các nhóm l nh SQL c b n ệ ơ ả .6 1.3. C S D LI U TH C HÀNH Ơ Ở Ữ Ệ Ự 7 1.3.1. Mô hình d li u ữ ệ 7 1.3.2. C u trúc b ng d li u ấ ả ữ ệ .7 CH NG 2. L NH TRUY V N C B N ƯƠ Ệ Ấ Ơ Ả .9 2.1. CÂU L NH TRUY V N Ệ Ấ 9 2.1.1. Quy t c vi t l nh ắ ế ệ 9 2.1.2. Câu l nh truy v n c b n ệ ấ ơ ả 9 2.1.3. Các thành ph n khác c a m nh đ SELECT ầ ủ ệ ề 9 2.1.4. Phân bi t giá tr d li u tr v ệ ị ữ ệ ả ề 10 2.1.5. Giá tr NULL ị 11 2.2. SQL*PLUS, CÔNG C T NG TÁC L NH SQL V I DATABASE Ụ ƯƠ Ệ Ớ 11 2.2.1. Câu l nh t ng tác c a SQL*Plus ệ ươ ủ .11 2.2.2. Phân nhóm câu l nh trong SQL*Plus ệ 12 2.2.3. Chi ti t các l nh SQL*Plus c b n ế ệ ơ ả .13 2.3. BÀI T P Ậ 15 CH NG 3. TRUY V N D LI U CÓ ĐI U KI N ƯƠ Ấ Ữ Ệ Ề Ệ 17 3.1. CÁC GI I H N TRONG TRUY V N D LI U Ớ Ạ Ấ Ữ Ệ 17 3.1.1. M nh đ WHERE ệ ề 17 3.1.2. Các toán t s d ng trong m nh đ WHERE ử ử ụ ệ ề 18 3.1.3. Ví d s d ng các toán t đi u ki n ụ ử ụ ử ề ệ .19 3.2. S P X P D LI U TR V Ắ Ế Ữ Ệ Ả Ề 20 3.2.1. M nh đ ORDER BY ệ ề 20 3.2.2. S p x p nhi u c t d li u tr v ắ ế ề ộ ữ ệ ả ề 20 3.3. BÀI T P Ậ 21 CH NG 4. CÁC HÀM SQL ƯƠ 23 4.1. T NG QUAN V HÀM SQL Ổ Ề 23 4.1.1. C u trúc hàm SQL ấ .23 4.1.2. Phân lo i hàm SQL ạ 23 4.2. HÀM SQL THAO TÁC TRÊN T NG DÒNG D LI U Ừ Ữ Ệ .24 4.2.1. Các hàm thao tác trên ki u d li u s ể ữ ệ ố 24 4.2.2. Các hàm thao tác trên ki u d li u ký t ể ữ ệ ự .26 4.2.3. Các hàm thao tác trên ki u d li u th i gian ể ữ ệ ờ .30 4.2.4. Các hàm chuy n đ i ki u ể ổ ể 32 4.3. HÀM THAO TÁC TRÊN T P H P Ậ Ợ 34 4.3.1. Các hàm tác đ ng trên nhóm ộ 34 4.3.2. M nh đ GROUP BY ệ ề 35 4.4. M T S HÀM M I B SUNG TRONG Oracle9i Ộ Ố Ớ Ổ 36 4.4.1. Hàm NULLIF .36 4.4.2. Hàm COALSCE 36 4.4.3. Câu l nh case ệ 36 Trang 1 Oracle c b n - SQL và PL/SQL ơ ả 4.5. BÀI T P Ậ 36 4.5.1. Hàm trên t ng dòng d li u ừ ữ ệ 36 4.5.2. Hàm trên nhóm d li u ữ ệ 39 CH NG 5. L NH TRUY V N D LI U M R NG ƯƠ Ệ Ấ Ữ Ệ Ở Ộ .40 5.1. K T H P D LI U T NHI U B NG Ế Ợ Ữ Ệ Ừ Ề Ả 40 5.1.1. M i liên k t t ng đ ng ố ế ươ ươ 40 5.1.2. M i liên k t không t ng đ ng ố ế ươ ươ .40 5.1.3. M i liên k t c ng ố ế ộ .40 5.1.4. Liên k t c a b ng v i chính nó (t thân) ế ủ ả ớ ự .41 5.1.5. Cách bi u di n k t n i m i trong Oracle 9i ể ễ ế ố ớ 41 5.1.6. Các toán t t p h p ử ậ ợ 42 5.2. L NH TRUY V N L NG Ệ Ấ Ồ 43 5.2.1. Câu l nh SELECT l ng nhau. ệ ồ 43 5.2.2. Toán t SOME/ANY/ALL/NOT IN/EXITS ử 43 5.3. C U TRÚC HÌNH CÂY Ấ .44 5.3.1. C u trúc hình cây trong 1 table ấ 44 5.3.2. K thu t th c hi n ỹ ậ ự ệ 44 5.3.3. M nh đ WHERE trong c u trúc hình cây ệ ề ấ 45 5.4. BÀI T P Ậ 46 CH NG 6. BI N RUNTIME ƯƠ Ế 50 6.1. D LI U THAY TH TRONG CÂU L NH Ữ Ệ Ế Ệ .50 6.2. L NH DEFINE Ệ 50 6.3. L NH ACCEPT Ệ 51 6.4. BÀI T P Ậ 51 CH NG 7. TABLE VÀ CÁC L NH SQL V TABLE ƯƠ Ệ Ề 52 7.1. L NH T O TABLE Ệ Ạ 52 7.1.1. Cú pháp t o b ng ạ ả 52 7.1.2. Tính toán kích th c table (tham kh o) ướ ả 53 7.2. M T S QUY T C KHI T O TABLE Ộ Ố Ắ Ạ 54 7.2.1. Quy t c đ t tên Object ắ ặ 54 7.2.2. Quy t c khi tham chi u đ n Object ắ ế ế 54 7.3. Các Ki u d li u c b n ể ữ ệ ơ ả 55 7.3.1. Ki u CHAR ể 55 7.3.2. Ki u VARCHAR2 ể 55 7.3.3. Ki u VARCHAR ể 56 7.3.4. Ki u NUMBER ể 56 7.3.5. Ki u FLOAT ể 56 7.3.6. Ki u LONG ể 56 7.3.7. Ki u DATE ể 57 7.3.8. Ki u RAW và ki u LONG RAW ể ể 58 7.3.9. Ki u ROWID ể 58 7.3.10. Ki u MLSLABEL ể 58 7.3.11. Chuy n đ i ki u ể ổ ể 58 7.4. RÀNG BU C D LI U TRONG TABLE Ộ Ữ Ệ 59 7.4.1. NULL/NOT NULL 59 7.4.2. UNIQUE 59 7.4.3. PRIMARY KEY 59 7.4.4. FOREIGN KEY ( Referential ) 60 7.4.5. CHECK 60 7.5. L NH DDL CAN THI P T I TABLE Ệ Ệ Ớ 60 7.5.1. Ch nh s a c u trúc table ỉ ử ấ 60 7.5.2. Các l nh DDL khác ệ 61 7.5.3. Chú d n cho table ẫ 61 7.5.4. Thay đ i tên object ổ 62 7.5.5. Xóa d li u c a table ữ ệ ủ 62 Trang 2 Oracle c b n - SQL và PL/SQL ơ ả 7.6. THÔNG TIN V TABLE TRONG T ĐI N D LI U Ề Ừ Ể Ữ Ệ 62 7.7. BÀI T P Ậ 63 CH NG 8. CÁC L NH THAO TÁC D LI U ƯƠ Ệ Ữ Ệ 64 8.1. THAO TÁC D LI U TRONG TABLE Ữ Ệ .64 8.1.1. Thêm m i dòng d li u ớ ữ ệ 64 8.1.2. C p nh t dòng d li u ậ ậ ữ ệ .65 8.1.3. L nh Merge ệ 65 8.1.4. Xóa dòng d li u ữ ệ .66 8.1.5. L i ràng bu c d li u ỗ ộ ữ ệ 66 8.2. L NH ĐI U KHI N GIAO D CH Ệ Ề Ể Ị 66 8.3. BÀI T P Ậ 67 CH NG 9. SEQUENCE VÀ INDEX ƯƠ 68 9.1. SEQUENCE 68 9.1.1. T o Sequence ạ 68 9.1.2. Thay đ i và hu sequence ổ ỷ .69 9.2. INDEX 69 9.2.1. T o index ạ 69 9.2.2. S d ng index ử ụ 69 9.3. BÀI T P Ậ 70 CH NG 10. VIEWS ƯƠ 71 10.1. VIEWS 71 10.1.1. T o view ạ 71 10.1.2. Xóa các view 71 10.2. BÀI T P Ậ 72 CH NG 11. QUY N VÀ B O M T ƯƠ Ề Ả Ậ 73 11.1. QUY N - PRIVILEGE Ề .73 11.2. ROLE 74 11.3. SYNONYM 74 CH NG 12. GI I THI U NGÔN NG PL/SQL ƯƠ Ớ Ệ Ữ 76 12.1. T NG QUAN V PL/SQL Ổ Ề 76 12.1.1. Cú pháp l nh PL/SQL ệ 76 12.1.2. Kh i l nh PL/SQL ố ệ 76 12.2. L NH L P TRÌNH PL/SQL Đ N GI N Ệ Ậ Ơ Ả 77 12.2.1. L nh IF ệ 77 12.2.2. L nh l p LOOP không đ nh tr c ệ ặ ị ướ 78 12.2.3. L nh l p LOOP có đ nh tr c ệ ặ ị ướ 78 12.2.4. L nh l p WHILE ệ ặ 78 12.2.5. L nh GOTO, nh y vô đi u ki n ệ ả ề ệ .78 12.3. GI I THI U CURSOR Ớ Ệ 79 12.4. CÁC KI U D LI U THÔNG D NG Ể Ữ Ệ Ụ 81 12.4.1. Ki u d li u Table ể ữ ệ 81 12.4.2. Ki u d li u Record ể ữ ệ 81 12.4.3. Sao ki u d li u m t dòng ể ữ ệ ộ 82 12.4.4. Sao ki u d li u c a m t c t ể ữ ệ ủ ộ ộ 82 12.4.5. L nh SELECT INTO ệ 82 12.5. BÀI T P Ậ 83 CH NG 13. GI I THI U PROCEDURE BUILDER ƯƠ Ớ Ệ 84 13.1. CÁC THÀNH PH N TRONG PROCEDURE BUILDER Ầ 84 13.1.1. Object Navigator 84 13.1.2. Program Unit Editor .85 13.1.3. Store Program Unit Editor 85 Trang 3 Oracle c b n - SQL và PL/SQL ơ ả 13.1.4. Database Trigger Edditor .85 13.2. CÁC HÀM, TH T C Ủ Ụ .86 13.2.1. T o hàm, th t c trên Client ạ ủ ụ 86 13.2.2. T o hàm, th t c trên Server ạ ủ ụ .86 13.2.3. Dò l i đ i v i các hàm, th t c ỗ ố ớ ủ ụ 87 CH NG 14. GI I THI U CÁC TH T C, HÀM VÀ PACKAGE ƯƠ Ớ Ệ Ủ Ụ 88 14.1. TH T C Ủ Ụ 88 14.1.1. T o th t c ạ ủ ụ 88 14.1.2. Hu b th t c ỷ ỏ ủ ụ 89 14.1.3. Các b c l u gi m t th t c ướ ư ữ ộ ủ ụ 89 14.2. HÀM 89 14.2.1. T o hàm ạ 90 14.2.2. Th c hi n m t hàm ự ệ ộ .90 14.2.3. L i ích c a vi c s d ng hàm ợ ủ ệ ử ụ 91 14.2.4. M t s h n ch khi s d ng hàm trong câu l nh SQL ộ ố ạ ế ử ụ ệ 91 14.2.5. Hu b hàm ỷ ỏ .91 14.2.6. Hàm và th t c ủ ụ 92 14.3. PACKAGE 92 14.3.1. C u trúc c a package ấ ủ 92 14.3.2. T o package ạ 93 14.3.3. Hu package ỷ 95 14.3.4. L i ích c a vi c s d ng package ợ ủ ệ ử ụ 95 14.3.5. M t s package chu n c a Oracle ộ ố ẩ ủ 96 CH NG 15. DATABASE TRIGGER ƯƠ .97 15.1. T O TRIGGER Ạ 97 15.1.1. Phân lo i trigger ạ 97 15.1.2. L nh t o trigger ệ ạ .98 15.1.3. S d ng Procedure builder đ t o trigger ử ụ ể ạ 99 15.2. QU N LÝ TRIGGER Ả 100 15.2.1. Phân bi t database trigger ệ 100 15.2.2. Thay đ i tr ng thái c a database trigger ổ ạ ủ 101 15.2.3. Hu b trigger ỷ ỏ .101 15.2.4. L u ý khi s d ng trigger ư ử ụ 102 PH L C Ụ Ụ 103 A - TÀI LI U THAM KH OỆ Ả .103 B - DANH M C CÁC HÌNH VỤ Ẽ 103 Trang 4 Oracle c b n - SQL và PL/SQL ơ ả Ch ng 1. GI I THI U CHUNG ươ Ớ Ệ 1.1.NGÔN NG SQL Ữ 1.1.1. L ch s phát tri n c a ngôn ng SQL ị ử ể ủ ữ Mô hình c s d li u (CSDL) quan h - RDBMS, do E.F Codd đ a ra vào đ u th p k 70. T đó đ n nay,ơ ở ữ ệ ệ ư ầ ậ ỷ ừ ế nó liên t c phát tri n tr thành mô hình CSDL ph bi n b c nh t. Mô hình quan h g m các thành ph nụ ể ở ổ ế ậ ấ ệ ồ ầ sau: T p h p các đ i t ng và / ho c các m i quan h ậ ợ ố ượ ặ ố ệ T p h p cácậ ợ x lý tác đ ng t i các quan h ử ộ ớ ệ Ràng bu c d li u đ m b o tính chính xác và nh t quán. ộ ữ ệ ả ả ấ SQL (Structured Query Language, đ c là "sequel") là t p l nh truy xu t CSDL quan h . ọ ậ ệ ấ ệ Ngôn ng SQL đ c IBM s d ng đ u tiên trong h qu n tr CSDL System R vào gi a ữ ượ ử ụ ầ ệ ả ị ữ nh ng năm 70. H ngôn ng SQL đ u tiên (SEQUEL2) đ c IBM công b vào tháng 11 ữ ệ ữ ầ ượ ố năm 1976. Năm 1979, t p đoàn Oracle gi i thi u th ng ph m đ u tiên c a SQL. SQL cũng ậ ớ ệ ươ ẩ ầ ủ đ c cài đ t trong các h qu n tr CSDL nh DB2 c a IBM và SQL/DS. ượ ặ ệ ả ị ư ủ Ngày nay, SQL đ c s d ng r ng rãi và đu c xem là ngôn ng chu n đ truy c p CSDL ượ ử ụ ộ ợ ữ ẩ ể ậ quan h . ệ 1.1.2. Chu n SQL ẩ Năm 1989, vi n tiêu chu n qu c gia Hoa Kỳ (ANSI) công nh n SQL là ngôn ng chu n đ truy c p CSDLệ ẩ ố ậ ữ ẩ ể ậ quan h trong văn b n ANSI SQL89. ệ ả Năm 1989, t ch c tiêu chu n qu c t (ISO) công nh n SQL ngôn ng chu n đ truy c p CSDL quan hổ ứ ẩ ố ế ậ ữ ẩ ể ậ ệ trong văn b n ISO 9075-1989. ả T t c các h qu n tr CSDL l n trên th gi i cho phép truy c p b ng SQL và h u h t theo chu n ANSI. ấ ả ệ ả ị ớ ế ớ ậ ằ ầ ế ẩ 1.2.CÁC KHÁI NI M C B N TRONG C S D LI U Ệ Ơ Ả Ơ Ở Ữ Ệ 1.2.1. Các thành ph n logic trong database ầ Thành ph n ầ Di n gi i ễ ả Table C u trúc l u tr c b n nh t trong CSDL quan h (RDBMS), nó bao ấ ư ữ ơ ả ấ ệ g m 1 ho c nhi u columns (c t d li u) v i 0 ho c nhi u rows (dòng d li u).ồ ặ ề ộ ữ ệ ớ ặ ề ữ ệ Row T h p nh ng giá tr c a Column trong b ng. M t row còn đ c g i ổ ợ ữ ị ủ ả ộ ượ ọ là 1 record (b n ghi). ả Column Quy đ nh m t lo i d li u trong b ng. Ví d : lo i d li u tên phòng ị ộ ạ ữ ệ ả ụ ạ ữ ệ ban có trong b ng phòng ban. Ta th hi n th column này thông qua tên columnả ể ể ị và có th kèm theo m t vài thông tin khác v column nh ki u d li u, đ dàiể ộ ề ư ể ữ ệ ộ c a d li u. ủ ữ ệ Field Giao c a column và row. Field chính là n i ch a d li u. N u không ủ ơ ứ ữ ệ ế có d li u trong field ta nói field có gia tr là ữ ệ ị NULL. Primary Key Là m t column ho c m t t p các column xác đ nh tính duy nh t c a ộ ặ ộ ậ ị ấ ủ các rows trong b ng. Ví d ở ả ụ DEPTNO là Primary Key c a b ng ủ ả DEPT vì nó đ c dùng đ xác đ nh duy nh t m t phòng ban trong b ng ượ ể ị ấ ộ ả DEPT mà đ i di n là m t row d li u. ạ ệ ộ ữ ệ Trang 5 Oracle c b n - SQL và PL/SQL ơ ả Primary Key nh t thi t ph i có s li u. ấ ế ả ố ệ Foreign Key Là m t column ho c m t t p các columns có tham chi u t i chính ộ ặ ộ ậ ế ớ b ng đó ho c m t b ng khác. ả ặ ộ ả Foreign Key xác đ nh m i quan h gi a các b ng. ị ố ệ ữ ả Constraints Là các ràng bu c đ i v i d li u trong các b ng thu c database. Ví ộ ố ớ ữ ệ ả ộ d : Foreign Key, Primary Key ụ Ví d : minh ho các thành ph n logic trong database ụ ạ ầ EMP EMPNO ENAME EMP DEPT DEPTNO 7369 SMITH 20 Row 7499 ALLEN 30 7521 WARD 30 7566 JONES 20 7654 MARTIN 30 7698 BLAKE 30 DEPT DEPTNO DNAME 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS Foreign key 7782 CLARK 10 Primary key Column Hình v 1. Minh ho các thành ph n logic trong database ẽ ạ ầ 1.2.2. Các đ i t ng trong database ố ượ Đ i t ng ố ượ Di n gi i ễ ả Table C u trúc l u tr c b n nh t trong CSDL quan h (RDBMS), g m ấ ư ữ ơ ả ấ ệ ồ row và column View Là c u trúc logic hi n th d li u t 1 ho c nhi u b ng ấ ể ị ữ ệ ừ ặ ề ả Sequence L t sinh giá tr cho các primary key ế ị Index Tăng tính th c thi cho câu l nh truy v n ự ệ ấ Synonym Tên t ng đ ng c a đ i t ng ươ ươ ủ ố ượ Program unit T p h p các câu l nh th c hi n đ c vi t b i ngôn ng SQL và ậ ợ ệ ự ệ ượ ế ở ữ PL/SQL, bao g m Procedure, function, package ồ 1.2.3. Các nhóm l nh SQL c b n ệ ơ ả Tên l nh ệ SELECT INSERT UPDATE DELETE Di n gi i ễ ả Là l nh thông d ng nh t, dùng đ l y, xem d li u trong CSDL. ệ ụ ấ ể ấ ữ ệ Là 3 l nh dùng đ nh p thêm nh ng row m i, thay đ i n i dung ệ ể ậ ữ ớ ổ ộ d li u trên các row hay xoá các row trong table. Nh ng l nh này ữ ệ ữ ệ đ c g i là các l nh thao tác d li u DML (Data Manipulation ượ ọ ệ ữ ệ Language) Trang 6 Oracle c b n - SQL và PL/SQL ơ ả CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVE POINT GRANT REVOKE Là 3 l nh dùng đ thi t l p, thay đ i hay xoá b c u trúc d li u ệ ể ế ậ ổ ỏ ấ ữ ệ nh là table, view, index. Nh ng l nh này đ c g i là các l nh đ nh nghĩaư ữ ệ ượ ọ ệ ị d li u DDL (Data Definition Language) ữ ệ Qu n lý vi c thay đ i d li u b ng các l nh DML. Vi c thay đ i d li u cóả ệ ổ ữ ệ ằ ệ ệ ổ ữ ệ th đ c nhóm l i thành các transaction. ể ượ ạ 2 l nh này dùng đ gán ho c hu các quy n truy nh p vào CSDL Oracle vàệ ể ặ ỷ ề ậ các c u trúc bên trong nó. Nh ng l nh này đ c g i là các l nh đi u khi nấ ữ ệ ượ ọ ệ ề ể d li u DCL (Data Control Language) ữ ệ 1.3.C S D LI U TH C HÀNH Ơ Ở Ữ Ệ Ự 1.3.1. Mô hình d li u ữ ệ DEPT EMP SALGRADE DUMMY BONUS Hình v 2. Mô hình d li u th c hành ẽ ữ ệ ự 1.3.2. C u trúc b ng d li u ấ ả ữ ệ B ng DEPT ả Tên c t ộ Ki u ể Đi u ki n ề ệ Di n gi i ễ ả DEPTNO NUMBER(2) PRIMARY KEY Mã phòng ban DNAME VARCHAR2(14) Tên phòng ban LOC VARCHAR2(13) Đ a ch ị ỉ B ng SALGRADE ả Tên c t ộ Ki u ể Đi u ki n ề ệ Di n gi i ễ ả GRADE NUMBER PRIMARY KEY M c l ng ứ ươ LOSAL NUMBER Giá tr th p nh t ị ấ ấ HISAL NUMBER Giá tr cao nh t ị ấ Trang 7 Oracle c b n - SQL và PL/SQL ơ ả B ng EMP ả Tên c t ộ Ki u ể Đi u ki n ề ệ EMPNO NUMBER(4) PRIMARY KEY ENAME VARCHAR2(10) JOB VARCHAR2 (9) MGR NUMBER(4) FOREIGN KEY (EMP.EMPNO) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) NOT FOREIGN KEY NULL, (DEPT.DEPTNO) Di n gi i ễ ả Mã nhân viên Tên nhân viên Ngh nghi p ề ệ Mã ng i qu n lý ườ ả Ngày gia nh p công ty ậ L ng ươ Th ng ưở Mã phòng ban Trang 8 Oracle c b n - SQL và PL/SQL ơ ả Ch ng 2. L NH TRUY V N C B N ươ Ệ Ấ Ơ Ả 2.1.CÂU L NH TRUY V N Ệ Ấ 2.1.1. Quy t c vi t l nh ắ ế ệ Các câu l nh truy v n đ c bi u di n theo các quy t c sau: ệ ấ ượ ể ễ ắ Các lênh trong câu l nh SQL thu c lo i không phân bi t ch vi t hoa hay th ng. ệ ộ ạ ệ ữ ế ườ N i dungộ c a m t câu l nh SQL có th đ c tr i dài trên nhi u dòng. ủ ộ ệ ể ượ ả ề Các t khoá không đ c phép vi từ ượ ế t t hay phân cách trên nhi u dòng ắ ề Các m nh đ thông th ng đ c đ t trên nhi u dòng khácệ ề ườ ượ ặ ề nhau Đ rõ ràng trong vi c th hi n câu l nh, ta nên s d ng các d u TAB khi vi t l nh ể ệ ể ệ ệ ử ụ ấ ế ệ Ta có th s d ng các ký t đ c bi t nh : +, -, \, *, đ bi u di n giá tr trong câu ể ử ụ ự ặ ệ ư ể ể ễ ị l nh. ệ L nh k t thúc b i d u ch m ph y (;). ệ ế ở ấ ấ ẩ 2.1.2. Câu l nh truy v n c b n ệ ấ ơ ả Cú pháp: SELECT [DISTINCT ] {*, column [alias], } FROM table; V i: ớ SELECT Hi n th n i dung c a m t hay nhi u c t ể ị ộ ủ ộ ề ộ DISTINCT Phân bi t n i dung gi a các dòng d li u tr v ệ ộ ữ ữ ệ ả ề L y t t các các c t trong b ng ấ ấ ộ ả column Tên c t d li u c n tr v ộ ữ ệ ầ ả ề alias Ph n tiêu đ c a c t d li u tr v ầ ề ủ ộ ữ ệ ả ề FROM table Tên b ng ch a d li u truy v n ả ứ ữ ệ ấ Ví d : ụ SELECT FROM emp; C u trúc c a l nh truy v n g m có hai ph n: ấ ủ ệ ấ ồ ầ M nh đ ch n l a bao g m L nh ệ ề ọ ự ồ ệ SELECT và tên c t d li u tr vộ ữ ệ ả ề M nh đ bi u di n n i ch a bao g m ệ ề ể ễ ơ ứ ồ FROM và tên b ng. ả 2.1.3. Các thành ph n khác c a m nh đ SELECT ầ ủ ệ ề Trong m nh đ ệ ề SELECT còn có th đ a vào các thành ph n khác: ể ư ầ Bi u th c toán h c ể ứ ọ Column alias Các column đ c ghép chu i ượ ỗ Literal Bi u th c toán h c ể ứ ọ Trong m nh đ ệ ề SELECT bi u th c toán h c có th các giá tr (column ho c hàng s ), các toán t , các hàm.ể ứ ọ ể ị ặ ố ử Các toán t đ c dùng là (+), (-), (*), (/). Đ u tiên c a các toán t gi ng trong ph n s h c. ử ượ ộ ư ủ ử ố ầ ố ọ Ví d : ụ Trang 9 [...]... LAST_DAY(S HIREDATE LAST_DAY(H LAST_DAY(' 2 8-0 3-2 001 3 1-0 3-2 001 0 2-0 4-1 981 3 0-0 4-1 981 3 1-0 1-2 001 280 3-2 001 3 1-0 3-2 001 0 3-1 2-1 981 3 1-1 2-1 981 3 1-0 1-2 001 2 8-0 32001 3 1-0 3-2 001 1 7-1 2-1 980 3 1-1 2-1 980 3 1-0 1-2 001 2 8-0 3-2 001 3 1-0 3-2 001 0 9-1 2-1 982 3 1-1 2-1 982 3 1-0 1-2 001 2 8-0 3-2 001 310 3-2 001 1 2-0 1-1 983 3 1-0 1-1 983 3 1-0 1-2 001 Một số hàm khác có thể áp dụng cho kiểu ngày Hàm SQL ROUND(date1) ROUND(date1,’MONTH’) ROUND(date1,’YEAR’)... TWEEN('0 1-0 1-2 000','0 5-1 0-2 000') Trang 30 Oracle cơ bản - SQL và PL /SQL 241.271055 241.206539 243.367829 -9 .1290323 -9 .1290323 -9 .1290323 Ví dụ hàm ADD_MONTHS(d,n) SELECT HIREDATE, ADD_MONTHS(HIRE,3), ADD_MONTHS(HIREDATE ,-3 ) FROM EMP WHERE DEPTNO=20; HIREDATE ADD_MONTHS ADD_MONTHS 0 2-0 4-1 981 0 2-0 7-1 981 0 2-0 1-1 981 031 2-1 981 0 3-0 3-1 982 0 3-0 9-1 981 1 7-1 21980 1 7-0 3-1 981 1 7-0 9-1 980 0 9-1 21982 0 9-0 3-1 983 0 9-0 9-1 982... 7698 7698 7566 7902 7566 7788 7782 1 7-1 1-1 981 0 1-0 5-1 981 0 9-0 6-1 981 0 2-0 4-1 981 2 8-0 9-1 981 2 0-0 2-1 981 0 8-0 9-1 981 0 3-1 2-1 981 2 2-0 2-1 981 0 3-1 2-1 981 1 7-1 2-1 980 0 9-1 2-1 982 1 2-0 1-1 983 2 3-0 1-1 982 SAL COMM 5000 2850 2450 2975 1250 1600 1500 950 1250 3000 800 3000 1100 1300 1400 300 0 500 DEPTNO 10 30 10 20 30 30 30 30 30 20 20 20 20 10 Trang 15 Oracle cơ bản - SQL và PL /SQL 3 Hiển thị mọi loại nghề nghiệp JOB... 7839 1 2-0 1-1 983 0 9-0 6-1 981 0 3-1 2-1 981 0 2-0 4-1 981 1 7-1 1-1 981 7782 2 3-0 1-1 982 7566 0 9-1 2-1 982 7902 1 7-1 2-1 980 SAL COMM DEPTNO 1100 2450 3000 2975 5000 1300 3000 800 20 10 20 20 10 10 20 20 4 Hiển thị tên và nghề nghiệp những nhân viên làm nghề thư ký (cleck) tại phòng 20 ENAME JOB SMITH ADAMS CLERK CLERK Trang 21 Oracle cơ bản - SQL và PL /SQL 5 Hiển thị tất cả những nhân viên mà tên có các ký tự TH và LL... 0 9-0 3-1 983 0 9-0 9-1 982 1 2-0 11983 1 2-0 4-1 983 1 2-1 0-1 982 Ví dụ hàm NEXT_DAY(d, char ) SELECT HIREDATE, NEXT_DAY(HIREDATE,’FRIDAY’), NEXT_DAY(HIREDATE,6) FROM EMP WHERE DEPTNO = 10; HIREDATE NEXT_DAY(H NEXT_DAY(H 1 7-1 1-1 981 2 0-1 1-1 981 2 0-1 1-1 981 090 6-1 981 1 2-0 6-1 981 1 2-0 6-1 981 2 3-0 11982 2 9-0 1-1 982 2 9-0 1-1 982 Ví dụ hàm LAST_DAY(d) SELECT SYSDATE, LAST_DAY(SYSDATE), LAST_DAY(’1 5-0 1-2 001’) FROM EMP WHERE DEPTNO... hàm SIGN(n) SELECT SAL-NVL(COMM,0), SIGN(SAL-NVL(COMM,0)), NVL(COMM,0)-SAL, SIGN(NVL(COMM,0)-SAL) FROM EMP WHERE DEPTNO =30 SAL-NVL(COMM,0)SIGN(SAL-NVL(COMM,0))NVL(COMM,0)-SAL SIGN(NVL(COMM,0) SAL) 2850 -1 50 1300 1500 950 750 1 -1 1 1 1 1 -2 850 150 -1 300 -1 500 -9 50 -7 50 -1 1 -1 -1 -1 -1 4.2.2 Các hàm thao tác trên kiểu dữ liệu ký tự Hàm SQL thao tác trên kiểu dữ liệu là ký tự Hàm SQL CONCAT(char1, char2)... 2.2 .SQL* PLUS, CÔNG CỤ TƯƠNG TÁC LỆNH SQL VỚI DATABASE 2.2.1 Câu lệnh tương tác của SQL* Plus Oracle hỗ trợ công cụ SQL* Plus cho phép người sử dụng có thể tương tác trực tiếp với Oracle Server thông qua các câu lệnh SQL và PL /SQL Theo đó người sử dụng có thể tương tác với Oracle Server thông qua hai loại câu lệnh: Câu lệnh SQL Câu lệnh của bản thân chương trình SQL* Plus Trang 11 Oracle cơ bản - SQL và. .. 20 12-JAN-83 8 Hiển thị tên nhân viên, lương một năm (ANUAL_SAL ), thưởng sao cho lương lớn hơn thưởng và nghề nghiệp là SALEMAN, sắp theo thứ tự lương giảm dần và tên tăng dần ANUAL_SAL 19200 18000 15000 COMM 300 0 500 Trang 22 Oracle cơ bản - SQL và PL /SQL Chương 4 CÁC HÀM SQL 4.1.TỔNG QUAN VỀ HÀM SQL 4.1.1 Cấu trúc hàm SQL Hàm SQL là một đặc điểm làm tăng khả năng sử dụng câu lệnh SQL Hàm SQL có... SQL* Plus Trang 11 Oracle cơ bản - SQL và PL /SQL Hình vẽ 3 Câu lệnh của SQL* Plus Khác biệt giữa lệnh SQL và SQL* Plus SQL SQL*Plus Là ngôn ngữ để giao tiếp với Oracle Server trong việc truy xuất dữ liệu Nhận dạng lệnh SQL và gửi lệnh lên Server Câu lệnh dựa trên bộ ký tự chuẩn ASCII Tuỳ thuộc vào từng phiên bản của Oracle Không Thao tác trên các dữ liệu có trong các bảng đã được định nghĩa trong database... từng dữ liệu đầu vào tại mỗi dòng dữ liệu Hàm tác động trên nhóm các dòng dữ liệu: Giá trị trả vê tương ứng với các phép thao tác trên nhóm dữ liệu trả về Trang 23 Oracle cơ bản - SQL và PL /SQL Hình vẽ 6 Phân loại hàm SQL 4.2.HÀM SQL THAO TÁC TRÊN TỪNG DÒNG DỮ LIỆU 4.2.1 Các hàm thao tác trên kiểu dữ liệu số Đầu vào và đầu ra là các giá trị kiểu số Một số hàm SQL hay dùng Diễn giải Hàm SQL ROUND(n[,m]) . 7902 1 7-1 2-1 980 800 20 7788 SCOTT ANALYST 7566 0 9-1 2-1 982 3000 20 7876 ADAMS CLERK 7788 1 2-0 1-1 983 1100 20 7934 MILLER CLERK 7782 2 3-0 1-1 982 1300 10 Trang 15 Oracle c b n - SQL và PL /SQL ơ. SQL* Plus ệ ủ ả ươ Trang 11 Oracle c b n - SQL và PL /SQL ơ ả Hình v 3. Câu l nh c a SQL* Plus ẽ ệ ủ Khác bi t gi a l nh SQL và SQL* Plus ệ ữ ệ SQL Là ngôn ng đ giao ti p v i Oracle Server ữ ể ế ớ trong. SQL và PL /SQL C b nơ ả Oracle c b n - SQL và PL /SQL ơ ả M C L C Ụ Ụ M C L C Ụ Ụ 1 CH NG 1. GI I THI U CHUNG ƯƠ Ớ Ệ 5 1.1. NGÔN NG SQL Ữ 5 1.1.1. L ch s phát tri n c a ngôn ng SQL ị

Ngày đăng: 07/07/2014, 01:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan