Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
lượt xem 6
download
(NB) Giáo trình Cơ sở dữ liệu cung cấp cho người học những kiến thức như: Tổng quan về cơ sở dữ liệu; Các mô hình dữ liệu; Mô hình cơ sở dữ liệu quan hệ; Ngôn ngữ thao tác dữ liệu; Ngôn ngữ truy vấn dữ liệu SQL;...Mời các bạn cùng tham khảo nội dung giáo trình phần 2 dưới đây.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
- Chƣơng 4 Ngôn ngữ thao tác dữ liệu 4.1 Đại số quan hệ Đại số quan hệ là ngôn ngữ hình thức cho mô hình quan hệ đƣợc phát triển trƣớc SQL. Đại số quan hệ còn có thể hiểu là tập các thao tác trên mô hình quan hệ, đƣợc sử dụng nhƣ là cơ sở cho việc cài đặt và tối ƣu các câu lệnh truy vấn. Một số khái niệm của đại số quan hệ đƣợc tích hợp vào các câu lệnh truy vấn của SQL, do đó việc tìm hiểu về đại số quan hệ là bệ phóng để xây dựng và thực thi các câu lệnh SQL một cách có hiệu quả. Đại số quan hệ đƣợc định nghĩa bằng công thức: α = (R, O) Trong đó: R: Là các quan hệ trong CSDL hoặc kết hợp với các phép toán quan hệ O: Là tập các phép toán quan hệ với đầu vào là một hoặc nhiều quan hệ để đƣợc đầu ra là một quan hệ mới – quan hệ kết quả. Các phép toán cơ bản - Phép toán một ngôi: Là phép toán chỉ thao tác trên một quan hệ. Đầu vào là một quan hệ và trả về kết quả là một quan hệ mới. Phép toán một ngôi bao gồm các phép toán cơ bản: Phép chọn (Selection): Đƣợc sử dụng để chọn ra một tập hợp con các bộ từ một quan hệ thoả mãn một điều kiện chọn. Kí hiệu: ϭ Cho quan hệ R(U) và E – biểu thức logic gồm (=, ^, ≠, ⌐, v) à Phép chọn ϭ trên quan hệ R theo điều kiện E, kí hiệu ϭE(R) có kết quả là một tập hợp con của R, gồm các bộ t thuộc R thoã điều kiện E. ϬE(R) = {t / t R ^ t(E) } Ví dụ: Tìm các sinh viên sinh năm 2000 của quan hệ sinh viên ta làm nhƣ sau: Ϭsinhvien=2000(SINHVIEN) Phép chiếu (Projection): Đƣợc sử dụng để chọn một vài cột hay thuộc tính từ một bảng, ký hiệu π Cho quan hệ R(U), X là tập con của U, X khác rỗng à Phép chiếu π trên quan hệ R theo tập thuộc tính X, kí hiệu πX(R) có kết quả là tập hợp các bộ t thuộc R nhƣng chỉ lấy giá trị trên X. πX(R) = { t / t R ^ t[X] } πX(R) chỉ gồm các bộ phân biệt – các bộ trùng nhau trong kết quả chỉ giữ lại một. 40
- Ví dụ: a) Liệt kê mã số và tên của tất cả sinh viên: πMSSV, hoten(SINHVIEN) b) Liệt kê mã và tên của các sinh viên sinh năm 2000: π MSSV, hoten(ϭnamsinh=2000(SINHVIEN)) Phép đặt lại tên: Là phép dùng để đặt lại tên cho thuộc tính hoặc quan hệ nào đó. Trong đó: ᵽS(A1, A2,…An)(R): Đặt lại tên quan hệ và thuộc tính ᵽS(R) : Đặt lại tên quan hệ và giữ nguyên các thuộc tính Ví dụ: ᵽS(πMSSV, hoten(SINHVIEN) ) ᵽS(ma, ten) (πMSSV, hoten(SINHVIEN) ) à MSSV, hoten đƣợc đặt lại là ma, ten. Thêm nữa, chúng ta có phép toán trên tập hợp. Các phép toán trên tập hợp: Bao gồm giao, hợp, trừ - và chỉ sử dụng đƣợc khi đó là 2 quan hệ tƣơng thích (hai quan hệ cùng bậc và các thuộc tính thƣ j có cùng miền giá trị) Phép hợp: Hợp của hai quan hệ tƣơng thích R và S gồm các bộ thuộc ít nhất một trong hai quan hệ đã cho. Ví dụ: Khi dùng phép hợp để liệt kê danh sách tên sinh viên và giáo viên: πhoten(SINHVIEN) ᴗ πhoten(GIAOVIEN) Phép giao: Giao của hai quan hệ S và R gồm các bộ thuộc về cả hai quan hệ đã cho. Ví dụ: Tìm MSSV vừa học CSDL, vừa học JAVA πmssv(ϭmonhoc=‟CSDL‟(SINHVIEN)) ᴖ πmssv(ϭmonhoc=‟JAVA‟(SINHVIEN)) Phép trừ (Hiệu): Của hai quan hệ tƣơng thích R và S, kí hiệu R \ S gồm các bộ chỉ thuộc R không thuộc S. 4.2 Các phép toán tập hợp Hai quan hệ khả hợp là 2 quan hệ có cùng bậc (Có số thuộc tính bằng nhau và thuộc tính thứ i của quan hệ này có cùng miền trị với thuộc tính thứ i của quan hệ kia. 41
- - Phép hợp (Union): Cho 2 quan hệ khả hợp r(U) và s(U). Hợp của 2 quan hệ r và s cho ta một quan hệ với tập thuộc tính U và các bộ là các bộ thuộc ít nhất 1 trong 2 quan hệ r hoặc s r s= {t | tr hoặc ts} Ví dụ cho 2 quan hệ r và s nhƣ sau: SBD HoTen K1301 Lê Lan SBD HoTen K1302 Trần Lê K1305 Thi Hồng K1304 Mai Ca K1303 Nguyễn An K1303 Nguyễn An r s= SBD HoTen K1301 Lê Lan K1302 Trần Lê K1303 Nguyễn An K1305 Thi Hồng K1304 Mai Ca VD2: r (A B C) s(A B C) a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b2 c1 r s = (A B C) a1 b1 c1 a2 b1 c2 a2 b2 c1 a2 b2 c2 - Phép giao (Intersect): Giao của 2 quan hệ khả hợp r(U) và S(U) cho ta một quan hệ mới với tập thuộc tính U, các bộ là các bộ đồng thời thuộc 2 quan hệ đó. r s= {t | tr và ts} 42
- Ví dụ có 2 quan hệ r và s nhƣ sau: SBD HoTen SBD HoTen K1301 Lê Lan K1305 Thi Hồng K1302 Trần Lê K1304 Mai Ca K1303 Nguyễn An K1303 Nguyễn An r s= SBD HoTen K1303 Nguyễn An VD2: r (A B C) s(A B C) a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b2 c1 r s = (A B C) a1 b1 c1 - Phép trừ (Substraction): Phép trừ quan hệ r(U) cho quan hệ khả hợp s(U) cho ta một quan hệ mới với tập thuộc tính U và các bộ là các bộ thuộc r nhƣng không thuộc s r- s={t | tr và ts} Ví dụ có 2 quan hệ r và s nhƣ sau: SBD HoTen SBD HoTen K1301 Lê Lan K1305 Thi Hồng K1302 Trần Lê K1304 Mai Ca K1303 Nguyễn An K1303 Nguyễn An r- s = SBD HoTen K1301 Lê Lan K1302 Trần Lê VD2: Cũng với 2 quan hệ r và s ở VD2 trên ta có r- s (A B C) a2 b 1 c2 a2 b 2 c1 43
- - Phép tích Đề các (Catersion Product): Cho 2 quan hệ r(U) và s(V). Tích đề các của r và s cho ta một quan hệ với tập thuộc tính U và V với các bộ r x s = {tq | t r và q s} Nếu r có t1 bộ, s có t2 bộ thì kết quả của phép tích đề các có bao nhiêu bộ? (t1.t2 bộ) Ví dụ có 2 quan hệ r và s nhƣ sau: SBD HoDem Ten NgaySinh K1301 Lê Lan Anh 10/10/91 K1302 Trần Lê Mai 5/9/90 rxs= SBD HoDem Ten NgaySinh K1301 Lê Lan Anh 10/10/91 K1301 Lê Lan Mai 5/9/90 K1302 Trần Lê Anh 10/10/91 K1302 Trần Lê Mai 5/9/90 VD2: r(A B C) s(D E) a1 b1 1 1 e1 a2 b2 2 2 e2 3 e3 r x s = p(A B C D E) a1 b1 1 1 e1 a1 b1 1 2 e2 a1 b1 1 3 e3 a2 b2 2 1 e1 a2 b2 2 2 e2 a2 b2 2 3 e3 - Phép chia (Division): Cho 2 quan hệ r(U) và s(V), V U, s, đặt X=U- V. Phép chia quan hệ r cho quan hệ s cho ta một quan hệ mới với tập thuộc tính X và các bộ có dạng {t[X] | t r, q s thì t[X],q r } r s={t[X] | t r, q s thì t[X],q r } Ví dụ: cho quan hệ r Quan hệ s 44
- SBD HoDem Ten K1301 Lê Lan Anh HoDem Ten K1302 Trần Phƣơng Mai Lê Lan Anh K1303 Hoàng Vân Anh Trần Lê Mai K1301 Trần Lê Mai K1302 Lê Lan Anh r s= SBD K1301 VD2: r(A B C D) s(C D) a b c d c d a b e f e f b c e f e d c d e d e f a b d e rs= (A B) a b e d 4.3 Các phép toán đặc biệt trên quan hệ - Phép chọn (SELECTION) Cho quan hệ r(U) tập thuộc tính U={A1,A2,…,An}. E là một biểu thức logic phát biểu trên U. Phép chọn trên E cho ta một quan hệ mới có tập thuộc tính U và các bộ thoả biểu thức E. Khi đó E gọi là biểu thức chọn (hay điều kiện chọn) của quan hệ r trên tập thuộc tính U. + Các phép toán trên E có thể là , =, ≥, ≤, ≠, , , . + Ký hiệu: E(r)={t | tr và E(t) là đúng} VD1: với quan hệ r: 45
- MaSV HoDem Ten NgaySinh DiaChi MaNganh K1301 Nguyễn An Anh 10/10/91 Hoa Lƣ TT K1302 Trần Lê Mai 5/9/90 Hoa Lƣ LK K1303 Lê Lan Ninh 15/3/89 Kim Sơn VS E : “DiaChi = Hoa Lƣ” phép chọn E(r) sẽ cho ta quan hệ sau: MaSV HoDem Ten NgaySinh DiaChi MaNganh K1301 Nguyễn An Anh 10/10/91 Hoa Lƣ TT K1302 Trần Lê Mai 5/9/90 Hoa Lƣ LK ? E: “NgaySinh >1/1/1990” VD2: Cho E: (A=a1) (B=b2)và quan hệ r (A B C D) thì E(r)= (A B C D) a1 b1 c1 d1 a1 b2 c2 d1 a1 b2 c2 d1 a1 b2 c2 d2 a1 b2 c2 d2 a2 b1 c2 d1 a2 b2 c1 d1 - Phép chiếu (Project) Cho quan hệ r(U), X là tập con của U, giả sử t là một bộ thuộc quan hệ r, phép chiếu t[X] cho ta một quan hệ mới với các bộ là các bộ thuộc quan hệ r và các thuộc tính là tập X.. Ký hiệu: X(r)={t[X] | t r} VD3: Với quan hệ cho trong ví dụ của phép chọn ta thực hiện phép chiếu với tập X: Mã SV, mã ngành mã SV, mã ngành (r)= MaSV MaNganh K1301 TT K1302 LK K1303 VS VD4: Cho X=AB và quan hệ r (A B C D) thì X(r)= (A B) a1 b1 c1 d1 a1 b1 46
- a1 b2 c2 d1 a1 b2 a1 b2 c2 d2 a2 b1 a2 b1 c2 d1 a2 b2 a2 b2 c1 d1 - Phép kết nối (join) Cho 2 quan hệ r(U) và s(V), giả sử AiU và BjV sao cho dom(Ai)=dom(Bj). Gọi là một trong 6 phép toán so sánh {, =, ≥, ≤, ≠}. Phép kết nối quan hệ r với thuộc tính Ai và quan hệ s với thuộc tính Bj cho ta một quan hệ mới với tập thuộc tính là U V và đƣợc các bộ đƣợc xác định bởi r s ={tq | tr, q s và t[A] q[B] là đúng} AB Nếu là phép toán bằng “=” thì phép kết nối gọi là phép kết nối bằng Nếu là phép toán bằng “=” và AiBjA gọi là phép kết nối tự nhiên, ký hiệu là *. Ta có r * s = {tq | tr, q s và t[A] = q[A], AUV} VD1: Cho quan hệ r1={SBD, Họ đệm, Tên, Ngày sinh, quê quán} SBD HoDem Ten NgaySinh QueQuan K1301 Lê Lan Anh 10/10/91 Hoa Lƣ K1302 Trần Lê Mai 5/9/90 Hoa Lƣ K1303 Nguyễn An Ninh 15/3/89 Kim Sơn Cho quan hệ r2={SBD, Đmôn1, Đmôn2, Đmôn3} SBD Dmon1 Dmon 2 Dmon 3 K1301 6 9 6 K1302 9 9 8 K1303 3 4 3 r1 * r2 = SBD HoDem Ten NgaySinh QueQuan Dmon1 Dmon 2 Dmon 3 K1301 Lê Lan Anh 10/10/91 Hoa Lƣ 6 9 6 K1302 Trần Lê Mai 5/9/90 Hoa Lƣ 9 9 8 K1303 Nguyễn An Ninh 15/3/89 Kim Sơn 3 4 3 VD2: Cho r1 (A B) r2 (B C) r3(A D) a1 b 1 b 1 c1 a2 d1 a1 b 2 b 1 c2 a2 d2 47
- a2 b 1 b 2 c1 a3 d3 a2 b 3 b 2 c2 a3 b 3 r1*r2 (A B C) r1*r3 (A B D) a1 b1 c1 a2 b1 d1 a1 b1 c2 a2 b1 d2 a1 b2 c1 a2 b3 d1 a1 b2 c2 a2 b3 d2 a2 b1 c1 a3 b3 d3 a2 b1 c2 - Phép kết nối ngoài trái (Left Outer Join) Kết nối ngoài trái của r và s bao gồm không chỉ những bộ là kết quả của việc xếp cạnh nhau của 2 bộ t,u kết nối tự nhiên đƣợc với nhau, mà còn bao gồm những bộ có phần bên trái là một bộ t không kết nối đƣợc với bộ nào trong s, phần bên phải là các giá trị null r < s ={(t,u)| (t,u)r*s hoặc ((t, null, null..) và (us:t[A]≠u[A]))} ở đây A là thuộc tính xuất hiện ở cả 2 lƣợc đồ quan hệ r và s Ví dụ: Cho 2 quan hệ NCC MaCty TenCty Dia_Chi S1 Hoàng Hồng Hà nội S2 Thái học Ninh Bình S3 Minh Hƣơng Nam định S4 Trần Anh Hà Nội S5 Mai Linh Tp HCM CUNG_UNG Ma_Cty Ma_SP So_luong S1 P1 5000 S2 P1 1000 S1 P2 2000 S2 P3 1500 S3 P3 500 S4 P5 3000 48
- NCC CUNG_UNG MaCty TenCty Dia_Chi Ma_SP So_luong S1 Hoàng Hồng Hà nội P1 5000 S1 Hoàng Hồng Hà nội P2 2000 S2 Thái học Ninh Bình P1 1000 S2 Thái học Ninh Bình P1 1000 S3 Minh Hƣơng Nam định P3 1500 S4 Trần Anh Hà Nội P5 3000 S5 Mai Linh Tp HCM Null null - Phép kết nối ngoài phải (Right Outer Join) Tƣơng tự kết nối ngoài trái của r và s bao gồm không chỉ những bộ là kết quả của việc xếp cạnh nhau của 2 bộ t,u kết nối tự nhiên đƣợc với nhau, mà còn bao gồm những bộ có phần bên phải là một bộ u không kết nối đƣợc với bộ nào trong r, phần bên trái là các giá trị null r s ={(t,u)| (t,u)r*s hoặc (( null,… null, u) và (tr:t[A]≠u[A]))} - Đặt lại tên cho quan hệ Để đạt đƣợc quan hệ kết quả, có thể phải áp dụng nhiều phép toán quan hệ liên tiếp. trong trƣờng hợp đó, chúng ta có thể viết một biểu thức đại số quan hệ mà các phép toán có thể xếp lồng với nhau. Có thể làm cho việc này trở nên đơn giản hơn bằng cách áp dụng mỗi phép toán tại một thời điểm và tạo ra các quan hệ kết quả trung gian, những quan hệ trung gian nhƣ vậy cần phải đặt tên. Ví dụ: KQTG NCC*CUNG_UNG KQ Ma_Sp=‟P2‟(KQTG) Cũng có thể đặt lại tên thuộc tính trong các quan hệ trung gian và kết quả cuối cùng, ta liệt kê tên mới của các thuộc tính trong dấu ngoặc đi kèm theo tên quan hệ kết quả Ví dụ: CUNG_UNG_P2(CTY, SOLUONG) Ma_Cty, so_luong(KQ) 4.4 Các phép toán quan hệ bổ sung Các hàm tính toán Chúng ta hay gặp những dạng câu hỏi kiểu nhƣ phòng đó có bao nhiêu nhân viên, trung bình lƣơng của các nhân viên trong một công ty là bao nhiêu…Sau đây là một số hàm thƣờng dùng SUM, AVERAGE, MAX, MIN, COUNT Các hàm gộp nhóm 49
- Sử dụng khi cần nhóm dữ liệu theo một tiêu chí nào đó, chẳng hạn tính tổng số sinh viên quê ở mỗi Huyện của Tỉnh Ninh Bình Ta định nghĩa nhƣ sau: F (r) Kết quả của phép gộp nhóm là một quan hệ. Nếu danh sách thuộc tính cơ sở để gộp nhóm là rỗng thì hàm tính toán áp dụng cho tất cả các bộ trong quan hệ và quan hệ kết quả chỉ có một bộ Ví dụ: có quan hệ NHAN_VIEN nhƣ sau: Ma_NV HO_TEN NG_SINH MA_PHONG LUONG(x100.000) 1 Nguyễn An 10/10/91 P1 150 2 Trần Cƣờng 5/9/90 P2 230 3 Lê Lan 15/3/89 P1 170 4 Trịnh Khanh 6/7/89 P4 310 5 Thu Cúc 12/10/89 P1 230 6 Xuân Giao 3/7/90 P2 180 7 Mai Lan 1/3/80 P4 220 8 Lê Chi 5/3/82 P3 310 9 Hoàng Hải 7/12/85 P4 80 10 Hoàng Minh 15/7/84 P1 250 Nếu thực hiện phép gộp nhóm MA_PHONG F COUNT Ma_NV, AVERAGE LUONG(NHANVIEN) Quan hệ kết quả sẽ là MA_PHONG COUNT_MA_NV AVERAGE_LUONG P1 4 200 P2 2 205 P3 1 310 P4 3 203,33 Nếu thực hiện phép gộp F COUNT Ma_NV, AVERAGE LUONG(NHANVIEN) Quan hệ kết quả sẽ là COUNT_MA_NV AVERAGE_LUONG 10 213 50
- Chƣơng 5 Ngôn ngữ truy vấn dữ liệu SQL Giới thiệu: Để có thể lấy đƣợc thông tin từ một cơ sở dữ liệu quan hệ, ngƣời dùng phải hiểu rõ ý nghĩa, mục đích của các thao tác trên cơ sở dữ liệu. Cùng với phép tính đó, ở chƣơng này còn trình bày một ngôn ngữ đƣợc sử dụng chủ yếu trong các hệ quản trị cơ sở dữ liệu quan hệ( ngôn ngữ SQL). Những kiến thức cơ bản về ngôn ngữ SQL giúp ngƣời học có thể diễn đạt đƣợc các câu lệnh truy vấn đối với cơ sở dữ liệu quan hệ Mục tiêu: - Hiểu cách xây dựng cơ sở dữ liệu trên Access. - Hiểu cấu trúc các câu lệnh truy vấn SQL. - Xây dựng đƣợc một số cơ sở dữ liệu trên Access. - Viết các câu lệnh truy vấn đến cơ sở dữ liệu bằng SQL. - Nghiêm túc, tỉ mỉ trong việc học và làm bài tập. Nội dung chính: 5.1 Cách tạo quan hệ bằng Access Trên tab Công cụ Cơ sở dữ liệu, trong nhóm Quan hệ, bấm Quan hệ. Hình 5.1. Tab Database Tools Nếu ta vẫn chƣa xác định đƣợc mối quan hệ nào, hộp thoại Hiện Bảng sẽ tự động xuất hiện. Nếu hộp thoại không xuất hiện, trên tab Thiết kế, trong nhóm Quan hệ, hãy bấm Hiện Bảng. Hộp thoại Hiện Bảng hiển thị tất cả bảng và truy vấn trong cơ sở dữ liệu. Để chỉ xem bảng, hãy bấm Bảng. - Chọn một hoặc nhiều bảng, rồi bấm Thêm. Sau khi bạn đã hoàn thành việc thêm bảng, hãy bấm Đóng. - Kéo một trƣờng (thƣờng là khóa chính) từ một bảng sang trƣờng chung (khóa ngoại) trong bảng khác. Để kéo nhiều trƣờng, hãy nhấn phím Ctrl, bấm vào mỗi trƣờng rồi kéo chúng. 51
- Hộp thoại Sửa Quan hệ xuất hiện. Hình 5.2. Hộp thoại Edit Relationships - Xác nhận rằng tên trƣờng đã hiện là trƣờng chung cho mối quan hệ. Nếu một tên trƣờng không đúng, hãy bấm vào tên trƣờng và chọn trƣờng thích hợp từ danh sách. - Để bắt buộc tính toàn vẹn tham chiếu cho mối quan hệ này, hãy chọn hộp Bắt buộc Tính toàn vẹn Tham chiếu. - Bấm Tạo. Access vẽ một đƣờng quan hệ giữa hai bảng. Nếu ta đã chọn hộp kiểm Bắt buộc Tính toàn vẹn Tham chiếu, đƣờng quan hệ đó sẽ xuất hiện dầy hơn ở hai đầu cuối. Ngoài ra, chỉ khi nào ta đã chọn hộp kiểm Bắt buộc Tính toàn vẹn Tham chiếu, số 1 sẽ xuất hiện trên phần dầy ở một bên của đƣờng quan hệ và ký tự vô cực (∞) sẽ xuất hiện trên phần dầy bên kia của đƣờng quan hệ. Ghi chú: +Để tạo quan hệ một đối một: Cả hai trƣờng chung (thƣờng là các trƣờng khóa chính và khóa ngoại) phải có chỉ mục duy nhất. Điều đó có nghĩa là thuộc tính Đã lập chỉ mục cho những trƣờng này nên đƣợc đặt là Có (Không Trùng nhau). Nếu cả hai trƣờng đều có một chỉ mục duy nhất, Access sẽ tạo ra mối quan hệ một đối một. + Để tạo quan hệ một đối nhiều: Trƣờng trên một phía (thƣờng là khóa chính) của mối quan hệ phải có chỉ mục duy nhất. Điều đó có nghĩa là thuộc tính Đã lập chỉ mục cho trƣờng này nên đƣơc đặt là Có (Không Trùng nhau). Trƣờng ở bên nhiều không nên có một chỉ mục duy nhất. Nó có thể có một chỉ mục nhƣng nó phải cho phép trùng nhau. Điều đó có nghĩa là thuộc tính Đã lập chỉ mục cho trƣờng này nên đƣợc đặt làKhông hoặc là Có (Đồng ý Trùng nhau). Khi một trƣờng có một chỉ mục duy nhất mà trƣờng khác không có, Access tạo ra mối quan hệ một- nhiều. 52
- Tạo mối quan hệ trong ứng dụng Access Cửa sổ Mối quan hệ không s n dùng trong ứng dụng Access. Thay vì tạo một mối quan hệ trong ứng dụng Access, bạn tạo một trƣờng tra cứu, trƣờng này lấy giá trị từ một trƣờng liên quan trong bảng khác. Ví dụ, giả sử ta có bảng Nhân viên và bạn muốn thêm tra cứu vào bảng Vùng để có thể hiển thị cho biết mỗi nhân viên làm việc trong vùng nào. Ghi chú: Trƣờng mà tra cứu của ta sẽ dùng làm nguồn giá trị phải tồn tại trƣớc khi ta có thể tạo trƣờng tra cứu. Đây là cách để bạn tạo một trƣờng tra cứu: 1. Mở bảng mà ta muốn tạo trƣờng tra cứu mới bằng cách bấm đúp vào bảng đó trong ngăn dẫn hƣớng. (Mẹo: ta có thể cần bấm vào Trang đầu > Ngăn Dẫn hƣớng để xem các bảng s n dùng). Trong ví dụ trên đây, hãy bấm vào bảng Nhân viên. 2. Bấm vào cột Tên Trƣờng ngay bên dƣới trƣờng cuối cùng trong bảng và nhập tên cho trƣờng tra cứu mới của bạn. Trong ví dụ này, hãy nhập tên trƣờng là Vùng. 3. Trong cột Kiểu Dữ liệu, bấm vào mũi tên và chọn Tra cứu. Hình 5.3. Trình hướng d n Tra cứu khởi động 53
- 4.Trên trang đầu tiên của Trình hƣớng dẫn Tra cứu, hãy chọn Tôi muốn trƣờng tra cứu lấy giá trị từ một truy vấn hoặc bảng khác. Các tùy chọn khác sẽ xuất hiện trong hộp thoại. 5. Chọn tên của bảng hoặc truy vấn sẽ cung cấp giá trị cho tra cứu của ta. Trong ví dụ này, hãy chọn ng: V ng. Hình 5.4. Hộp thoại Lookup Wizard 6. Sau khi chọn bảng, ta hãy dùng danh sách Giá trị nào ta muốn hiển thị trong tra cứu của mình để chọn trƣờng mà bạn muốn dùng làm giá trị hiển thị cho trƣờng tra cứu của mình. Theo mặc định, Access sẽ chọn trƣờng văn bản đầu tiên nó tìm thấy trong bảng đã chọn. 7.Trong ví dụ này, ta sẽ giữ nguyên trƣờng đã chọn, trƣờng Tiêu đề, làm giá trị hiển thị. 8. Nếu ta muốn, hãy dùng danh sách Bạn có muốn sắp xếp mục trong tra cứu của mình không để đặt sắp xếp. Bên dƣới mục Điều gì sẽ xảy ra khi một bản ghi trong bảng "Vùng" bị xóa bỏ, hãy đặt kiểu quan hệ mà ta muốn có giữa hai bảng và cho biết liệu ta có muốn bắt buộc tính toàn vẹn tham chiếu hay không. (Tên của bảng trong câu hỏi này khác nhau phụ thuộc vào việc ta đã chọn bảng nào trong bƣớc 5.) Trình hƣớng dẫn Tra cứu sẽ mặc định Ngăn chặn việc xóa bỏ nếu có các bản ghi tƣơng ứng trong bảng “Nhân viên”, vì đây là sự lựa chọn an toàn nhất trong hầu hết các trƣờng hợp. Trong ví dụ này, tùy chọn này có nghĩa là bạn không thể xóa bỏ một giá trị từ bảng Vùng nếu vùng đó đang đƣợc sử dụng trong các bản ghi của bảng Nhân viên. Vì vậy, nếu bản ghi nhân viên đang sử dụng một vùng, chẳng hạn nhƣ vùng "Tây" và bạn tìm cách xóa vùng "Tây" 54
- trong bảng Vùng, thì Access sẽ ngăn không cho bạn xóa bỏ nó. Trong trƣờng hợp này, ta cần phải đặt lại tất cả các bản ghi nhân viên vốn đang sử dụng giá trị đó thành một giá trị khác, trƣớc khi ta có thể xóa bỏ vùng "Tây" trong bảng Vùng. Tùy chọn cuối cùng có thể hữu ích trong ví dụ này, vì nó sẽ cho phép ta xóa vùng "Tây" trong bảng Vùng. Giá trị vùng sẽ tự động đƣợc loại bỏ khỏi các bản ghi Nhân viên đã đƣợc đặt là "Tây", để lại giá trị trống. Chọn tùy chọn thứ hai sẽ xóa bỏ tất cả các bản ghi nhân viên ra khỏi bảng Nhân viên đã đƣợc đặt vùng là “Tây”. Điều đó gọi là xóa bỏ xếp tầng và nó sẽ xóa bỏ nhiều dữ liệu hơn so với ý định của ta trong ví dụ này. Hãy cẩn thận khi chọn tùy chọn đó. 5.2 Câu lệnh truy vấn 5.2.1 Biểu thức Là sự kết hợp một cách hợp lệ giữa các thuộc tính, các toán tử và các hàm. Sau đây sẽ là các toán tử và các hàm thông dụng nhất. (Chú ý: Cách sử dụng các toán tử và các hàm này còn tùy thộc vào câu lệnh SELECT của ngôn ngữ đƣợc sử dụng). 5.2.2 Câu lệnh SQL a. Lệnh CREATE TABLE Cú pháp: CREATE TABLE Tên_bảng(Tên_cột Loại_dữ_ liệu [Not Null]),Primary Key( Tên khoá chính ),Foreign Key( Tên khoá ngoài),…); Trong đó: - Tên_ b ng: là xâu kí tự không chứa các ký tự trống và không trùng với các từ khoá - Tên _cột: là xâu kí tự bất kì không chứa kí tự trống, tên cột trong một bảng là duy nhất, thứ tự các cột không quan trọng - Loại_dữ_liệu: gồm một số loại dữ liệu sau: + integer: số nguyên từ - 2147483648 đến 2147483647 + smallinteger: số nguyên từ - 32768 đến 32767 + decimal(n, p): số thập phân với độ dài tối đa là n kể cả p chữ số phần thập phân (không tính dấu chấm thập phân). Từ khoá Number trong SQL đƣợc dùng trong dạng dữ liệu này. + Float: số dấu phẩy động + Char(n): xâu kí tự có độ dài cố định n, (n
- + Longvarchar: xâu kí tự có độ dài không cố định. Độ dài này có thể từ 4Kbs đến 32 Kbs + Date: dữ liệu dạng ngày tháng - Ví dụ: + Tạo bảng sinh viên nhƣ sau:CREATE TABLE sinhvien(Hodem Varchar(20) Not Null,Ten Varchar(15) Not Null,Nsinh Date,MaSV Varchar(5) Not Null,Que Varchar(25),Hocluc Decimal(4,2),PRIMARY KEY (MaSV)); + Tạo bảng đề tài nhƣ sau: CREATE TABLE detai(MaDT Varchar(10) Not Null,TenDT Varchar(30) Not Null,ChuNhiem Varchar(25),Kinhphi Decimal(10,2),KetQua Decimal(4,2), PRIMARY KEY (MaDT)); + Tạo bảng sinh viên đề tài nhƣ sau: CREATE TABLE sv_detai(MaSV Varchar(5) Not Null,MaDT Varchar(10) Not Null,NoiTT Varchar(30) Not Null,KM Decimal(10,2),PRIMARY KEY (MaDT, MaSV),FOREIGN KEY (MaDT) REFERENCES detai(MaDT),FOREIGN KEY (MaSV) REFERENCES sinhvien(MaSV)); b. Lệnh INSERT INTO - Cú pháp:INSERT INTO Tên_bảng VALUES(gia trị1, giá trị 2, …, giá trị n); trong đó: giá trị1, giá trị 2, …, giá trị n là những giá trị để chèn vào các cột tƣơng ứng từ cột 1 đến cột n của một bản ghi trong bảng - Chức năng:Chèn một bản ghi vào bảng - Ví dụ:Chèn vào bảng sinh viên một bản ghi nhƣ sau: INSERT INTO sinhvien VALUES(“Nguyễn Hồng”, “Sơn”, “2/12/1976”,”A420”,”Hà Nội”,9.5); c. Lệnh DELETE - Cú pháp:DELETE FROM Tên_bảng WHERE ; - Chức năng:Xoá các bản ghi trong bảng thoả mãn điều kiện xoá - Ví dụ:Xóa những sinh viên có học lực
- d. Lệnh UPDATE - Cú pháp:UPDATE Tên_bảng SET Giá_trị_mới WHERE ; - Chức năng:Sửa đổi giá trị các trƣờng của các bản ghi trong bảng - Ví dụ:Sửa học lực của sinh viên có MaSV = “B401” lên 8 UPDATE sinhvien SET HocLuc = 8 WHERE MaSV = “B401”; e. Lệnh SELECT SELECT là một lệnh hỏi dữ liệu cơ bản trong SQL. Có rất nhiều mệnh đề con tuỳ chọn trong câu lệnh SELECT, vì vậy chúng ta sẽ làm quen lần lƣợt từng bƣớc một. Cấu trúc SELECT – FROM – WHERE Cấu trúc SELECT – FROM – WHERE là cấu trúc đơn giản nhất của SQL. - Cú pháp: SELECT FROM WHERE ; Trong đó: + : Là danh sách các cột hoặc biểu thức của các cột đƣợc đƣa vào kết quả truy vấn + : Là danh sách các bảng mà từ đó các cột đƣợc lấy ra + : Là một biểu thức logic xác định các bản ghi thoả mãn điều kiện của câu lệnh. - Ví dụ 1: Hiển thị họ đệm, tên của bảng sinh viên: SELECT Hodem,Ten FROM sinhvien; - Ví dụ 2: Hiển thị họ đệm, tên, học lựccủa những sinh viên có học lực >=8 trong bảng sinh viên: SELECT Hodem, Ten, HocLuc 57
- FROM sinhvien WHERE HocLuc>=8; f. Truy vấn sử dụng các hàm MAX, MIN, AVG, SUM, COUNT * Hàm MAX - Chức năng:Cho giá trị lớn nhất trong cột - Ví dụ:Hiển thị học lực cao nhất trong danh sách sinhvien SELECT Max(HocLuc) AS DiemCaoNhat FROM sinhvien; ( AS để đặt tên cho cột Max(HocLuc)) * Hàm MIN - Chức năng:Cho giá trị nhỏ nhất trong cột - Ví dụ:Hiển thị học lực nhỏ nhất trong danh sách sinhvien SELECT Min(HocLuc) AS DiemThapNhat FROM sinhvien; * Hàm AVG - Chức năng: Cho giá trị tung bình cộng trong cột - Ví dụ: Hiển thị học lực trung bình của cột học lực trong danh sách sinhvien SELECT AVG(HocLuc) AS DiemTB FROM sinhvien; * Hàm SUM - Chức năng: Cho tổng giá trị trong cột - Ví dụ: Hiển thị tổng học lực của cột học lực trong danh sách sinhvien SELECT SUM(HocLuc) TongHL FROM sinhvien; * Hàm COUNT - Chức năng: Cho biết số phần tử ( hàng) trong cột - Ví dụ: Đếm số bản ghi (hàng) của cột học lực trong danh sách sinhvien SELECT COUNT(HocLuc) AS SoSinhVien 58
- FROM sinhvien; * Truy vấn sử dụng các phép AND, OR, IN, BETWEEN, NOT, ALL + AND: Phép và logic + OR: Phép hoặc logic + IN: Là phần tử của… + BETWEEN: Là phần tử giứa các phần tử … + NOT: Phép phủ định + ALL: Là tất cả những phần tử … - Ví dụ 1: Đƣa ra danh sách những sinh viên có điểm >= 9 và có quê = “Hà Nội” SELECT * FROM sinhvien WHERE (diem>=9) AND ( que = “Hà Nội‟); - Ví dụ 2: Đƣa ra danh sách những sinh viên có quê = “Thái Bình” hoặc “Thái Nguyên” SELECT * FROM sinhvien WHERE (que = “Thái Bình”) OR (que = “Thái Nguyên”); - Ví dụ 3: Đƣa ra danh sách những nhân viên có kết quả là 8,9,10 SELECT * FROM sv_dtai WHERE KetQua IN (8, 9, 10); - Ví dụ 4: Đƣa ra danh sách những sinh viên có kết quả nằm trong khoảng [8,10] SELECT * FROM sv_dtai WHERE KetQua BETWEEN 8 and 10; - Ví dụ 5: Đƣa ra danh sách những sinh viên có quê không phải là “Hà Nội” SELECT * FROM sinhvien 59
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Cơ sở dữ liệu - Ngô Trần Thanh Thảo
176 p | 1613 | 686
-
Giáo trình Cơ sở dữ liệu quan hệ - Phạm Đức Nhiệm
101 p | 504 | 153
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Đại học Kinh tế TP. HCM
134 p | 173 | 37
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Cao Thị Nhạn, Nguyễn Thị Thanh Bình
54 p | 240 | 29
-
Giáo trình Cơ sở dữ liệu: Phần 1 - Sở Bưu chính Viễn Thông TP Hà Nội
48 p | 212 | 25
-
Giáo trình Cơ sở dữ liệu: Phần 2 - Sở Bưu chính Viễn Thông TP Hà Nội
81 p | 127 | 21
-
Giáo trình Cơ sở dữ liệu: Phần 1 - ĐH công nghiệp Tp.HCM
41 p | 179 | 19
-
Giáo trình Cơ sở dữ liệu - Trần Thị Thúy Mai (Biên soạn)
67 p | 31 | 14
-
Giáo trình Cơ sở dữ liệu (Tập 1): Phần 2 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên)
58 p | 33 | 11
-
Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên)
126 p | 37 | 11
-
Giáo trình Cơ sở dữ liệu (Nghề: Quản trị mạng - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Cần Thơ
48 p | 14 | 10
-
Giáo trình Cơ sở dữ liệu (Nghề Tin học ứng dụng - Trình độ Cao đẳng) - CĐ GTVT Trung ương I
76 p | 35 | 8
-
Giáo trình Cơ sở dữ liệu (Nghề: Lập trình máy tính-CĐ) - CĐ Cơ Giới Ninh Bình
88 p | 62 | 8
-
Giáo trình Cơ sở dữ liệu nâng cao (Ngành: Hệ thống thông tin) - CĐ Kinh tế Kỹ thuật TP.HCM
77 p | 44 | 8
-
Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
40 p | 30 | 6
-
Giáo trình Cơ sở dữ liệu (Ngành: Công nghệ thông tin - Cao đẳng) - Trường Cao đẳng Xây dựng số 1
55 p | 12 | 5
-
Giáo trình Cơ sở dữ liệu phân bổ - CĐ Nghề Công Nghiệp Hà Nội
93 p | 47 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn