« Home « Kết quả tìm kiếm

THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ (Relational Database Designing


Tóm tắt Xem thử

- THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ (Relational Database Designing) Phần II – NGÔN NGỮ TRUY VẤN SQL (Structured Query Language = ngôn ngữ truy vấn có cấu trúc) Ngôn ngữ truy vấn SQL (p.1) SQL = Structured Query Language • Là ngôn ngữ dùng để truy vấn dữ liệu • Ngôn ngữ = cú pháp (cấu trúc ngữ pháp.
- Nhà phát triển (Lập trình viên ) và Hệ quản trị CSDL – Người dùng cuối (End-user) và Hệ quản trị CSDL Ngôn ngữ truy vấn SQL (p.2) SQL = Structured Query Language • Ngôn ngữ SQL là một chuẩn chung tương đối giữa các Hệ quản trị CSDL khác nhau.
- 1 trong các cú pháp của SQL : SELECT FROM WHERE … Cú pháp của SQL (p.1) Cú pháp SQL – Kiểu Dữ liệu (data type.
- Ví dụ : SELECT * FROM SINHVIEN WHERE MASV = “SV01” dữ liệu chuỗi Cú pháp của SQL (p.2) Cú pháp SQL – Kiểu Dữ liệu (t.t) (data type.
- Ví dụ : 1024 .
- Ví dụ .
- Cú pháp của SQL (p.3) Cú pháp SQL – Các toán tử số học (Arithmetic Operations) Toán tử Ý nghĩa Ví dụ Kết quả + Cộng .
- Nhân 5*2 10 / Chia 5/2 2.5 \ Chia nguyên 5\2 2 ^ Lũy thừa 5^2 25 Mod Chia dư 5 Mod 2 1 Cú pháp của SQL (p.4) Cú pháp SQL – Các toán tử so sánh (Comparative Operations) Toán tử Ý nghĩa Ví dụ Kết quả < Nhỏ hơn 3= Lớn hơn hay bằng 2.
- 5 False = Bằng nhau 2=5 False Khác nhau 2 5 True Cú pháp của SQL (p.5) Cú pháp SQL – Các toán tử luận lý (Logical Operations) Toán tử Ý nghĩa Ví dụ Kết quả Not Luật phủ định Not (5 > 2) False Not (2>5) True And Luật và (5>2) And (2>5) False (5>2) And (5>4) True Or Luật hay (5>2) Or (2>5) True (2>5) Or (4>5) False Cú pháp của SQL (p.6) Ví dụ 1.
- SELECT HO,TEN FROM SINHVIEN WHERE NOT(MASV = ‘SV01’) 2.
- SELECT MASV,HO,TEN FROM SINHVIEN WHERE (DIEMTB.
- 5) AND (DIEMTB= (DATE()-5) Ý nghĩa : Trả về tổng giá trị của các hóa đơn có ngày lập trong vòng 6 ngày gần đây.
- Cú pháp của SQL (p.14) Hàm Max Cú pháp : Max() Ý nghĩa : Trả về giá trị lớn nhất trong các giá trị tương ứng với của các bộ có trong quan hệ thỏa điều kiện WHERE.
- Ví dụ : SELECT Max(GIATRI) FROM HOADON WHERE NGAYLAP.
- (DATE()-5) Ý nghĩa : Trả về giá trị lớn nhất trong các hóa đơn có ngày lập trong vòng 6 ngày gần đây.
- Cú pháp của SQL (p.15) Một số hàm khác • Day.
- trả về chỉ số của ngày trong.
- Ví dụ : Day(#12/2/2005.
- trả về chỉ số của tháng trong.
- trả về chỉ số của năm trong.
- trả về độ dài của chuỗi Cú pháp của SQL (p.16) Một số hàm khác (t.t.
- Ví dụ : SELECT * FROM SINHVIEN WHERE LEN(TEN.
- trả về ký tự có mã ASCII tương ứng.
- trả về vị trí của chuỗi s2 trong chuỗi s1 kể từ vị trí start.
- trả về giá trị chuỗi in thường của chuỗi s • UCase(s.
- trả về giá trị chuỗi in hoa của chuỗi s Cú pháp của SQL (p.17) Một số hàm khác (t.t.
- trả về chuỗi gồm n ký tự bên trái của chuỗi s.
- trả về chuỗi gồm n ký tự bên phải của chuỗi s.
- trả về chuỗi con của chuỗi s gồm n ký tự kể từ vị trí i.
- trả về giá trị v1 nếu v1 khác Null, ngược lại trả về giá trị v2.
- Cú pháp của SQL (p.18) Một số hàm khác (t.t.
- trả về giá trị nhỏ nhất trong các giá trị tương ứng với của các bộ thỏa điều kiện WHERE có trong quan hệ.
- trả về giá trị trung bình cộng của các giá trị tương ứng với của các bộ thỏa điều kiện WHERE có trong quan hệ.
- trả về số lượng các giá trị tương ứng với của các bộ thỏa điều kiện WHERE và khác Null có trong quan hệ.
- Các loại truy vấn SQL Các Loại Truy Vấn SQL 1.
- Truy vấn chọn (Select query.
- Là các truy vấn bắt đầu bằng từ khóa SELECT • Trả về 1 giá trị hoặc 1 tập các bộ 1.
- Truy vấn định nghĩa dữ liệu (Data Definition Query.
- Là các truy vấn bắt đầu bằng từ khóa CREATE, DELETE, INSERT, ALTER.
- Truy vấn cập nhật dữ liệu (Data Modification Query) Truy vấn định nghĩa dữ liệu (p.1) Truy vấn định nghĩa dữ liệu – Tạo lược đồ quan hệ Ví dụ 1 : CREATE TABLE SINHVIEN( MASV Text(10) CONSTRAINT k1 PRIMARY KEY, HOTEN Text(30), NGAYSINH Date, MALOP Text(10), DIEMTB Double ) Ghi chú.
- Từ in nghiêng là từ khóa của SQL _ Text, Date, Double.
- các kiểu dữ liệu (của thuộc tính.
- kiểu dữ liệu Text, có độ dài 10 ký tự Truy vấn định nghĩa dữ liệu (p.2) Tạo lược đồ quan hệ (t.t.
- Truy vấn định nghĩa dữ liệu (p.3) Thêm,xóa,sửa thuộc tính (cột) Thêm thuộc tính và quan hệ Ví dụ : ALTER TABLE SINHVIEN ADD COLUMN GIOITINH TEXT(10) Sửa kiểu dữ liệu của thuộc tính : ALTER TABLE SINHVIEN ALTER COLUMN GIOITINH BOOLEAN Xóa thuộc tính Ví dụ : ALTER TABLE SINHVIEN DROP COLUMN GIOITINH Truy vấn định nghĩa dữ liệu (p.4) Xóa,thêm các ràng buộc Xóa ràng buộc khóa chính Ví dụ : ALTER TABLE SINHVIEN DROP CONSTRAINT k1 Thêm ràng buộc khóa chính Ví dụ : ALTER TABLE SINHVIEN ADD CONSTRAINT k1 PRIMARY KEY (MASV) Thêm ràng buộc miền giá trị lên thuộc tính Ví dụ : ALTER TABLE SINHVIEN ADD CONSTRAINT k3 CHECK (DIEMTB>=0 AND DIEMTB= 6.5 SELECT * FROM SINHVIEN WHERE DIEMTB.
- Ví dụ 2 : Chọn 10 sinh viên có điểm trung bình cao nhất SELECT TOP 10 FROM SINHVIEN.
- Ví dụ 3 : Chọn 10% sinh viên có điểm trung bình cao nhất SELECT TOP 10% FROM SINHVIEN.
- Ví dụ 4 : Chọn có loại bỏ các bộ trùng : chọn các mức điểm khác nhau mà các sinh viên đã đạt được SELECT DISTINCT DIEMTB FROM SINHVIEN.
- cho biết đã kết thúc câu lệnh SQL Truy vấn chọn dữ liệu (p.2) Truy vấn chọn từ nhiều bảng Ví dụ 1 : Tìm tất cả các tên học phần mà sinh viên mang mã số SV01 đã đăng ký.
- SELECT HOCPHAN.TENHP FROM SINHVIEN,DANGKY_HOCPHAN,HOCPHAN WHERE SINHVIEN.MASV = ‘SV01’ AND SINHVIEN.MASV = DANGKY_HOCPHAN.MASV AND DANGKY_HOCPHAN.MAHP = HOCPHAN.MAHP.
- Lưu ý : FROM Q1,Q2,…,Qn  FROM Q1xQ2x…xQn (Tích Descartes) Truy vấn chọn dữ liệu (p.3) Truy vấn chọn có kết Ví dụ 1 : Tìm tất cả các tên học phần mà sinh viên mang mã số SV01 đã đăng ký.
- SELECT HOCPHAN.TENHP FROM (SINHVIEN INNER JOIN DANGKY_HOCPHAN ON SINHVIEN.MASV = DANGKY_HOCPHAN.MASV) INNER JOIN HOCPHAN ON DANGKY_HOCPHAN.MAHP = HOCPHAN.MAHP WHERE MASV = ‘SV01’.
- Truy vấn chọn dữ liệu (p.4) Truy vấn chọn có sắp thứ tự kết quả trả về Ví dụ 1 : Tìm tất cả các tên sinh viên đã đăng ký học phần có mã là CSDL, sắp thứ tự kết quả trả về theo tên tăng dần, họ tăng dần và mã sinh viên giảm dần.
- SELECT MASV,HO,TEN FROM (SINHVIEN INNER JOIN DANGKY_HOCPHAN ON SINHVIEN.MASV = DANGKY_HOCPHAN.MASV WHERE MAHP = ‘CSDL’ ORDER BY TEN ASC, HO ASC, MASV DESC.
- Lưu ý : Khi thuộc tính giữa các bảng được truy vấn sau từ khóa From không trùng tên thì ta có thể ghi tường minh tên thuộc tính, mà không cần phải ghi.
- Truy vấn chọn dữ liệu (p.5) Truy vấn chọn có sắp các kết quả trả về theo nhóm (group by) Ví dụ 1 : Tìm tất cả các tên sinh viên đã đăng ký học phần ít nhất 3 học phần trở lên.
- SELECT SINHVIEN.MASV, SINHVIEN.HOTEN FROM DANGKY_HOCPHAN INNER JOIN SINHVIEN ON DANGKY_HOCPHAN.MASV=SINHVIEN.MASV GROUP BY SINHVIEN.MASV,SINHVIEN.HOTEN HAVING COUNT(DANGKY_HOCPHAN.MAHP)>=3 Truy vấn chọn dữ liệu (p.6) Truy vấn chọn lồng nhau (nested/sub query.
- Là câu lệnh truy vấn khi mà trong biểu thức điều kiện của WHERE hoặc HAVING là một câu truy vấn khác.
- Ví dụ : Lấy về thông tin của sinh viên có điểm trung bình cao nhất.
- SELECT MASV,HOTEN FROM SINHVIEN WHERE DIEMTB.
- ALL(SELECT DIEMTB FROM SINHVIEN) Truy vấn chọn dữ liệu (p.7) Các từ khóa trong truy vấn lồng nhau • ANY, SOME : Kết quả các bộ trả về của query cha so sánh với 1 trong (bất kỳ) các bộ của query con.
- ALL : Kết quả các bộ trả về của query cha so sánh với tất cả các bộ của query con.
- IN : Kết quả các bộ trả về của query cha bằng với 1 trong (bất kỳ) các bộ của query con.
- NOT IN : Kết quả các bộ trả về của query cha không bằng với bất kỳ bộ nào của query con.
- EXISTS / NOT EXISTS : Kết quả các bộ trả về của query cha được thỏa khi query con có tồn tại ít nhất 1 bộ / không tồn tại bộ nào.
- Truy vấn chọn dữ liệu (p.8) Truy vấn lồng nhau – Ví dụ Ví dụ : Lấy về thông tin của các sinh viên có đăng ký môn học CSDL.
- SELECT MASV,HOTEN FROM SINHVIEN WHERE MASV IN (SELECT MASV FROM DANGKY_HOCPHAN WHERE MAHP=‘CSDL’) Truy vấn chọn dữ liệu (p.9) Truy vấn lồng nhau – Ví dụ Ví dụ : Lấy về thông tin của các sinh viên không có đăng ký môn học CSDL.
- SELECT MASV,HOTEN FROM SINHVIEN WHERE MASV NOT IN (SELECT MASV FROM DANGKY_HOCPHAN WHERE MAHP=‘CSDL’) Truy vấn chọn dữ liệu (p.10) Truy vấn lồng nhau – Ví dụ Ví dụ : Trả về điểm trung bình cộng của các sinh viên nếu như có ít nhất 1 sinh viên có điểm trung bình.
- SELECT AVG(DIEMTB) FROM SINHVIEN WHERE EXISTS(SELECT DIEMTB FROM SINHVIEN WHERE DIEMTB>=5) Truy vấn cập nhật dữ liệu (p.1) Truy vấn cập nhật dữ liệu – Cập nhật các bộ Cú pháp : UPDATE SET.
- WHERE Truy vấn cập nhật dữ liệu (p.2) Cập nhật các bộ (t.t) Ví dụ : Cộng thêm 1 điểm cho các sinh viên có điểm trung bình