CHƯƠNG 4 CƠ SỞ DỮ LIỆU QUAN HỆ NGÔN NGỮ SQL

19 3 0
CHƯƠNG 4 CƠ SỞ DỮ LIỆU QUAN HỆ NGÔN NGỮ 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

Trang 1 1CHƯƠNG 4CƠ SỞ DỮ LIỆU QUAN HỆNGƠN NGỮ SQL2NỘI DUNGGiới thiệu ngơn ngữ con dữ liệu SQL Ngôn ngữ định nghĩa dữ liệuNgôn ngữ thao tác dữ liệuCập nhật dữ liệuTruy vấn dữ liệu Tìm ki

NỘI DUNG Giới thiệu ngôn ngữ liệu SQL CHƯƠNG Ngôn ngữ định nghĩa liệu CƠ SỞ DỮ LIỆU QUAN HỆ Ngôn ngữ thao tác liệu NGÔN NGỮ SQL Cập nhật liệu Truy vấn liệu (Tìm kiếm liệu) Chỉ mục (Index) Khung nhìn (View) Bảo mật an toàn liệu SQL nhúng NGÔN NGỮ CON DỮ LIỆU SQL NGÔN NGỮ CON DỮ LIỆU SQL Đặc điểm: SQL (Structure English Query Language) Là ngơn ngữ có cấu trúc, phi thủ tục Tên gọi cũ SEQUEL Vừa đóng vai trị ngôn ngữ cá thể thao tác độc lập cho người sử dùng cuối, đồng thời nhúng ngơn ngữ lập trình Được ANSI ISO thừa nhận ngôn ngữ chuẩn liệu; phương tiện giao tiếp nhiều hệ thống thông tin quản lý Chức SQL Ra đời năm 1976 phòng thí nghiệm Chamberlin; Hỏi liệu (Truy vấn) SQL-86 hay SQL1(ANSI 1986) → SQL-92 hay SQL2 → SQL−99 hay SQL3 Định nghĩa liệu Cập nhật liệu Bảo mật an tồn liệu NGƠN NGỮ CON DỮ LIỆU SQL SQL Data Definition Language Quan hệ (Relation) Bảng (Table) Thuộc tính (Attribute) Cột (Column) DDL thành phần SQL, chứa câu lệnh tạo/xoá bảng, định nghĩa indexes, thiết lập ràng buộc quan hệ Bộ (Tuple) Hàng (Row) Các câu lệnh DDL quan trọng: Thuật ngữ Không quan trọng thứ tự cột thứ tự hàng ! CREATE TABLE – tạo bảng ALTER TABLE – thay đổi cấu trúc bảng DROP TABLE – xoá bảng CREATE INDEX – lập mục (index) DROP INDEX – xố mục NGƠN NGỮ ĐỊNH NGHĨA DỮ LIỆU TRONG SQL NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU TRONG SQL Tạo bảng Kiểu liệu CREATE TABLE < tên bảng> CHAR (n), VARCHAR(n) ( [NOT NULL] [DEFAULT , BOOLEAN [NOT NULL] [DEFAULT , INT INTEGER,… … FLOAT hay REAL hay DECIMAL(n,d) [NOT NULL] [DEFAULT DATE, TIME [, PRIMARY KEY ()] [, UNIQUE ()] [, FOREIGN KEY () REFERENCES () [, FOREIGN KEY…… ]] ); NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU CREATE TABLE SV Đặt tên ràng buộc: bổ sung thêm thành phần sau vào câu lệnh tạo bảng, đặt trước phần khai báo ràng buộc: CONSTRAINT Ví dụ Xét CSDL gồm bảng: (MASV CHAR(7) , HOTEN VARCHAR(30) NOT NULL, GT CHAR(3), NS DATE, QUE VARCHAR(20), LOP CHAR(10), PRIMARY KEY (MASV)); SV (MASV, HOTEN, GT, NS, QUE, LOP) HP (MAHP, TENHP, SOTC) KQHT (MASV, MAHP, DIEM) NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 10 NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU CREATE TABLE HP CREATE TABLE KQHT (MAHP CHAR(5), (MASV CHAR(7), TENHP VARCHAR(20) NOT NULL, MAHP CHAR(5), SOTC SMALLINT DIEM DECIMAL(4,1) DEFAULT 0, NOT NULL, PRIMARY KEY (MAHP), PRIMARY KEY (MASV, MAHP), CONSTRAINT TEN_DUY_NHAT FOREIGN KEY (MASV) REFERENCES SV(MASV), FOREIGN KEY (MAHP) REFERENCES HP(MAHP)); UNIQUE (TENHP)); 11 12 NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU Thay đổi cấu trúc bảng Quy định DEFAULT cho cột Thêm cột cho bảng Thêm quy định DEFAULT ALTER TABLE ALTER TABLE ADD COLUMN [NOT NULL] [DEFFAULT ]; ALTER SET DEFAULT ; Xóa quy định DEFAULT Xóa cột bảng ALTER TABLE ALTER TABLE DROP COLUMN [CASCADE]; ALTER DROP DEFAULT; Thay đổi kiểu liệu cột bảng ALTER TABLE CHANGE COLUMN ; 13 NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU 14 NGÔN NGỮ THAO TÁC DỮ LIỆU Thay đổi ràng buộc bảng Xóa ràng buộc SQL Data Manipulation Language ALTER TABLE Là cú phép để bổ sung, xoá, sửa chữa hàng bảng tìm kiếm liệu DROP CONSTRAINT; Thêm ràng buộc Các câu lệnh DML ALTER TABLE ADD ( CONSTRAINT PRIMARY KEY…| UNIQUE…| FOREIGN KEY… ); SELECT trích rút liệu từ bảng csdl UPDATE sửa chữa liệu bảng DELETE xoá liệu bảng Xóa bảng INSERT INTO chèn thêm liệu vào bảng DROP < tên bảng> [CASCADE]; 15 16 CẬP NHẬT DỮ LIỆU CHO BẢNG CẬP NHẬT DỮ LIỆU CHO BẢNG Xóa hàng bảng Bổ sung thêm hàng cho bảng DELETE FROM INSERT INTO [()] [WHERE ]; VALUES () Thay đổi giá trị cho cột bảng |; UPDATE Ví dụ SET INSERT INTO HP VALUES (‘M4’, ‘Toán rời rạc’,4); = [, = ,…] Hoặc [WHERE ]; INSERT INTO HP (TENHP, MAHP, SOTC) VALUES (‘Toán rời rạc’, ‘M4’, 4); INSERT INTO SV(MASV, HOTEN) VALUES (‘20091005’,’Hoa’); 17 TÌM KIẾM DỮ LIỆU 18 TÌM KIẾM DỮ LIỆU SELECT [DISTINCT] Biểu thức FROM Một biểu thức tạo nên từ hằng, tên cột hàm, liên kết với phép tính số học ( +, -, *, / ) [WHERE [NOT] ] • Danh sách chiếu: [GROUP BY Danh sách tên cột (hoặc biểu thức) cần có bảng kết Khi danh sách chiếu dấu *, có nghĩa danh sách chiếu toàn cột tất bảng (hoặc view) sau FROM [HAVING [NOT] ]] [ORDER BY < danh sách tên cột| số thứ tự cột danh sách chiếu|biểu thức> [ASC|DESC]]; 19 20 TÌM KIẾM DỮ LIỆU TÌM KIẾM DỮ LIỆU Biểu thức điều kiện Tìm kiếm đơn giản (a) biểu thức logic tạo nên từ hằng, tên cột hàm, nối với phép toán số học so sánh (>, >=, = 5; SELECT SV.MASV, HOTEN Cách viết FROM SV, KQHT SELECT SV.MASV, HOTEN WHERE SV.MASV=KQHT.MASV AND MAHP =’m1’ FROM (SV NATURAL JOIN KQHT) WHERE MAHP = ’m1’ AND DIEM >= 5; AND DIEM >= 5; 31 32 TÌM KIẾM DỮ LIỆU − Phép kết nối TÌM KIẾM DỮ LIỆU − Phép kết nối INNER JOIN R LEFT OUTER JOIN S R INNER JOIN S: Kết bao gồm hàng tạo từ hàng R hàng S mà kết nối với (JOIN mặc định INNER JOIN) OUTER JOIN cho kết gồm: hàng tạo từ hàng R hàng S mà kết nối với nhau, hàng R cột lại mang giá trị NULL khơng có hàng S kết nối với hàng Mặc định OUTER JOIN LEFT OUTER JOIN LEFT OUTER JOIN, RIGHT OUTER JOIN, R RIGHT OUTER JOIN S FULL OUTER JOIN R FULL OUTER JOIN S 33 TÌM KIẾM DỮ LIỆU − Phép kết nối 34 TÌM KIẾM DỮ LIỆU − Phép kết nối Ví dụ 9: Cho biết mã số, tên sinh viên, mã học phần điểm thi tất sinh viên Với sinh viên chưa có điểm thi học phần giá trị cột MAHP DIEM NULL SELECT SV.MASV, HOTEN, MAHP, DIEM FROM (SV OUTER JOIN KQHT ON SV.MASV = KQHT.MASV); 35 SV [LEFT] OUTER JOIN KQHT MASV HOTEN NS MASV MAHP DIEM 20091000 Nguyễn Minh Đức 1/1/1985 20091000 M1 20091001 Trần Mai Ly 2/2/1986 20091000 M2 20091002 Lê Phương Nam 3/3/1985 20091001 M2 MASV HOTEN MAHP DIEM 20091000 Nguyễn Minh Đức M1 20091000 Nguyễn Minh Đức M2 20091001 Trần Mai Ly M2 20091002 Lê Phương Nam NULL NULL Kết quả kết nối ngồ ngồi 36 TÌM KIẾM DỮ LIỆU − Phép kết nối TÌM KIẾM DỮ LIỆU − Phép kết nối • Ví dụ 10 Cho biết mã số, họ tên điểm thi sinh viên thi học phần ‘Cơ sở liệu’ đạt điểm >=5 SELECT SV.MASV, HOTEN, DIEM SELECT SV.MASV, HOTEN, DIEM FROM ((SV JOIN KQHT ON SV.MASV = KQHT.MASV) JOIN HP ON KQHT.MAHP = HP.MAHP) ) FROM SV, KQHT, HP WHERE TENHP = ’Cơ sở liệu’ AND DIEM >= 5; WHERE SV.MASV = KQHT.MASV AND KQHT.MAHP = HP.MAHP AND TENHP =’Cơ sở liệu’ AND DIEM>=5; Hoặc SELECT SV.MASV, HOTEN, DIEM FROM ((SV NATURAL JOIN KQHT) NATURAL JOIN HP) WHERE TENHP = ’Cơ sở liệu’ AND DIEM >= 5; 37 LUYỆN TẬP − Phép kết nối 38 TÌM KIẾM DỮ LIỆU − Truy vấn Tìm kiếm với biểu thức điều kiện dạng (b4) Ví dụ 11: Cho biết mã số sinh viên có điểm = ALL (SELECT DIEM false, ngược lại FROM KQHT θ phép toán so sánh: =, (! =) >, >=, T.DIEM); (SELECT * FROM KQHT WHERE MASV = SV MASV AND DIEM =8.0 (giả thiết: thang điểm 10) 14) Cho biết mã số số điểm

Ngày đăng: 25/01/2024, 18:22

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

Tài liệu liên quan