KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH SQL

146 70 0
KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH 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

TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH SQL (Lưu hành nội bộ) Biên soạn: Trần Nguyên Phong Huế, 2004 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ SQL .7 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 (Table) 1.3.3 Khoá bảng 10 1.3.4 Mối quan hệ khố ngồi 11 1.4 Sơ lược SQL 12 1.4.1 Câu lệnh SQL 12 1.4.2 Qui tắc sử dụng tên SQL 14 1.4.3 Kiểu liệu 14 1.4.4 Giá trị NULL 16 1.5 Kết chương 16 CHƯƠNG 2: NGÔN NGỮ THAO TÁC DỮ LIỆU 18 2.1 Truy xuất liệu với câu lệnh SELECT 18 2.1.1 Mệnh đề FROM 19 2.1.2 Danh sách chọn câu lệnh SELECT 20 2.1.3 Chỉ định điều kiện truy vấn liệu 25 2.1.4 Tạo bảng liệu từ kết câu lệnh SELECT 29 2.1.5 Sắp xếp kết truy vấn 29 2.1.6 Phép hợp 31 2.1.7 Phép nối 33 2.1.7.1 Sử dụng phép nối 34 2.1.7.2 Các loại phép nối 36 2.1.7.4 Sử dụng phép nối SQL2 40 2.1.8 Thống kê liệu với GROUP BY 43 2.1.9 Thống kê liệu với COMPUTE 46 2.1.10 Truy vấn (Subquery) 49 2.2 Bổ sung, cập nhật xoá liệu 53 2.2.1 Bổ sung liệu 53 2.2.2 Cập nhật liệu 54 2.2.3 Xoá liệu 56 Bài tập chương 58 CHƯƠNG 3: NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 69 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 3.1 Tạo bảng liệu 69 3.1.1 Ràng buộc CHECK 72 3.1.2 Ràng buộc PRIMARY KEY 74 3.1.3 Ràng buộc UNIQUE 76 3.1.4 Ràng buộc FOREIGN KEY 76 3.2 Sửa đổi định nghĩa bảng 79 3.3 Xoá bảng 81 3.4 Khung nhìn 82 3.4.1 Tạo khung nhìn 84 3.4.2 Cập nhật, bổ sung xoá liệu thơng qua khung nhìn 86 3.4.3 Sửa đổi khung nhìn 89 3.4.4 Xố khung nhìn 90 Bài tập chương 90 CHƯƠNG 4: BẢO MẬT TRONG SQL 96 4.1 Các khái niệm 96 4.2 Cấp phát quyền 97 4.2.1 Cấp phát quyền cho người dùng đối tượng sở liệu 97 4.2.2 Cấp phát quyền thực thi câu lệnh 99 4.3 Thu hồi quyền 100 4.3.1 Thu hồi quyền đối tượng sở liệu: 100 4.3.2 Thu hồi quyền thực thi câu lênh: 103 CHƯƠNG 5: THỦ TỤC LƯU TRỮ, HÀM VÀ TRIGGER .104 5.1 Thủ tục lưu trữ (stored procedure) 104 5.1.1 Các khái niệm 104 5.1.2 Tạo thủ tục lưu trữ 105 5.1.3 Lời gọi thủ tục lưu trữ 107 5.1.4 Sử dụng biến thủ tục 107 5.1.5 Giá trị trả tham số thủ tục lưu trữ 108 5.1.6 Tham số với giá trị mặc định 109 5.1.7 Sửa đổi thủ tục 110 5.2 Hàm người dùng định nghĩa 111 5.2.1 Định nghĩa sử dụng hàm 111 5.2.2 Hàm với giá trị trả “dữ liệu kiểu bảng” 112 5.3 Trigger 116 5.3.1 Định nghĩa trigger 117 5.3.2 Sử dụng mệnh đề IF UPDATE trigger 119 5.3.3 ROLLBACK TRANSACTION trigger 121 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 122 5.3.4.1 Sử dụng truy vấn 122 5.3.4.2 Sử dụng biến trỏ 125 Bài tập chương 127 CHƯƠNG 6: GIAO TÁC SQL 132 6.1 Giao tác tính chất giao tác 132 6.2 Mơ hình giao tác SQL 133 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 6.3 Giao tác lồng 136 PHỤ LỤC 138 A Cơ sở liệu mẫu sử dụng giáo trình 138 B Một số hàm thường sử dụng 141 B.1 Các hàm liệu kiểu chuỗi 141 B.2 Các hàm liệu kiểu ngày 143 B.3 Hàm chuyển đổi kiểu 144 TÀI LIỆU THAM KHẢO 146 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 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ế), 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, chúng tơi 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úng tơi chọn hệ quản trị sở Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 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ế, 2003 Trần Nguyên Phong Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 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 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL • Đảm bảo toàn vẹn liệu: SQL định nghĩa ràng buộc tồ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 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 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 yê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 Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL • 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: Sưu tầm bởi: www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL 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 Khoá 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 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ố cịn lại gọi khoá phụ khoá dự tuyển (candidate key/unique key) 10 Sưu tầm bởi: www.daihoc.com.vn ... DHT02 TENKHOA Khoa Công nghệ thông tin Khoa Công nghệ thông tin Khoa Công nghệ thông tin MAKHOA DHT03 DHT03 TENKHOA Khoa Vật lý Khoa Vật lý MAKHOA DHT05 DHT05 TENKHOA Khoa Sinh học Khoa Sinh học MALOP... www.daihoc.com.vn Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL kết câu lệnh sau: MAKHOA DHT01 DHT01 DHT01 TENKHOA Khoa Toán - Tin học Khoa Toán - Tin học Khoa Toán - Tin học MAKHOA DHT02 DHT02 DHT02 TENKHOA Khoa. .. thuộc Khoa Công nghệ Thông tin SELECT hodem,ten,ngaysinh FROM (sinhvien INNER JOIN lop ON sinhvien.malop=lop.malop) INNER JOIN khoa ON lop.makhoa =khoa. makhoa WHERE tenkhoa=N ''Khoa công nghệ thông tin''

Ngày đăng: 12/08/2020, 23:10

Mục lục

  • Chương 1. Tổng quan về SQL

    • 1.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ

    • 1.2 Vai trò của SQL

    • 1.3 Tổng quan về cơ sở dữ liệu quan hệ

      • 1.3.1 Mô hình dữ liệu quan hệ

      • 1.3.4 Mối quan hệ và khoá ngoài

      • 1.4.2 Qui tắc sử dụng tên trong SQL

      • 2.1.2 Danh sách chọn trong câu lệnh SELECT

        • a. Chọn tất cả các cột trong bảng

        • b. Tên cột trong danh sách chọn

        • c. Thay đổi tiêu đề các cột

        • d. Sử dụng cấu trúc CASE trong danh sách chọn

        • e. Hă` ng và biểu thức trong danh sách chọn

        • f. Loại bỏ các dòng dữ liệu trùng nhau trong kết quả truy vấn

        • g. Giới hạn số lượng dòng trong kết quả truy vấn

        • 2.1.3 Chỉ định điều kiện truy vấn dữ liệu

          • a. Các toán tử so sánh

          • b. Kiểm tra giới hạn của dữ liệu

          • c. Danh sách (IN và NOT IN)

          • d. Toán tử LIKE và các ký tự đại diện

          • 2.1.4 Tạo mới bảng dữ liệu từ kết quả của câu lệnh SELECT

          • 2.1.5 Sắp xếp kết quả truy vấn

          • 2.1.7 Phép nối

            • 2.1.7.1 Sử dụng phép nối

              • Danh sách chọn trong phép nối

              • Mệnh đề FROM trong phép nối

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

Tài liệu liên quan