Bài giảng Cơ sở dữ liệu - Chương 1: Ngôn ngữ truy vấn có cấu trúc

Thay đổi giá trị một (số) thuộc tính của một (số) bộ thỏa mãn điều kiện được xác định trong mệnh đề WHERE • Thay đổi tất cả các bộ trong quan hệ khi không có mệnh đề WHERE trong câu lệnh Lệnh UPDATE • Tăng lương cho mọi nhân viên của phòng Nghiên cứu lên 10% lương hiện tại Ví dụ 23 UPDATEEMPLOYEE SET ESalary = ESalary *1.1 WHERE DNum IN (SELECT DNumber FROM DEPARTMENT WHERE DName = N’Phòng Nghiên cứu’)

pdf8 trang | Chia sẻ: huongthu9 | Lượt xem: 438 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 1: Ngôn ngữ truy vấn có cấu trúc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
9/3/2018 1 NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC CƠ SỞ DỮ LIỆU Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU • Tập hợp các bảng dữ liệu phục vụ cho một ứng dụng Định nghĩa lược đồ CSDL trong SQL • Bảng dữ liệu • Ràng buộc toàn vẹn • Khung nhìn • Thành phần của lược đồ CSDL Câu lệnh tạo lược đồ CSDL CREATE SCHEMA COMPANY AUTHORIZATION SA Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU • Quan hệ và các bộ dữ liệu của nó được tạo và lưu trữ vật lý trong tệp dữ liệu của DBMS Bảng dữ liệu trong SQL • Các thuộc tính • Miền giá trị của từng thuộc tính • Các ràng buộc toàn vẹn trên bảng • Thành phần của bảng dữ liệu 9/3/2018 2 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU • Cho phép có các bộ trùng nhau Bảng dữ liệu trong SQL Câu lệnh tạo bảng dữ liệu trong SQL CREATE TABLE tên_bảng () Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU • Kiểu dữ liệu số • Kiểu dữ liệu chuỗi ký tự • Kiểu dữ liệu chuỗi bit • Kiểu dữ liệu Boolean • Kiểu dữ liệu Datetime Các kiểu dữ liệu trong SQL Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU DỮ LIỆU Ví dụ về lệnh tạo bảng dữ liệu 9/3/2018 3 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Yêu cầu một thuộc tính không được phép có giá trị là null • Một thuộc tính là thành phần của khóa chính thì mặc nhiên là not null Ràng buộc NOT NULL Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Giá trị được sử dụng trong trường hợp bộ mới thêm vào nhận giá trị null tại thuộc tính được khai báo là mặc định Giá trị mặc định Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Giá trị của một thuộc tính phải nằm trong miền giá trị của thuộc tính đó Ràng buộc miền giá trị Ví dụ 9/3/2018 4 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Hai bộ dữ liệu trong quan hệ không thể có giá trị bằng nhau tại (các) thuộc tính của khóa • Quan hệ có thể có nhiều khóa, gồm một khóa chính và nhiều khóa phụ (duy nhất) Ràng buộc khóa trong SQL Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Tên tường minh của ràng buộc toàn vẹn rất hữu ích khi có nhu cầu muốn chỉnh sửa hoặc xóa các ràng buộc hiện hữu Đặt tên cho ràng buộc toàn vẹn trong SQL Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Ràng buộc liên quan đến các giá trị thành phần của từng bộ dữ liệu được xét Ràng buộc toàn vẹn trên bộ trong SQL Ví dụ 9/3/2018 5 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU • Một giá trị muốn xuất hiện trong khung cảnh này cần phải xuất hiện trong một khung cảnh khác • Thuộc tính tham chiếu đi là khóa ngoại, thuộc tính được tham chiếu tới phải là khóa (chính hoặc phụ) Ràng buộc tham chiếu trong SQL Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LOẠI RÀNG BUỘC TOÀN VẸN DỮ LIỆU Dò tìm vi phạm ràng buộc tham chiếu • Cơ chế mặc định • Cơ chế thay thế • Cơ chế Set Null Xử lý vi phạm ràng buộc tham chiếu RBTV Thêm mới Chỉnh sửa Xóa bỏ Khóa chính - + + Khóa ngoại + + - Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC CÂU LỆNH THAY ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU • Xóa toàn bộ dữ liệu trong bảng cùng với lược đồ của bảng đó • Việc xóa bảng chỉ thành công khi không nó không được tham chiếu tới bởi bất kỳ bảng nào khác Lệnh xóa bảng dữ liệu trong SQL Ví dụ 9/3/2018 6 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC CÂU LỆNH THAY ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU • Thay đổi cấu trúc bảng dữ liệu bằng cách thêm mới, sửa, xóa thuộc tính, ràng buộc toàn vẹn, Lệnh sửa cấu trúc bảng dữ liệu trong SQL Ví dụ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Thêm mới một (số) bộ dữ liệu vào quan hệ • Bộ dữ liệu với các giá trị được liệt kê cùng trình tự với các thuộc tính tương ứng được xác định trong câu lệnh tạo quan hệ. • Bắt buộc phải cung cấp giá trị đối với các thuộc tính được khai báo là khác NULL và không có giá trị mặc định Lệnh INSERT Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Thêm mới một bộ dữ liệu vào quan hệ EMPLOYEE Ví dụ 21 INSERT INTO EMPLOYEE VALUES (‘30121050004’,N’Mai Duy An’, 30000, ‘F’, ’17/02/1968’, ‘30121050037’, 1, ‘15/06/2010’) INSERT INTO EMPLOYEE (ESSN, EName, DNum) VALUES (‘30121050004’, N‘Mai Duy An’,1) 9/3/2018 7 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Xóa một (số) bộ thỏa mãn điều kiện được xác định trong mệnh đề WHERE ra khỏi quan hệ • Xóa tất cả các bộ ra khỏi quan hệ khi không có mệnh đề WHERE trong câu lệnh Lệnh DELETE • Câu lệnh sau đây xóa các thân nhân của nhân viên có mã số ‘30121050180’ Ví dụ 21 DELETEFROM DEPENDENT WHERE ESSN = ‘30121050180’ Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Xóa một (số) bộ thỏa mãn điều kiện được xác định trong mệnh đề WHERE ra khỏi quan hệ • Xóa tất cả các bộ ra khỏi quan hệ khi không có mệnh đề WHERE trong câu lệnh Lệnh DELETE • Câu lệnh sau đây xóa tất cả thân nhân của các nhân viên trong phòng có mã số 1 Ví dụ 22 DELETEFROM DEPENDENT WHERE ESSN IN (SELECT ESSN FROM EMPLOYEE WHERE DNum=1) Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Thay đổi giá trị một (số) thuộc tính của một (số) bộ thỏa mãn điều kiện được xác định trong mệnh đề WHERE • Thay đổi tất cả các bộ trong quan hệ khi không có mệnh đề WHERE trong câu lệnh Lệnh UPDATE • Thay đổi địa điểm và đơn vị quản lý của dự án có mã số là 10 với các giá trị mới lần lượt là ‘Hà Nội’ và 5 Ví dụ 23 UPDATE PROJECT SET PLocation = N’Hà Nội’, DNum=5 WHERE PNumber = 10 9/3/2018 8 Ths. Trịnh Hoàng Nam, namth@buh.edu.vn C ơ s ở d ữ l i ệ u – T ổ n g q u a n h ệ t h ố n g c ơ s ở d ữ l i ệ u CÁC LỆNH CẬP NHẬT TRONG SQL • Thay đổi giá trị một (số) thuộc tính của một (số) bộ thỏa mãn điều kiện được xác định trong mệnh đề WHERE • Thay đổi tất cả các bộ trong quan hệ khi không có mệnh đề WHERE trong câu lệnh Lệnh UPDATE • Tăng lương cho mọi nhân viên của phòng Nghiên cứu lên 10% lương hiện tại Ví dụ 23 UPDATEEMPLOYEE SET ESalary = ESalary *1.1 WHERE DNum IN (SELECT DNumber FROM DEPARTMENT WHERE DName = N’Phòng Nghiên cứu’)

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_co_so_du_lieu_chuong_1_ngon_ngu_truy_van_co_cau_tr.pdf