Giáo trình SQL đại học khoa học huế 60

149 54 0
Giáo trình SQL   đại học khoa học huế 60

Đ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

MỤC LỤC LỜI NÓI ĐẦU 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ệ .8 1.3.1 Mơ hình liệu quan hệ 1.3.2 Bảng (Table) 1.3.3 Khoá bảng 1.3.4 Mối quan hệ khố ngồi 10 1.4 Sơ lược SQL 11 1.4.1 Câu lệnh SQL 11 1.4.2 Qui tắc sử dụng tên SQL .13 1.4.3 Kiểu liệu 13 1.4.4 Giá trị NULL 15 1.5 Kết chương 15 CHƯƠNG 2: NGÔN NGỮ THAO TÁC DỮ LIỆU 17 2.1 Truy xuất liệu với câu lệnh SELECT 17 2.1.1 Mệnh đề FROM .18 2.1.2 Danh sách chọn câu lệnh SELECT 19 2.1.3 Chỉ định điều kiện truy vấn liệu .24 2.1.4 Tạo bảng liệu từ kết câu lệnh SELECT .28 2.1.5 Sắp xếp kết truy vấn 28 2.1.6 Phép hợp 30 2.1.7 Phép nối 32 2.1.7.1 Sử dụng phép nối 33 2.1.7.2 Các loại phép nối 35 2.1.7.4 Sử dụng phép nối SQL2 39 2.1.8 Thống kê liệu với GROUP BY .42 2.1.9 Thống kê liệu với COMPUTE 45 2.1.10 Truy vấn (Subquery) .48 2.2 Bổ sung, cập nhật xoá liệu 51 2.2.1 Bổ sung liệu 52 2.2.2 Cập nhật liệu .53 2.2.3 Xoá liệu 55  Bài tập chương 56 CHƯƠNG 3: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 68 3.1 Tạo bảng liệu 68 3.1.1 Ràng buộc CHECK 71 3.1.2 Ràng buộc PRIMARY KEY 73 3.1.3 Ràng buộc UNIQUE 75 3.1.4 Ràng buộc FOREIGN KEY 75 3.2 Sửa đổi định nghĩa bảng .78 3.3 Xoá bảng .80 3.4 Khung nhìn 81 3.4.1 Tạo khung nhìn 83 3.4.2 Cập nhật, bổ sung xố liệu thơng qua khung nhìn .85 3.4.3 Sửa đổi khung nhìn 88 3.4.4 Xoá khung nhìn 88  Bài tập chương 89 CHƯƠNG 4: BẢO MẬT TRONG SQL 95 4.1 Các khái niệm .95 4.2 Cấp phát quyền .96 4.2.1 Cấp phát quyền cho người dùng đối tượng sở liệu 96 4.2.2 Cấp phát quyền thực thi câu lệnh 98 4.3 Thu hồi quyền .99 4.3.1 Thu hồi quyền đối tượng sở liệu: 99 4.3.2 Thu hồi quyền thực thi câu lênh: 102 CHƯƠNG 5: THỦ TỤC LƯU TRỮ, HÀM VÀ TRIGGER 103 5.1 Thủ tục lưu trữ (stored procedure) .103 5.1.1 Các khái niệm 103 5.1.2 Tạo thủ tục lưu trữ .104 5.1.3 Lời gọi thủ tục lưu trữ 106 5.1.4 Sử dụng biến thủ tục 106 5.1.5 Giá trị trả tham số thủ tục lưu trữ 107 5.1.6 Tham số với giá trị mặc định .108 5.1.7 Sửa đổi thủ tục .109 5.2 Hàm người dùng định nghĩa 110 5.2.1 Định nghĩa sử dụng hàm 110 5.2.2 Hàm với giá trị trả “dữ liệu kiểu bảng” .111 5.3 Trigger 115 5.3.1 Định nghĩa trigger 115 5.3.2 Sử dụng mệnh đề IF UPDATE trigger .118 5.3.3 ROLLBACK TRANSACTION trigger 119 5.3.4 Sử dụng trigger trường hợp câu lệnh INSERT, UPDATE DELETE có tác động đến nhiều dịng liệu 121 5.3.4.1 Sử dụng truy vấn 121 5.3.4.2 Sử dụng biến trỏ .124  Bài tập chương 126 CHƯƠNG 6: GIAO TÁC SQL 131 6.1 Giao tác tính chất giao tác 131 6.2 Mơ hình giao tác SQL 132 6.3 Giao tác lồng 135 PHỤ LỤC 137 A Cơ sở liệu mẫu sử dụng giáo trình 137 B Một số hàm thường sử dụng 144 B.1 Các hàm liệu kiểu chuỗi 144 B.2 Các hàm liệu kiểu ngày .145 B.3 Hàm chuyển đổi kiểu .146 TÀI LIỆU THAM KHẢO 149 LỜI NĨI ĐẦU Ngơn ngữ hỏi 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 có tên System/R vào năm 1974, thức ANSI/ISO cơng nhận chuẩn ngơn ngữ sử dụng sở liệu quan hệ vào năm 1986 Cho đến nay, SQL sử dụng phổ biển hệ quản trị sở liệu thương mại có vai trị quan trọng hệ thống Được động viên đồng nghiệp Khoa Công nghệ Thông tin (Trưòng Đại học Khoa học - Đại học Huế), chúng tơi mạnh dạn viết giới thiệu Giáo trình SQL đến bạn đọc Trong giáo trình này, chúng tơi khơng có tham vọng đề cập đến 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 Giáo trình chia thành sáu chương với nội dung sau: • Chương giới thiệu tổng quan SQL số khái liên quan đến sở liệu quan hệ • Chương dành để bàn luận đến câu lệnh thao tác liệu bao gồm SELECT, INSERT, UPDATE DELETE, tập trung nhiều vào câu lệnh SELECT • Chương trình bày số câu lệnh sử dụng định nghĩa đối tượng sở liệu • Một số vấn đề liên quan đến bảo mật liệu SQL đề cập đến chương • Nội dung chương liên quan đến việc sử dụng thủ tục lưu trữ, hàm trigger sở liệu • Trong chương cuối cùng, chương 6, giới thiệu đến bạn đọc số vấn đề liên quan đến xử lý giao tác SQL Ngoài sáu chương trên, phần phụ lục cuối giáo trình đề cập đến sở liệu mẫu sử dụng hầu hết ví dụ số hàm thường sử dụng hệ quản trị SQL Server 2000 để bạn đọc tiện việc tra cứu So với chuẩn SQL ANSI/ISO đề xuất, thân hệ quản trị sở liệu quan hệ thương mại lại có số thay đổi đó; Điều đơi dẫn đến khác biệt, không đáng kể, SQL chuẩn SQL sử dụng hệ quản trị sở liệu cụ thể Trong giáo trình này, chọn hệ quản trị sở liệu SQL Server 2000 hãng Microsoft để sử dụng cho ví dụ minh hoạ lời giải tập Chúng hi vọng giáo trình thực có ích bạn đọc Chúng mong nhận cổ vũ ý kiến đóng góp thẳng thắn bạn Cuối cùng, xin gởi lời cảm ơn đến thầy cô, đồng nghiệp bạn sinh viên động viên giúp đỡ chúng tơi hồn thành giáo trình Huế, 2004 Trần Nguyên Phong Chương 1: TỔNG QUAN VỀ SQL Ngơn ngữ hỏi có cấu trúc (SQL) hệ quản trị sở liệu quan hệ tảng kỹ thuật quan trọng cơng nghiệp máy tính Cho đến nay, nói SQL xem ngôn ngữ chuẩn sở liệu Các hệ quản trị sở liệu quan hệ thương mại có Oracle, SQL Server, Informix, DB2, chọn SQL làm ngơn ngữ cho sản phẩm Vậy thực SQL gì? Tại lại quan trọng hệ quản trị sở liệu? SQL làm nào? Nó sử dụng hệ quản trị sở liệu quan hệ? Nội dung chương cung cấp cho nhìn tổng quan SQL số vấn đề liên quan 1.1 SQL ngôn ngữ sở liệu quan hệ SQL, viết tắt Structured Query Language (ngơn ngữ hỏi có cấu trúc), cơng cụ sử dụng để tổ chức, quản lý truy xuất liệu đuợc lưu trữ sở liệu SQL hệ thống ngôn ngữ bao gồm tập câu lệnh sử dụng để tương tác với sở liệu quan hệ Tên gọi ngôn ngữ hỏi có cấu trúc phần làm liên tưởng đến công cụ (ngôn ngữ) dùng để truy xuất liệu sở liệu Thực mà nói, khả SQL vượt xa so với công cụ truy xuất liệu, mục đích ban đầu SQL xây dựng nên truy xuất liệu chức quan trọng SQL sử dụng để điều khiển tất chức mà hệ quản trị sở liệu cung cấp cho người dùng bao gồm: • Định nghĩa liệu: SQL cung cấp khả định nghĩa sở liệu, cấu trúc lưu trữ tổ chức liệu mối quan hệ thành phần liệu • Truy xuất thao tác liệu: Với SQL, người dùng dễ dàng thực thao tác truy xuất, bổ sung, cập nhật loại bỏ liệu sở liệu • Điều khiển truy cập: SQL sử dụng để cấp phát kiểm soát thao tác người sử dụng liệu, đảm bảo an toàn cho sở liệu • Đảm bảo tồn vẹn liệu: SQL định nghĩa ràng buộc toàn vẹn sở liệu nhờ đảm bảo tính hợp lệ xác liệu trước thao tác cập nhật lỗi hệ thống Như vậy, nói SQL ngơn ngữ hồn thiện sử dụng hệ thống sở liệu thành phần thiếu hệ quản trị sở liệu Mặc dù SQL khơng phải ngơn ngữ lập trình C, C++, Java, song câu lệnh mà SQL cung cấp nhúng vào ngơn ngữ lập trình nhằm xây dựng ứng dụng tương tác với sở liệu Khác với ngôn ngữ lập trình quen thuộc C, C++, Java, SQL ngơn ngữ có tính khai báo Với SQL, người dùng cần mô tả yêu cầu cần phải thực sở liệu mà không cần phải cách thức thực yêu cầu Chính vậy, SQL ngơn ngữ dễ tiếp cận dễ sử dụng 1.2 Vai trị SQL Bản thân SQL khơng phải hệ quản trị sở liệu, khơng thể tồn độc lập SQL thực phần hệ quản trị sở liệu, xuất hệ quản trị sở liệu với vai trị ngơn ngữ cơng cụ giao tiếp người sử dụng hệ quản trị sở liệu Trong hầu hết hệ quản trị sở liệu quan hệ, SQL có vai trị sau: • SQL ngơn ngữ hỏi có tính tương tác: Người sử dụng dễ dàng thơng qua trình tiện ích để gởi u cầu dạng câu lệnh SQL đến sở liệu nhận kết trả từ sở liệu • SQL ngơn ngữ lập trình sở liệu: Các lập trình viên nhúng câu lệnh SQL vào ngôn ngữ lập trình để xây dựng nên chương trình ứng dụng giao tiếp với sở liệu • SQL ngôn ngữ quản trị sở liệu: Thông qua SQL, người quản trị sở liệu quản lý sở liệu, định nghĩa cấu trúc lưu trữ liệu, điều khiển truy cập sở liệu, • SQL ngơn ngữ cho hệ thống khách/chủ (client/server): Trong hệ thống sở liệu khách/chủ, SQL sử dụng cơng cụ để giao tiếp trình ứng dụng phía máy khách với máy chủ sở liệu • SQL ngơn ngữ truy cập liệu Internet: Cho đến nay, hầu hết máy chủ Web máy chủ Internet sử dụng SQL với vai trị ngơn ngữ để tương tác với liệu sở liệu • SQL 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 • SQL ngơn ngữ sử dụng cho cổng giao tiếp sở liệu: Trong 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 Nói cách đơn giản, 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ộ) 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 (Table) Như nói trên, sở liệu quan hệ, bảng đối tượng sử dụng để tổ chức lưu trữ liệu Một sở liệu bao 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) Như vậy, liên quan đến bảng bao gồm yếu tố sau: • Tên bảng: sử dụng để xác định bảng sở liệu • Cấu trúc bảng: Tập cột bảng Mỗi cột bảng xác định tên cột phải có kiểu liệu (chẳng hạn cột NGAYSINH bảng SINHVIEN hình 1.1 có kiểu DATETIME) Kiểu liệu cột qui định giá trị liệu chấp nhận cột • Dữ liệu bảng: Tập dịng (bản ghi) có bảng 1.3.3 Khố bảng 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 tập dòng bảng Tập nhiều cột có tính chất gọi khoá bảng Việc chọn khoá 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ố cịn lại gọi khoá phụ khoá dự tuyển (candidate key/unique key) 1.3.4 Mối quan hệ khố ngồi Các bảng sở liệu không tồn độc lập mà có mối quan hệ mật thiết với mặt liệu Mối quan hệ 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 Mối quan hệ bảng sở liệu 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 B¶ ng LOP Hình 1.3: Mối quan hệ hai bảng LOP KHOA sở liệu Mối quan hệ bảng sở liệu thể mối quan hệ thực thể giới thực Trong hình 1.3, mối quan hệ hai bảng LOP KHOA không cho phép lớp tồn mà lại thuộc vào khoa khơng có thật Khái niệm khố ngồi (Foreign Key) sở liệu quan hệ sử dụng để biểu diễn mối quan hệ bảng liệu Một hay tập cột bảng mà giá trị xác định từ khóa bảng khác gọi khố ngồi Trong hình 1.3, cột MAKHOA bảng LOP gọi khố ngồi bảng này, khố ngồi tham chiếu đến khố bảng KHOA cột MAKHOA 10 ... Cho đến nay, SQL sử dụng phổ biển hệ quản trị sở liệu thương mại có vai trị quan trọng hệ thống Được động viên đồng nghiệp Khoa Cơng nghệ Thơng tin (Trưịng Đại học Khoa học - Đại học Huế) , mạnh... thiệu Giáo trình SQL đến bạn đọc Trong giáo trình này, chúng tơi khơng có tham vọng đề cập đến 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 Giáo trình. .. ngữ lập trình sở liệu: Các lập trình viên nhúng câu lệnh SQL vào ngơn ngữ lập trình để xây dựng nên chương trình ứng dụng giao tiếp với sở liệu • SQL ngơn ngữ quản trị sở liệu: Thông qua SQL, người

Ngày đăng: 14/11/2021, 10:57

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

Tài liệu liên quan