Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 128 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
128
Dung lượng
2,26 MB
Nội dung
TRƯỜNG ĐẠI HỌC DUY TÂN KHOA CÔNG NGHỆ THÔNG TIN TẬP BÀI GIẢNG Mơn học: LẬP TRÌNH SQL Số tín chỉ: 02 Mã môn học: IS 400 Lý thuyết: 02 Thực hành: Dành cho sinh viên ngành: công nghệ phần mềm, mạng máy tính, cao đẳng tin Khoa: Cơng nghệ thông tin Bậc đào tạo: Đại học – Cao đẳng Học kỳ: Năm học: 2013-2014 Đà Nẵng, tháng 10 năm 2013 LỜI NĨI ĐẦU Ngơn ngữ truy vấn có cấu trúc SQL có tiền thân SEQUEL, ngơn ngữ IBM phát triển sử dụng hệ sở liệu thử nghiệm System/R vào năm 1974, thức cơng nhận chuẩn ngơn ngữ sử dụng hệ sở liệu quan hệ vào năm 1986 Ngày nay, SQL sử dụng rộng rãi có vai trò quan trọng hệ thống hệ quản trị sở liệu Tập giảng khơng có tham vọng đề cập hết khía cạnh SQL mà mong muốn tài liệu tham khảo tương đối đầy đủ câu lệnh thường sử dụng SQL Tập giảng giới thiệu lập trình SQL Nội dung trình bày chương: Chương 1: Trình bày tổng quan SQL Chương 2: Trình bày ngơn ngữ định nghĩa liệu Chương 3: Trình bày ngơn ngữ thao tác liệu Chương 4: Trình bày bảo mật SQL Chương 5: Trình bày thủ tục lưu trữ, hàm trigger Chương 6: Trình bày tổng quan giao tác SQL Mặc dù cố gắng tập giảng chắn không tránh khỏi sai sót Rất mong nhận ý kiến đóng góp từ q thầy cơ, bạn sinh viên Chân thành cảm ơn ! PHÂN BỔ THỜI GIAN GIẢNG DẠY GIỜ THỨ NỘI DUNG 1–3 CHƯƠNG 1: TỔNG QUAN VỀ SQL 4–9 CHƯƠNG 2: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 10 – 15 CHƯƠNG 3: NGÔN NGỮ THAO TÁC DỮ LIỆU 16 – 18 CHƯƠNG 4: BẢO MẬT SQL 19 – 24 CHƯƠNG 5: THỦ TỤC LƯU TRỮ, HÀM VÀ TRIGGER 25 – 30 CHƯƠNG 6: GIAO TÁC SQL TRANG MỤC LỤC LỜI NÓI ĐẦU PHÂN BỔ THỜI GIAN GIẢNG DẠY MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ SQL 1.1 SQL ngôn ngữ sở liệu quan hệ 1.2 Vai trò SQL 1.3 Tổng quan sở liệu quan hệ 1.3.1 Mô hình liệu quan hệ 1.3.2 Bảng 1.3.3 Khóa 1.3.4 Mối quan hệ khóa ngoại 10 1.4 Sơ lược SQL 11 1.4.1 Câu lệnh SQL 11 1.4.2 Quy tắc sử dụng tên SQL 13 1.4.3 Kiểu liệu 14 1.4.4 Giá trị NULL 15 1.5 Kết luận 15 CHƯƠNG 2: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 18 2.1 Tạo bảng liệu 18 2.1.1 Ràng buộc CHECK 21 2.1.2 Ràng buộc PRIMARY KEY 23 2.1.3 Ràng buộc UNIQUE 24 2.1.4 Ràng buộc FOREIGN KEY 25 2.2 Sửa đổi định nghĩa bảng 28 2.3 Xóa bảng 30 2.4 Khung nhìn 31 2.4.1 Tạo khung nhìn 33 2.4.2 Cập nhật, bổ sung xóa liệu thơng qua khung nhìn 35 2.4.3 Sửa đổi khung nhìn 38 2.4.4 Xóa khung nhìn 39 2.5 Kết chương 39 CHƯƠNG 3: NGÔN NGỮ THAO TÁC DỮ LIỆU 42 3.1 Truy xuất liệu với câu lệnh SELECT 42 3.1.1 Mệnh đề FROM 43 3.1.2 Danh sách chọn câu lệnh SELECT 44 3.1.3 Chỉ định điều kiện câu lệnh truy vấn 49 3.1.4 Tạo bảng liệu từ kết câu lệnh SELECT 53 3.1.5 Sắp xếp kết truy vấn 53 3.1.6 Phép hợp 55 3.1.7 Phép nối 57 3.1.7.1 Sử dụng phép nối 59 3.1.7.2 Các loại phép nối 61 3.1.7.3 Sử dụng phép nối SQL 65 3.1.8 Thống kê liệu với GROUP BY 68 3.1.9 Thống kê liệu với COMPUTE 71 3.1.10 Truy vấn (SubQuery) 75 3.2 Bổ sung, cập nhật xóa liệu 78 3.2.1 Bổ sung liệu 78 3.2.2 Cập nhật liệu 80 3.2.3 Xóa liệu 82 3.3 Kết chương 83 CHƯƠNG 4: BẢO MẬT SQL 86 4.1 Các khái niệm 86 4.2 Cấp phát quyền 87 4.2.1 Cấp phát quyền cho người dùng đối tượng sở liệu 87 4.2.2 Cấp phát quyền thực thi lệnh SQL 90 4.3 Thu hồi quyền 90 4.3.1 Thu hồi quyền sở liệu 91 4.3.2 Thu hồi quyền thực thi câu lệnh 93 4.4 Kết chương 94 CHƯƠNG 5: THỦ TỤC LƯU TRỮ, HÀM VÀ TRIGGER 96 5.1 Thủ tục lưu trữ (Stored Procedure) 96 5.1.1 Các khái niệm 96 5.1.2 Tạo thủ tục lưu trữ 97 5.1.3 Lời gọi thủ tục lưu trữ 99 5.1.4 Sử dụng biến thủ tục 99 5.1.5 Giá trị trả tham số thủ tục lưu trữ 100 5.1.6 Tham số với giá trị mặc định 102 5.1.7 Sửa đổi thủ tục 103 5.1.8 Xóa thủ tục 103 5.2 Hàm người dùng định nghĩa .103 5.2.1 Định nghĩa sử dụng hàm 103 5.2.2 Hàm với giá trị trả kiểu bảng .105 5.3 Trigger 108 5.3.1 Định nghĩa trigger 109 5.3.2 Định nghĩa mệnh đề IF UPDATE trigger 111 5.3.3 ROLLBACK TRANSACTION TRIGGER .113 5.3.4 Sử dụng trigger trường hợp câu lệnh INSERT, UPDATE DELETE có tác động nhiều đến dòng liệu 114 5.3.4.1 Sử dụng truy vấn .115 5.3.4.2 Sử dụng biến trỏ 117 5.4 Kết chương 119 CHƯƠNG 6: GIAO TÁC SQL .122 6.1 Giao tác tính chất giao tác 122 6.2 Mơ hình giao tác SQL 123 6.3 Giao tác lồng 125 6.4 Kết chương 127 Chương 1: Cơ SQL CHƯƠNG 1: TỔNG QUAN VỀ SQL A MỤC TIÊU CHƯƠNG VỀ KIẾN THỨC: Cung cấp cho sinh viên kiến thức: SQL ngôn ngữ sở liệu quan hệ Hiểu vai trò SQL Nắm khái niệm sở liệu quan hệ VỀ KỸ NĂNG: Học xong chương sinh viên vận dụng kiến thức vào thực tế để triển khai SQL hệ quản trị sở liệu khác thông qua: Sử dụng ngôn ngữ định nghĩa sở liệu Sử dụng ngôn ngữ thao tác liệu Bảo mật SQL Thủ tục, hàm trigger Giao tác SQL B NỘI DUNG CHƯƠNG HỌC 1.1 SQL ngôn ngữ sở liệu quan hệ SQL ngơn ngữ truy vấn có cấu trúc (Structured Query Language) công cụ để tổ chức, quản lý, xử lý liệu sử dụng để vận hành chức mà hệ quản trị sở liệu cung cấp cho người dùng: Định nghĩa liệu: định nghĩa cách thức tổ chức, cấu trúc lưu trữ mối quan hệ thành phần liệu Truy xuất thao tác liệu: cho phép người dùng thực thao tác truy xuất, tương tác với liệu hệ quản trị sở liệu quan hệ Điều khiển truy cập: SQL cấp phát, kiểm sốt thao tác người dùng đến liệu, đảm bảo an toàn cho sở liệu Đảm bảo toàn vẹn liệu: SQL định nghĩa ràng buộc toàn vẹn sở liệu nhằm đảm bảo xác tồn vẹn liệu tương tác đến liệu Như vậy, nói SQL ngơn ngữ hồn thiện sử dụng Lập trình SQL – Phạm An Bình - 2013 Trang Chương 1: Cơ SQL hệ thống sở liệu thành phần thiếu hệ quản trị sở liệu SQL ngôn ngữ dễ tiếp cận dễ sử dụng 1.2 Vai trò SQL SQL hệ quản trị sở liệu nên khơng thể tồn độc lập mà phần hệ quản trị sở liệu, đóng vai trò ngơn ngữ công cụ giao tiếp người sử dụng với hệ quản trị sở liệu Trong hầu hết hệ quản trị sở liệu, SQL có vai trò: Ngơn ngữ truy vấn: người sử dụng gởi u cầu thơng qua câu lệnh SQL thông tin trả từ sở liệu Ngơn ngữ lập trình sở liệu: lập trình viên sử dụng câu lệnh SQL ngơn ngữ lập trình để xây dựng ứng dụng giao tiếp với sở liệu Ngôn ngữ quản trị sở liệu: người quản trị sử dụng SQL quản trị sở liệu, điều khiển cấu trúc sở liệu, điều khiển truy cập, Ngôn ngữ cho hệ thống khách/chủ: SQL sử dụng cơng cụ để giao tiếp ứng dụng phía máy khách với máy chủ sở liệu Ngôn ngữ truy cập sở liệu Internet: máy chủ web thường sử dụng SQL ngôn ngữ để tương tác với liệu sở liệu Ngôn ngữ sở liệu phân tán: Đối với hệ quản trị sở liệu phân tán, hệ thống sử dụng SQL để giao tiếp với hệ thống khác mạng, gởi nhận yêu cầu truy xuất liệu với Ngôn ngữ sử dụng cho cổng giao tiếp sở liệu: hệ thống mạng máy tính với nhiều hệ quản trị sở liệu khác nhau, SQL thường sử dụng chuẩn ngôn ngữ để giao tiếp hệ quản trị sở liệu 1.3 Tổng quan sở liệu quan hệ 1.3.1 Mơ hình liệu quan hệ Mơ hình liệu quan hệ Codd đề xuất năm 1970 đến trở thành mô hình sử dụng phổ biến hệ quản trị sở liệu thương mại Một sở liệu quan hệ sở liệu, tất liệu tổ chức bảng có mối quan hệ với Mỗi bảng bao gồm dòng cột: dòng gọi ghi (bộ) Lập trình SQL – Phạm An Bình - 2013 Trang Chương 1: Cơ SQL cột trường (thuộc tính) Hình 1.1 minh hoạ cho ta thấy bảng sở liệu Hình 1.1: Các bảng sở liệu 1.3.2 Bảng Bảng đối tượng sử dụng để tổ chức lưu trữ liệu Một sở liệu gồm nhiều bảng bảng xác định tên bảng Một bảng bao gồm tập dòng cột: dòng bảng biểu diễn cho thực thể (trong hình 1.1, dòng bảng SINHVIEN tương ứng với sinh viên); cột biểu diễn cho tính chất thực thể (chẳng hạn cột NGAYSINH bảng SINHVIEN biểu diễn cho ngày sinh sinh viên lưu trữ bảng) Bảng bao gồm thành phần sau: Tên bảng: để xác định bảng, sở liệu Cấu trúc bảng: tập hợp cột, cột xác định tên cột phải thuộc kiểu liệu Kiểu liệu cột qui định giá trị nhập vào cột Dữ liệu: tập hợp dòng (bản ghi) có bảng 1.3.3 Khóa Trong sở liệu thiết kế tốt, bảng phải có một tập cột mà giá trị liệu xác định dòng Lập trình SQL – Phạm An Bình - 2013 Trang Chương 1: Cơ SQL tập dòng bảng Tập nhiều cột có tính chất gọi khố bảng Việc chọn khố bảng có vai trò quan trọng việc thiết kế cài đặt sở liệu quan hệ Các dòng liệu bảng phải có giá trị khác khố Bảng MONHOC hình có khố cột MAMONHOC Hình 1.2: Bảng MONHOC với khố MAMONHOC Một bảng có nhiều tập cột khác có tính chất khố (tức giá trị xác định dòng liệu bảng) Trong trường hợp này, khoá chọn cho bảng gọi khố (primary key) khố lại gọi khố phụ khoá dự tuyển (candidate key/unique key) 1.3.4 Mối quan hệ khóa ngoại Các bảng sở liệu có mối quan hệ mật thiết với mặt liệu thể thông qua ràng buộc giá trị liệu xuất bảng phải có xuất trước bảng khác, nhằm đàm bảo tính đắn hợp lệ liệu sở liệu Trong hình 1.3, hai bảng LOP KHOA có mối quan hệ với Mối quan hệ đòi hỏi giá trị cột MAKHOA dòng (tức lớp) bảng LOP phải xác định từ cột MAKHOA bảng KHOA Lập trình SQL – Phạm An Bình - 2013 Trang 10 Chương 5: Thủ tục lưu trữ, hàm trigger CREATE TRIGGER trg_nhatkybanhang_insert ON NHATKYBANHANG FOR INSERT AS DECLARE @sl_co int /* Số DECLARE @sl_ban int /* Số lượng hàng có */ lượng hàng bán */ DECLARE @mahang nvarchar(5) /* Mã hàng bán */ SELECT @mahang=mahang,@sl_ban=soluong FROM inserted SELECT @sl_co = soluong FROM mathang where mahang=@mahang /*Nếu số bỏ lượng hàng có nhỏ thao tác bổ sung số lượng bán huỷ liệu */ IF @sl_co