Giáo trình SQL và PL/SQL

78 620 5
Giáo trình SQL và PL/SQL

Đ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

Giáo trình SQL và PL/SQL

www.nhipsongcongnghe.net Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL Công ty cổ phần đầu t phát triển công nghệ - Fpt Hà Nội, tháng 11 năm 2002 Đào tạo Oracle Giáo trình SQL PL/SQL Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL vµ PL/SQL Mơc lơc Mơc lơc Giíi thiƯu .6 1.1 1.2 Mục tiêu khoá häc Khởi động tho¸t khái Oracle .6 1.2.1 1.2.2 1.3 Giíi thiệu ngôn ngữ SQL 1.3.1 1.3.2 1.4 1.5 1.6 1.7 Lệnh truy vấn 10 Các thành phần khác mƯnh ®Ị SELECT 10 Giá trị Null 11 Lọc liệu từ row có giá trị 11 HiĨn thÞ cÊu tróc b¶ng 12 C¸c lƯnh cđa c«ng SQL*Plus 12 2.6.1 2.6.2 2.6.3 2.7 Các hàm số 20 Các hàm ký tự 22 Các hàm ngày 26 Các hàm chuyển đổi kiểu .28 Bµi tËp 29 Bµi tËp 32 Các hàm nhóm áp dụng cho lớn dòng liệu 32 6.1 6.2 6.3 MƯnh ®Ị ORDER BY 16 MƯnh ®Ị WHERE .16 C¸c to¸n tư 17 Bµi tËp 19 BiÕn runtime 31 5.1 Bµi tËp 14 Các hàm áp dụng cho dòng liÖu 20 4.1 4.2 4.3 4.4 4.5 Các lệnh soạn th¶o .12 C¸c lƯnh vỊ file 13 C¸c lƯnh vỊ column .13 Truy vÊn d÷ liƯu cã ®iỊu kiƯn 16 3.1 3.2 3.3 3.4 Mô hình quan hệ liệu Mô tả d÷ liƯu LƯnh truy vÊn c¬ b¶n 10 2.1 2.2 2.3 2.4 2.5 2.6 Lịch sử phát triển ngôn ngữ SQL .7 ChuÈn SQL .7 C¸c kh¸i niƯm CSDL .7 Danh sách rút gọn đối t−ỵng CSDL C¸c lƯnh SQL Giíi thiƯu vỊ vÝ dơ thùc hµnh 1.7.1 1.7.2 T¹i Server (Window NT) T¹i Client (Window 9x) Các hàm tác động nhóm 32 MƯnh ®Ị GROUP BY 34 Bµi tËp 35 Hiển thị nội dung liệu từ nhiều bảng 35 7.1 Mối liên kết tơng đơng 35 Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL 7.2 7.3 7.4 7.5 7.6 C¸c lƯnh truy vÊn lång 39 8.1 8.2 Mối liên kết không tơng đơng 35 Mèi liªn kÕt céng .36 Liên kết bảng với .36 Các toán tử tập hợp 36 Bµi tËp 37 C©u lƯnh SELECT lång 39 Bµi tËp 40 Cấu trúc hình 40 9.1 9.2 9.3 Cấu trúc hình table .40 Kü thuËt thùc hiÖn 41 Bµi tËp 42 10 Tỉng kÕt vỊ lƯnh select .44 11 T¹o table 44 11.1 11.2 11.3 11.4 Lệnh tạo bảng 44 Các quy tắc đặt tên object .46 Các quy tắc tham chiÕu ®Õn object 47 KiĨu d÷ liƯu điều kiện 47 11.4.1 11.4.2 11.4.3 11.4.4 11.4.5 11.4.6 11.4.7 11.4.8 11.4.9 11.4.10 11.4.11 CHAR 47 VARCHAR2 48 VARCHAR 48 NUMBER .48 FLOAT 48 LONG 49 DATE 49 RAW vµ LONG RAW 50 ROWID 50 MLSLABEL 50 Chun ®ỉi kiĨu 50 11.5 Constraint 51 11.6 Bµi tËp 52 12 lệnh DDL khác liệu từ điển liệu .52 12.1 ChØnh sưa cÊu tróc table 52 12.2 C¸c lƯnh DDL kh¸c 53 12.2.1 12.2.2 12.2.3 12.2.4 Xãa table .53 Gi¶i thÝch b¶ng 53 Thay ®ỉi tªn object 53 Xãa d÷ liƯu cđa table 53 12.3 Dữ liệu từ điển liệu 54 12.4 Bµi tËp 54 13 C¸c lƯnh Thao t¸c liệu khác 55 13.1 13.2 13.3 13.4 13.5 13.6 14 ChÌn mét row vµo table 55 ChØnh sưa d÷ liƯu 55 Xãa dßng 55 Lỗi ràng buộc liệu .56 Lệnh điều khiển giao dịch 56 Bµi tËp 57 Sequence vµ index 57 Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL 14.1 Sequence 57 14.1.1 14.1.2 T¹o Sequence .57 Xoá sửa sequence 58 14.2 Index 58 14.3 Bµi tËp 59 15 T¹o view 59 15.1 View 59 15.2 Bµi tËp 61 16 Quyền bảo mật 61 16.1 QuyÒn - PRIVILEGE 61 16.2 ROLE 62 16.3 Synonym 63 17 tỉng quan vỊ pl/sql vµ procedure builder .63 17.1 Có ph¸p lƯnh PL/SQL .63 17.2 PL/SQL block 63 17.3 Giíi thiÖu Procedure builder 64 18 có ph¸p lËp tr×nh 66 18.1 18.2 18.3 18.4 18.5 19 cursor 68 19.1 19.2 19.3 19.4 19.5 20 IF 66 LOOP vµ EXIT 66 FOR 67 WHILE 67 GOTO 67 Định nghÜa 68 KiÓu liệu Table Record 69 Sao kiĨu d÷ liƯu 70 C©u lƯnh SELECT INTO PL/SQL 70 Bµi tËp 70 procedure vµ funtion 71 20.1 Procedure 71 20.2 Function 72 20.3 Bµi tËp 73 21 pakage .73 21.1 Package .73 22 database trigger 74 22.1 Database Trigger .74 22.2 Bµi tËp 75 23 error handing 76 23.1 Bµi tËp 78 Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL Giới thiệu 1.1 Mục tiêu khoá học Kết thúc khoá học học viên phải nắm đợc ã Hiểu đợc phơng pháp, thành phần, thuật ngữ thao tác CSDL quan hệ ã Tạo đợc cấu trúc liệu nh table, view dùng SQL ã Ghi, đọc, cập nhật liệu CSDL ã Xây dựng PL/SQL block dùng Procedure Builder 1.2 Khởi động thoát khỏi Oracle 1.2.1 Tại Server (Window NT) SQLDBA cung cấp dịch vụ quản trị hệ thống, nh: tạo lập CSDL, mở - đóng CSDL, tạo quản lý USER Các bớc để khởi động Server nh sau: ã Khởi động máy chủ ã Bật dịch vụ OracleServiceXXX (trong XXX tên CSDL) cách nhấn vào Start -> Program > Service -> OracleServiceXXX -> NhÊn cht ph¶i -> NhÊn Start Chó ý chØ bật dịch vụ ngời cài đặt không để chế độ tự động hay dịch vụ cha đợc bật ã Bật dịch vụ OracleXXXTNSLístener (trong XXX tên Database Home) cách nhấn vào Start -> Program -> Service -> OracleXXXTNSLÝstener -> NhÊn chuét ph¶i -> Nhấn Start Chú ý bật dịch vụ ngời cài đặt không để chế độ tự động hay dịch vụ cha đợc bật ã Khi bật xong CSDL đà sẵn sàng để làm việc Để đóng CSDL cần làm theo bớc ngợc lại: ã Tắt dịch vụ OracleXXXTNSLístener (trong XXX tên Database Home) cách nhấn vào Start -> Program -> Service -> OracleXXXTNSLÝstener -> NhÊn chuét ph¶i -> NhÊn Stop ã Tắt dịch vụ OracleServiceXXX (trong XXX tên CSDL) cách nhấn vào Start -> Program > Service -> OracleServiceXXX -> NhÊn chuét ph¶i -> NhÊn Stop ã Shutdown máy chủ 1.2.2 Tại Client (Window 9x) Các ứng dụng oracle chạy môi trờng Windows với giao diƯn graphic, c¸c øng dơng th−êng dïng cã SQL*Plus, Oracle Form, Oracle Report, Oracle Designer Việc chạy ứng dụng hoàn toàn giống nh việc chạy ứng dụng thông thờng môi trờng windows Để làm viƯc víi c¸c øng dơng truy cËp CSDL Oracle, ng−êi sử dụng (NSD) phải connect vào CSDL Có hai cách ®Ĩ connect Connect NSD/password, vÝ dơ NSD tªn Scott cã password tiger Connect Scott/tiger Phát lệnh connect với tên NSD, Oracle hỏi password Connect Scott Enter password: ***** Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL NSD làm việc phạm vi cho phép mà Oracle gọi "khung cảnh" (Schema) NSD Mỗi khung cảnh chứa nhiều đối tợng loại, NSD tác động lên đối tợng khung cảnh Trong ứng dụng có chức thoát tự động disconnect Để thực hành phần SQL PL/SQL gọi ứng dụng SQL* Plus 1.3 Giới thiệu ngôn ngữ SQL 1.3.1 Lịch sử phát triển ngôn ngữ SQL Mô hình sở liệu (CSDL) quan hệ E.F Codd đa vào đầu thập kỷ 70, từ đến liên tục phát triển trở thành mô hình CSDL phổ biến bậc (RDBMS) Mô hình quan hệ gồm thành phần sau: ã Tập hợp đối tợng và/hoặc mối quan hệ ã Tập hợp xử lý tác động tới quan hệ ã Ràng buộc liệu đảm bảo tính xác quán SQL (Structured Query Language, đọc "sequel") tập lệnh truy xuất CSDL quan hệ Ngôn ngữ SQL đợc IBM sử dụng hệ quản trị CSDL System R vào năm 70, hệ ngôn ngữ SQL (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 SQL, SQL đợc cài đặt hệ quản trị CSDL nh DB2 IBM SQL/DS Ngày nay, SQL đợc sử dụng rộng rÃi đuợc xem ngôn ngữ chuẩn để truy cập CSDL quan hệ 1.3.2 Chuẩn SQL Năm 1989, viện tiêu chuẩn quốc gia Hoa kỳ (ANSI) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ vă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ệ văn ISO 9075-1989 Tất hệ quản trị CSDL lớn giới cho phép truy cập SQL hầu hết theo chuẩn ANSI 1.4 Các khái niệm CSDL Table cấu trúc lu trữ CSDL quan hệ (RDBMS), bao gồm nhiều column nhiều row Row tổ hợp giá trị Column bảng Một row đợc gọi record Column hiển thị loại liệu bảng, ví dụ tên phòng ban bảng phòng ban Ngời ta thể thông qua tên column giữ số liệu dới kiểu kích cỡ định Field giao column row Field nơi chứa liệu Nếu liƯu field ng−êi ta nãi field cã gia trÞ null Primary Key column tập column xác định tính row bảng Ví dụ mà phòng ban Primary Key thiết phải có số liệu Foreign Key column tập column tham chiếu tới bảng bảng khác Foreign Key xác định mối quan hệ bảng Constraint ràng bc d÷ liƯu, vÝ dơ Foreign Key, Primary Key Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL Ví dụ: EMP EMPNO DEPT ENAME DEPTNO EMP 7369 Row DEPTNO DNAME DEPT SMITH 20 10 ACCOUNTING 7499 ALLEN 30 20 RESEARCH 7521 WARD 30 7566 JONES 20 30 SALES 7654 MARTIN 30 40 OPERATIONS 7698 BLAKE 30 7782 CLARK 10 Foreign key Primary key Column 1.5 Danh sách rút gọn đối tợng CSDL Table cấu trúc lu trữ CSDL quan hƯ (RDBMS), gåm row vµ column View cấu trúc logic hiển thị liệu từ nhiều bảng Sequence kết sinh giá trị cho primary key Index tăng tính thực thi cáu truy vấn Synonym tên tơng đơng đối tợng Program unit gåm Procedure, function, package 1.6 C¸c lƯnh SQL LƯnh SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVE POINT GRANT REVOKE Mô tả Là lệnh thông dụng nhất, dùng để lấy, xem liệu CSDL Là lệnh dùng để nhập thêm row mới, thay đổi nội dung liệu row hay xoá row table Những lệnh đợc gọi lệnh thao tác liệu DML (Data Manipulation Language) Là lệnh dùng để thiết lập, thay đổi hay xoá bỏ cấu trúc liệu nh table, view, index Những lệnh đợc gọi lệnh định nghĩa liệu DDL (Data Definition Language) Quản lý việc thay đổi liệu lệnh DML Việc thay đổi liệu đợc nhóm lại thành transaction lệnh dùng để gán huỷ quyền truy nhập vào CSDL Oracle cấu trúc bên Những lệnh đợc gọi lệnh điều khiển liệu DCL (Data Đào tạo bản: SQL PL/SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL Control Language) 1.7 1.7.1 Giới thiệu ví dụ thực hành Mô hình quan hệ liệu DEPT EMP SALGRADE DUMMY 1.7.2 BONUS Mô tả liệu Tên Kiểu Khoá Giải thích DEPTNO NUMBER(2) NOT NULL PK Mà phòng ban DNAME CHAR(14) Tên phòng ban LOC CHAR(13) Địa DEPT SALGRADE GRADE NUMBER LOSAL NUMBER PK Mức lơng Giá trị thấp HISAL NUMBER Giá trị cao EMP EMPNO NUMBER(4) NOT NULL, ENAME CHAR(10), JOB CHAR(9), MGR NUMBER(4) HIREDATE DATE Ngày gia nhập công ty SAL NUMBER(7,2) Lơng COMM NUMBER(7,2) DEPTNO NUMBER(2) NOT NULL, Đào tạo bản: SQL PL/SQL PK Mà nhân viên Tên nhân viên Nghề nghiệp FK (EMP.EMPNO) Mà ngời quản lý Thởng FK (DEPT.DEPTNO) Mà phòng ban Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL/SQL Lệnh truy vấn 2.1 Lệnh truy vấn SELECT [DISTINCT ] {*, column [alias], } FROM table; ã SELECT column trả lời câu hỏi lấy liệu nào? (column, biểu thức ), mệnh đề SELECT cần có ã FROM trả lời câu hỏi lấy liệu đầu? (table, view ) ã DISTINCT định hiển thị lần liệu trùng ã * thay cho việc tên tất column ã alias đa nhÃn column hiển thị liệu Vd: SELECT * FROM emp; SELECT empno, ename, deptno, mgr FROM emp; SELECT DISTINCT job nghenghiep FROM emp; 2.2 Các thành phần khác mệnh đề SELECT Trong mệnh đề SELECT đa vào 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 hàng số), toán tử, hàm Các toán tử đợc dùng (+), (-), (*), (/) Độ u tiên toán tử giống phần sè häc Vd: SELECT ename, sal *12, comm FROM emp; SELECT ename, (sal+250)*12 FROM emp; Column alias Trong mƯnh ®Ị SELECT, column alias phần nhÃn hiển thị column lấy số liệu Trong column alias không đợc có dấu cách viết cách sau tên column dấu cách Column alias đợc chấp nhận có dấu cách đợc đặt dấu nháy kép ( ) Vd: (ANUAL chÝnh lµ column alias) SELECT ename, SAL*12 ANUAL, comm FROM emp; Các column đợc ghép chuỗi Toán tử ghép chuỗi (||) cho phép column đợc nối với thành dạng chuỗi Có thể có nhiều toán tử ghép chuỗi column alias Vd: SELECT empno||ename EMPLOYEE FROM emp; SELECT ename || ' co luong la ' || (sal+250)*12 as "mieu ta" FROM emp; Chuỗi đặt nháy đơn, bí danh đặt nháy kép Đào tạo bản: SQL PL/SQL Trang 10 ... triển công nghệ - FPT Giáo trình SQL PL /SQL Công ty cổ phần đầu t phát triển công nghệ - Fpt Hà Nội, tháng 11 năm 2002 Đào tạo Oracle Giáo trình SQL PL /SQL Đào tạo bản: SQL PL /SQL Trang Công ty cổ... truy nhập vào CSDL Oracle cấu trúc bên Những lệnh đợc gọi lệnh điều khiển liệu DCL (Data Đào tạo bản: SQL PL /SQL Trang Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL vµ PL /SQL Control... phép liệu thoả mÃn điều kiện Đào tạo bản: SQL PL /SQL Trang 17 Công ty cổ phần đầu t phát triển công nghệ - FPT Giáo trình SQL PL /SQL Các toán tư cđa SQL • [NOT] BETWEEN x AND y : [Không] lớn

Ngày đăng: 23/08/2012, 16:16

Từ khóa liên quan

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

Tài liệu liên quan