GIÁO TRÌNH - SQL (Trần Nguyên Phong)
Ngôn ngữhỏi có cấu trúc (SQL), có tiền thân là SEQUEL, là một ngôn ngữ được IBM phát triển và sửdụng trong hệcơsởdữliệu thửnghiệm có tên là System/R vào năm 1974, chính thức được ANSI/ISO công nhận là một chuẩn ngôn ngữsửdụng trong cơsởdữliệu quan hệvào năm 1986. Cho đến hiện nay, SQL đã được sửdụng phổbiển trong các hệquản trịcơsởdữliệu thương mại và có vai trò quan trọng trong những hệthống này.
Được sự động viên của các đồng nghiệp trong KhoaCô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 và 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 mọi khía cạnh của SQL mà chỉmong muốn rằng đâysẽlà tài liệu thamkhảo tương đối
đầy đủvềcác câu lệnh thường được sửdụng trong SQL. Giáo trình được chia thành sáu chương với nội dung nhưsau:
• Chương 1 giới thiệu tổng quan vềSQL và một sốkhái cơbản liên quan đến cơsở dữliệu quan hệ.
• Chương 2 được dành đểbàn luận đến các câu lệnh thao tác dữliệu bao gồm SELECT, INSERT, UPDATEvà DELETE, trong đó tập trung nhiều vào câu lệnh SELECT.
• Chương 3 trình bày một sốcâu lệnh cơbản được sửdụng trong định nghĩa các đối tượng cơsởdữliệu.
• Một sốvấn đềliên quan đến bảo mật dữliệu trong SQL được đềcập đến trong chương 4.
• Nội dung của chương 5 liên quan đến việc sửdụng thủtục lưu trữ, hàmvà trigger trong cơsởdữliệu.
• Trong chương cuối cùng, chương 6, chúng tôi giới thiệu đến bạn đọc một sốvấn đề liên quan đến xửlý giao tác trong SQL
Ngoài sáu chương trên, phần phụlục ởcuối giáo trình đềcập đến cơsởdữliệu mẫu được sửdụng trong hầu hết các ví dụvà một sốhàm thường được sửdụng trong hệquản trịSQL Server2000 đểbạn đọc tiện trong việc tra cứu.
NỘI DUNG:
CHƯƠNG 1: .............................................................................7 TỔNG QUAN VỀSQL
1.1 SQL là ngôn ngữcơsởdữliệu quan hệ...........................................................................7
1.2 Vai trò của SQL................................................................................................................8
1.3 Tổng quan vềcơsởdữliệu quan hệ.................................................................................9
1.3.1 Mô hình dữliệu quan hệ............................................................................................9
1.3.2 Bảng (Table)..............................................................................................................9
1.3.3 Khoá của bảng.........................................................................................................10
1.3.4 Mối quan hệvà khoá ngoài......................................................................................11
1.4 Sơlược vềSQL...............................................................................................................12
1.4.1 Câu lệnh SQL...........................................................................................................12
1.4.2 Qui tắc sửdụng tên trong SQL...............................................................................14
1.4.3 Kiểu dữliệu.............................................................................................................14
1.4.4 Giá trịNULL...........................................................................................................16
1.5 Kết chương......................................................................................................................16
CHƯƠNG 2: ......................................................18 NGÔN NGỮTHAO TÁC DỮLIỆU
2.1 Truy xuất dữ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 trong câu lệnh SELECT................................................................20
2.1.3 Chỉ định điều kiện truy vấn dữliệu.........................................................................25
2.1.4 Tạo mới bảng dữliệu từkết quảcủa câu lệnh SELECT.........................................29
2.1.5 Sắp xếp kết quả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 trong SQL2..........................................................................40
2.1.8 Thống kê dữliệu với GROUP BY...........................................................................43
2.1.9 Thống kê dữliệu với COMPUTE............................................................................46
2.1.10 Truy vấn con (Subquery).......................................................................................49
2.2 Bổsung, cập nhật và xoá dữliệu....................................................................................53
2.2.1 Bổsung dữliệu........................................................................................................53
2.2.2 Cập nhật dữliệu.......................................................................................................54
2.2.3 Xoá dữliệu...............................................................................................................56
Bài tập chương 2.............................................................................................................58
CHƯƠNG 3: ..................................................69 NGÔN NGỮ ĐỊNH NGHĨA DỮLIỆU
2
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
3.1 Tạo bảng dữ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 và xoá dữliệu thông qua khung nhìn.........................................86
3.4.3 Sửa đổi khung nhìn..................................................................................................89
3.4.4 Xoá khung nhìn........................................................................................................90
Bài tập chương 3.............................................................................................................90
CHƯƠNG 4: ........................................................................96 BẢO MẬT TRONG SQL
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 trên các đối tượng cơsởdữliệu..........................97
4.2.2 Cấp phát quyền thực thi các câulệnh......................................................................99
4.3 Thu hồi quyền...............................................................................................................100
4.3.1 Thu hồi quyền trên đối tượng cơsởdữliệu:..........................................................100
4.3.2 Thu hồi quyền thực thi các câu lênh:.....................................................................103
CHƯƠNG 5: .......................................104 THỦTỤC LƯU TRỮ, HÀM VÀ TRIGGER
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 trong thủtục.....................................................................................107
5.1.5 Giá trịtrảvềcủa thamsốtrong thủtục lưu trữ......................................................108
5.1.6 Thamsốvới giá trịmặc định.................................................................................109
5.1.7 Sửa đổi thủtục.......................................................................................................110
5.2 Hàmdo người dùng định nghĩa....................................................................................111
5.2.1 Định nghĩa và sửdụng hàm...................................................................................111
5.2.2 Hàmvới giá trịtrảvềlà “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 trong trigger.........................................................119
5.3.3 ROLLBACK TRANSACTION và trigger............................................................121
5.3.4 Sửdụng trigger trong trường hợp câu lệnh INSERT, UPDATE và DELETE cótác
động đến nhiều dòng dữliệu...........................................................................................122
5.3.4.1 Sửdụng truy vấn con.....................................................................................122
5.3.4.2 Sửdụng biến con trỏ.......................................................................................125
Bài tập chương 5...........................................................................................................127
CHƯƠNG 6: ....................................................................................132 GIAO TÁC SQL
6.1 Giao tác và các tính chất của giao tác...........................................................................132
6.2 Mô hình giao tác trong SQL........................................................................................133
3
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
6.3 Giao tác lồng nhau........................................................................................................136
PHỤLỤC.....................................................................................................................138
A. Cơsởdữliệu mẫu sửdụng trong giáo trình..................................................................138
B. Một sốhàmthường sửdụng..........................................................................................141
B.1 Các hàm trên dữliệu kiểu chuỗi..............................................................................141
B.2 Các hàm trên dữliệu kiểu ngày giờ.........................................................................143
B.3 Hàmchuyển đổi kiểu...............................................................................................144
TÀI LIỆU THAM KHẢO...
Ngôn ngữhỏi có cấu trúc (SQL), có tiền thân là SEQUEL, là một ngôn ngữ được IBM phát triển và sửdụng trong hệcơsởdữliệu thửnghiệm có tên là System/R vào năm 1974, chính thức được ANSI/ISO công nhận là một chuẩn ngôn ngữsửdụng trong cơsởdữliệu quan hệvào năm 1986. Cho đến hiện nay, SQL đã được sửdụng phổbiển trong các hệquản trịcơsởdữliệu thương mại và có vai trò quan trọng trong những hệthống này.
Được sự động viên của các đồng nghiệp trong KhoaCô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 và 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 mọi khía cạnh của SQL mà chỉmong muốn rằng đâysẽlà tài liệu thamkhảo tương đối
đầy đủvềcác câu lệnh thường được sửdụng trong SQL. Giáo trình được chia thành sáu chương với nội dung nhưsau:
• Chương 1 giới thiệu tổng quan vềSQL và một sốkhái cơbản liên quan đến cơsở dữliệu quan hệ.
• Chương 2 được dành đểbàn luận đến các câu lệnh thao tác dữliệu bao gồm SELECT, INSERT, UPDATEvà DELETE, trong đó tập trung nhiều vào câu lệnh SELECT.
• Chương 3 trình bày một sốcâu lệnh cơbản được sửdụng trong định nghĩa các đối tượng cơsởdữliệu.
• Một sốvấn đềliên quan đến bảo mật dữliệu trong SQL được đềcập đến trong chương 4.
• Nội dung của chương 5 liên quan đến việc sửdụng thủtục lưu trữ, hàmvà trigger trong cơsởdữliệu.
• Trong chương cuối cùng, chương 6, chúng tôi giới thiệu đến bạn đọc một sốvấn đề liên quan đến xửlý giao tác trong SQL
Ngoài sáu chương trên, phần phụlục ởcuối giáo trình đềcập đến cơsởdữliệu mẫu được sửdụng trong hầu hết các ví dụvà một sốhàm thường được sửdụng trong hệquản trịSQL Server2000 đểbạn đọc tiện trong việc tra cứu.
NỘI DUNG:
CHƯƠNG 1: .............................................................................7 TỔNG QUAN VỀSQL
1.1 SQL là ngôn ngữcơsởdữliệu quan hệ...........................................................................7
1.2 Vai trò của SQL................................................................................................................8
1.3 Tổng quan vềcơsởdữliệu quan hệ.................................................................................9
1.3.1 Mô hình dữliệu quan hệ............................................................................................9
1.3.2 Bảng (Table)..............................................................................................................9
1.3.3 Khoá của bảng.........................................................................................................10
1.3.4 Mối quan hệvà khoá ngoài......................................................................................11
1.4 Sơlược vềSQL...............................................................................................................12
1.4.1 Câu lệnh SQL...........................................................................................................12
1.4.2 Qui tắc sửdụng tên trong SQL...............................................................................14
1.4.3 Kiểu dữliệu.............................................................................................................14
1.4.4 Giá trịNULL...........................................................................................................16
1.5 Kết chương......................................................................................................................16
CHƯƠNG 2: ......................................................18 NGÔN NGỮTHAO TÁC DỮLIỆU
2.1 Truy xuất dữ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 trong câu lệnh SELECT................................................................20
2.1.3 Chỉ định điều kiện truy vấn dữliệu.........................................................................25
2.1.4 Tạo mới bảng dữliệu từkết quảcủa câu lệnh SELECT.........................................29
2.1.5 Sắp xếp kết quả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 trong SQL2..........................................................................40
2.1.8 Thống kê dữliệu với GROUP BY...........................................................................43
2.1.9 Thống kê dữliệu với COMPUTE............................................................................46
2.1.10 Truy vấn con (Subquery).......................................................................................49
2.2 Bổsung, cập nhật và xoá dữliệu....................................................................................53
2.2.1 Bổsung dữliệu........................................................................................................53
2.2.2 Cập nhật dữliệu.......................................................................................................54
2.2.3 Xoá dữliệu...............................................................................................................56
Bài tập chương 2.............................................................................................................58
CHƯƠNG 3: ..................................................69 NGÔN NGỮ ĐỊNH NGHĨA DỮLIỆU
2
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
3.1 Tạo bảng dữ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 và xoá dữliệu thông qua khung nhìn.........................................86
3.4.3 Sửa đổi khung nhìn..................................................................................................89
3.4.4 Xoá khung nhìn........................................................................................................90
Bài tập chương 3.............................................................................................................90
CHƯƠNG 4: ........................................................................96 BẢO MẬT TRONG SQL
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 trên các đối tượng cơsởdữliệu..........................97
4.2.2 Cấp phát quyền thực thi các câulệnh......................................................................99
4.3 Thu hồi quyền...............................................................................................................100
4.3.1 Thu hồi quyền trên đối tượng cơsởdữliệu:..........................................................100
4.3.2 Thu hồi quyền thực thi các câu lênh:.....................................................................103
CHƯƠNG 5: .......................................104 THỦTỤC LƯU TRỮ, HÀM VÀ TRIGGER
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 trong thủtục.....................................................................................107
5.1.5 Giá trịtrảvềcủa thamsốtrong thủtục lưu trữ......................................................108
5.1.6 Thamsốvới giá trịmặc định.................................................................................109
5.1.7 Sửa đổi thủtục.......................................................................................................110
5.2 Hàmdo người dùng định nghĩa....................................................................................111
5.2.1 Định nghĩa và sửdụng hàm...................................................................................111
5.2.2 Hàmvới giá trịtrảvềlà “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 trong trigger.........................................................119
5.3.3 ROLLBACK TRANSACTION và trigger............................................................121
5.3.4 Sửdụng trigger trong trường hợp câu lệnh INSERT, UPDATE và DELETE cótác
động đến nhiều dòng dữliệu...........................................................................................122
5.3.4.1 Sửdụng truy vấn con.....................................................................................122
5.3.4.2 Sửdụng biến con trỏ.......................................................................................125
Bài tập chương 5...........................................................................................................127
CHƯƠNG 6: ....................................................................................132 GIAO TÁC SQL
6.1 Giao tác và các tính chất của giao tác...........................................................................132
6.2 Mô hình giao tác trong SQL........................................................................................133
3
Khoa CNTT - Trường ĐHKH Huế Giáo trình SQL
6.3 Giao tác lồng nhau........................................................................................................136
PHỤLỤC.....................................................................................................................138
A. Cơsởdữliệu mẫu sửdụng trong giáo trình..................................................................138
B. Một sốhàmthường sửdụng..........................................................................................141
B.1 Các hàm trên dữliệu kiểu chuỗi..............................................................................141
B.2 Các hàm trên dữliệu kiểu ngày giờ.........................................................................143
B.3 Hàmchuyển đổi kiểu...............................................................................................144
TÀI LIỆU THAM KHẢO...
Không có nhận xét nào: