Chương 5: Ngôn ngữ vấn tin SQL

 Ngôn ngữ thủ tục  Đại số quan hệ  SQL  Ngôn ngữ phi thủ tục  Phép tính quan hệ bộ  Phép tính quan hệ miền  QBE  Sử dụng trong Access, giao diện đồ họa  Datalog  Cú pháp như Prolog

pdf62 trang | Chia sẻ: lylyngoc | Lượt xem: 1604 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 5: Ngôn ngữ vấn tin SQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1BÀI GIẢNG CSDL Chương 5: Ngôn ngữ vấn tin SQL Ngôn ngữ thao tác dữ liệu (Data Manipulate Language - DML) Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL) (Structured Query Language) 2Ngôn ngữ truy vấn dữ liệu  Ngôn ngữ thủ tục  Đại số quan hệ  SQL  Ngôn ngữ phi thủ tục  Phép tính quan hệ bộ  Phép tính quan hệ miền  QBE  Sử dụng trong Access, giao diện đồ họa  Datalog  Cú pháp như Prolog Logical Schema 3CSDL Quản lý cho thuê đĩa phim  Mô hình DL quan hệ trình bày dưới dạng đồ hoạ 4Giới thiệu  SQL do IBM đề xuất và đã phát triển  1974: SEQUEL (Structure English Query Language)  1976: SEQUEL2 – Data definition, Manipulation, Control  1983: SQL (DB2)  1986: Database Language ISO 9075-1987 (DB2.1)  1989: Added Embedded SQL  1992: SQL-92, ISO/IEC 9075-1992 (DDL-DML extend)  1999: SQL-99, Object – Oriented feature  Hiện nay là ngôn ngữ vấn tin quan hệ được sử dụng trong nhiều hệ thống CSDL thương mại 5Mô hình dữ liệu trong SQL  SQL  dựa trên phép toán tập hợp và quan hệ  Kết quả là một quan hệ.  Mô hình sử dụng  Bảng là tập các dòng dữ liệu  Mỗi một dòng trong bảng có cùng số cột và trên cùng các miền giá trị.  Cho phép các dòng giống nhau  Thứ tự các dòng lưu trữ không xác định  Ngôn ngữ SQL gồm  Ngôn ngữ định nghĩa dữ liệu – DDL  Ngôn ngữ thao tác dữ liệu - DML 6Ngôn ngữ định nghĩa dữ liệu  Dùng để định nghĩa các lược đồ trong CSDL  Gồm 3 câu lệnh  Tạo lược đồ: CREATE  Xóa lược đồ: DROP  Thay đổi cấu trúc lược đồ: ALTER  Được áp dụng để tạo  Bảng: Table  Khung nhìn: View  Miền: Domain  Tập ký tự: Character set  … 7CREATE TABLE (1)  Tạo cấu trúc bảng cơ sở trong CSDL  Tạo bảng gồm  Tên bảng: Table name  Định nghĩa cột  Tên cột: Field name  Kiểu dữ liệu: Data type  Ràng buộc trên cột: Column constraint  Giá trị mặc định: Default value  Ràng buộc trên bảng: Table constraint 8CREATE TABLE (2)  Cú pháp CREATE TABLE Tên bảng ( Tên_cột Kiểu/độ_rộng DEFAULT Giá_trị [ NULL | NOT NULL] [ PRIMARY KEY | UNIQUE | [FOREIGN KEY] REFERENCES Tên_bảng(Tên_cột) ] [, Tên cột n…], [Ràng buộc bảng] )  Chú ý  Giá trị mặc định của cột là NULL  Ràng buộc trên nhiều cột → Ràng buộc bảng 9CREATE TABLE (3)  Một số loại ràng buộc  NOT NULL: trường không được phép để trống  PRIMARY KEY: khóa chính ≈ NOT NULL và UNIQUE  FOREIGN KEY: khóa ngoại, liên kết  UNIQUE: có giá trị duy nhất  DEFAULT: giá trị sẽ nhận khi người dùng không nhập vào trường đó  CHECK: biểu thức điều kiện mà giá trị nhập vào trường  đó phải thỏa mãn  … 10 Ví dụ (1) 11 Ví dụ (2) 12 Ví dụ (3) 13 Ví dụ (4) 14 DROP TABLE 15 ALTER TABLE 16 Ngôn ngữ thao tác dữ liệu 17 Câu lệnh truy vấn dữ liệu 18 Mệnh đề SELECT 19 Mệnh đề SELECT (tiếp) 20 Mệnh đề SELECT (tiếp) 21 Mệnh đề SELECT (tiếp) 22 Mệnh đề FROM 23 Nối tự nhiên 24 INNER JOIN 25 OUTER JOIN (1) 26 OUTER JOIN (2) 27 Mệnh đề WHERE 28 Mệnh đề WHERE (tiếp) 29 Mệnh đề WHERE (tiếp) 30 Mệnh đề WHERE với giá trị Null 31 Sắp xếp các bộ dữ liệu kết quả 32 UNION (1) 33 UNION (2) 34 Ví dụ (1) 35 Ví dụ (2) 36 Hàm gộp nhóm (Aggregate functions) 37 Hàm gộp nhóm… (tiếp) 38 Hàm gộp nhóm… (tiếp) 39 Mệnh đề GROUP BY 40 Mệnh đề GROUP BY… (tiếp) 41 Mệnh đề GROUP BY… (tiếp) 42 Mệnh đề HAVING 43 Mệnh đề HAVING …(tiếp) 44 WHERE hay HAVING ? 45 Câu lệnh SELECT đầy đủ 46 Định lượng một câu SQL 47 Câu lệnh lồng nhau (lồng trong phần SELECT).1 48 Câu lệnh lồng nhau (lồng trong phần SELECT).2 49 Câu lệnh lồng nhau (lồng trong phần FROM).1 50 Câu lệnh lồng nhau (lồng trong phần FROM).2 51 Câu lệnh lồng nhau (lồng trong phần WHERE).1 52 Câu lệnh lồng nhau (lồng trong phần WHERE).2 53 Câu lệnh lồng nhau (lồng trong phần WHERE).3 54 Câu lệnh lồng nhau (lồng trong phần WHERE).4 55 Câu lệnh lồng nhau (lồng trong phần Having).1 56 Thao tác khác trên dữ liệu 57 INSERT 58 INSERT (tiếp) 59 UPDATE 60 UPDATE(tiếp) 61 DELETE 62 DELETE…(tiếp)