Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
2,29 MB
Nội dung
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ĐẠI HỌC CẦN THƠ Giáo trình: THỰC HÀNH HỆ CƠ SỞ DỮ LIỆU Biên soạn: Trần Ngân Bình – Bùi Đăng Hà Phương Tháng 9/2012 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT PHẦN TỔNG QUAN I MỤC ĐÍCH YÊU CẦU Giáo trình Thực hành Hệ Cơ Sở Dữ Liệu (CSDL) phần môn Hệ CSDL nhằm giúp sinh viên nắm bắt nội dung lý thuyết ngôn ngữ SQL, thực cách thành thạo câu lệnh truy vấn sở liệu Các hệ quản trị CSDL sử dụng phổ biến hỗ trợ ngôn ngữ SQL theo chuẩn SQL-92 Ngoài tính mà chuẩn nêu, phần mềm hệ quản trị CSDL có tính riêng thêm vào Phần mềm chọn để thực hành hệ quản trị CSDL SQL Server 2005 Trong 30 tiết (6 buổi) thực hành, sinh viên rèn luyện dạng câu hỏi truy vấn thông qua tập cụ thể sở liệu cụ thể Sau học xong môn này, sinh viên phải: Nhận biết thông thương bảng sở liệu Để từ biết cách kết nối bảng để truy xuất liệu theo yêu cầu Hiểu câu hỏi truy vấn để từ chọn lựa dạng câu hỏi truy vấn phù hợp Vận dụng dạng câu truy vấn khác để trả lời câu hỏi như: câu truy vấn lồng nhau, câu truy vấn cần gom nhóm dòng, câu truy vấn có sử dụng hàm hàm xử lý chuỗi, hàm xử lý ngày tháng, hàm chuyển kiểu, II NỘI DUNG CỐT LÕI Tài liệu hướng dẫn gồm phần: Phần 1: giới thiệu tổng quan môn học, trình bày cụ thể kiến thức, kỹ mà sinh viên cần đạt sau học môn Ngoài ra, trình bày sơ lược nội dung tài liệu, kiến thức tiên phương pháp học tập Phần 2: giới thiệu nét hệ quản trị SQL Server 2005 Ngoài ra, phần này, giáo trình trình bày cách chi tiết thao tác cần tiến hành để thực hành Phần 3: gồm thực hành cụ thể Mỗi có bố cục gồm phần sau: Mục tiêu: nêu rõ mục tiêu rèn luyện Lý thuyết: Nhắc lại cách ngắn gọn câu lệnh SELECT cần dùng Bài tập có hướng dẫn: Gồm số câu hỏi truy vấn CSDL cho trước Mỗi câu hỏi phân tích để đến câu lệnh Select Những điểm cần lưu ý nhấn mạnh Ngoài ra, số câu hỏi nhỏ đưa tình câu hỏi giúp sinh viên hiểu rõ vấn đề Bài tập tự làm: gồm số câu hỏi truy vấn CSDL khác với phần tập có hướng dẫn Trong đầu tiên, tập trung rèn luyện dạng câu hỏi truy vấn Bài thực hành thứ tập tổng hợp gồm tất dạng câu hỏi học trước, sinh viên tự thực mà phần hướng dẫn Mỗi buổi thực hành tương ứng với tài liệu hướng dẫn III KIẾN THỨC TIÊN QUYẾT Là phần môn học Hệ CSDL, phần thực hành đưa vào giảng dạy cho sinh viên với yêu cầu sinh viên học xong chương SQL môn Hệ CSDL ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL IV Khoa CNTT & TT - ĐHCT PHƯƠNG PHÁP HỌC TẬP Với mục tiêu nâng cao khả tự học tập tự nghiên cứu sinh viên, người soạn cố gắng lồng ghép vào nội dung ví dụ minh họa đơn giản, cụ thể; đồng thời bố trí bố cục với mong muốn tạo dễ hiểu cho sinh viên người đọc Để học tốt môn học này, sinh viên cần phải: Trước buổi thực hành, sinh viên cần dành khoảng tự học để: o Xem lại phần lý thuyết câu lệnh thực hành (phần + tài liệu tham khảo cần thiết) o Tự làm tập có hướng dẫn nhà Sinh viên nên tự suy nghĩ tìm đáp án cho câu hỏi tập trước nhìn vào đáp án giáo viên cung cấp Trong buổi thực hành, sinh viên thực phần tập tự làm Nếu không kịp, sinh viên tự xếp thời gian để hoàn tất tập buổi trước trước tiến hành thực hành Khi thực thi câu lệnh, hệ thống báo lỗi, SV cần phải đọc thông báo lỗi, tìm hiểu ý nghĩa cách giải lỗi Một số lỗi thông dụng giải thích trang 13 ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT MỤC LỤC I MỤC ĐÍCH YÊU CẦU II NỘI DUNG CỐT LÕI III KIẾN THỨC TIÊN QUYẾT IV PHƯƠNG PHÁP HỌC TẬP PHẦN CƠ BẢN VỀ SQL Server 2005 I GIỚI THIỆU SƠ LƯỢC VỀ SQL SERVER 2005 Kết nối vào Server: Cách thức lưu trữ Cơ sở liệu SQL Server: Chọn hay mở CSDL làm việc: Các kiểu liệu thông dụng SQL: Quan sát CSDL Object Browser: Soạn thảo thực thi câu truy vấn: Một số hàm thông dụng SQL Server: 10 II CÁC LỖI THƯỜNG GẶP TRONG SQL 13 Tên cột không tìm thấy bảng: 13 Tên bảng không tìm thấy: 13 Lỗi cú pháp: 13 Tên cột có mặt nhiều bảng 13 Phép so sánh không tương thích kiểu 13 III HƯỚNG DẪN THỰC HÀNH 14 Mở Query Analyzer đăng nhập vào SQL Server máy chủ 14 Quan sát CSDL: 14 Mở CSDL muốn truy vấn: 14 Soạn thảo thực câu truy vấn 14 Quan sát kết kiểm chứng 14 Lưu lại câu truy vấn vào tập tin *.sql 14 IV CÁCH LƯU XÓA BẢNG TẠM: 14 V SAO LƯU/ PHỤC HỒI CSDL: 14 Sử dụng lệnh: 14 Sử dụng giao diện chương trình: 15 PHẦN BÀI TẬP THỰC HÀNH 20 BÀI 1: I MỤC ĐÍCH 21 II LÝ THUYẾT 21 III BÀI TẬP CÓ HƯỚNG DẪN: 21 IV BÀI TẬP TỰ LÀM: 25 BÀI 2: I MỤC ĐÍCH 27 II LÝ THUYẾT 27 III BÀI TẬP CÓ HƯỚNG DẪN: 28 IV BÀI TẬP TỰ LÀM: 32 BÀI 3: I MỤC ĐÍCH: 34 II LÝ THUYẾT: 34 III BÀI TẬP CÓ HƯỚNG DẪN 34 IV BÀI TẬP TỰ LÀM 37 ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT BÀI 4: I MỤC ĐÍCH: 38 II BÀI TẬP CÓ HƯỚNG DẪN: 38 III BÀI TẬP TỰ LÀM 41 BÀI 5: I MỤC ĐÍCH: 43 II LÝ THUYẾT: 43 III BÀI TẬP CÓ HƯỚNG DẪN: 44 IV BÀI TẬP TỰ LÀM: 46 BÀI 6: I MỤC ĐÍCH: 47 II CSDL: QUẢN Lý DỰ Án (CSDL6) 47 III CÂU HỎI: 47 TÀI LIỆU THAM KHẢO [1] Giáo Trình CSQL - Đinh Khắc Quyền Khoa Công Nghệ Thông Tin, 2005 [2] SQL Tutorial: http://www.w3schools.com/sql/ [3] SQL Server 2000 Book Online ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT PHẦN CƠ BẢN VỀ SQL SERVER 2005 I GIỚI THIỆU SƠ LƯỢC VỀ SQL SERVER 2005 Kết nối vào Server: Chọn Star/All Programs/Microsoft SQL Server 2005/ SQL Server Management Studio Express Cửa sổ đăng nhập xuất hình 1: Đăng nhập tài khoản Windows Sau chọn Connect, cửa sổ SQL Server Management Studio xuất hình 2: Để soạn thảo thực thi câu lệnh, click vào New Query hình ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Chọn CSDL Thực thi câu lệnh Khoa CNTT & TT - ĐHCT Khu vực soạn thảo Kết sau thực thi câu lệnh Cách thức lưu trữ Cơ sở liệu SQL Server: Một CSDL SQL Server bao gồm: - nhiều data file: file liệu (*.mdf ) không nhiều file liệu phụ (*.ndf) - nhiều log file (*.ldf): nhật ký giao tác CSDL SQL Server quản lý lúc nhiều CSDL, chia làm hai loại: - CSDL hệ thống (system databases): dùng để lưu trữ thông tin quản lý toàn hệ thống SQL Server Có bốn CSDL hệ thống, là: master, model, tempdb, msdb - CSDL người dùng (user databases): CSDL người dùng tạo Có CSDL mẫu thông dụng SQL Server là: Northwind pubs Chọn hay mở CSDL làm việc: Vì hệ thống quản lý nhiều CSDL nên làm việc với SQL Server, điều phải chọn CSDL để làm việc Có cách: Cách 1: Nhấp chọn CSDL từ danh sách xổ xuống combo box công cụ (xem hình 2) Cách 2: Thực thi lệnh: USE Các kiểu liệu thông dụng SQL: Tên kiểu Giải thích Biểu diễn Bit Số nguyên 0, Int Số nguyên từ -231 (-2.147.483.648) đến 231 (2.147.483.647) -1000, 23455 SmallInt Số nguyên từ -215 ( - 32.768) đến 215 - 32124, -764 ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT (32.767) TinyInt Số nguyên từ đến 255 31, 45 Decimal/ Numeric Các số thập phân từ -1038 - đến 1038 - 1894.1204 Money Tiền tệ từ -263 đến 263 - SmallMoney Tiền tệ từ -214.748,3648 đến 214.748,3647 Float Số thực từ -1,79 E +308 đến 1,79 E +308 Real Số thực từ -3.40 E + 38 đến 3.40E + 38 234, -87.65 $12, $542023.14 -$45.56 -34.54 101.5E5 0.5E-2 245.21E-10 DateTime Ngày từ 1/1/1753 đến 31/10/9999 SmallDateTime Ngày từ 1/1/1900 đến 06/6/2079 Char Ký tự có độ dài ô nhớ cố định tối đa 8000 kí tự (không hỗ trợ Unicode) nchar Ký tự có độ dài ô nhớ cố định tối đa 4000 kí tự (hỗ trợ Unicode) varchar Ký tự có độ dài ô nhớ không cố định tối đa 8000 kí tự (không hỗ trợ Unicode) nvarchar Ký tự có độ dài ô nhớ không cố định tối đa 4000 kí tự (hỗ trợ Unicode) 'April 15, 1998' , '15 April, 1998' , '980415' , '04/15/98' DateTime '50% complete.' 'O''Brien' "O'Brien" ‘Nguyễn Văn Minh’ ‘Lương Tâm’ '50% complete.' 'O''Brien' "O'Brien" ‘Nguyễn Văn Minh’ ‘Lương Tâm’ Quan sát CSDL Object Browser: a Quan sát lược đồ CSDL: Để truy vấn CSDL đó, điều quan trọng ta phải biết lược đồ CSDL Ta quan sát lược đồ CSDL mà SQL Server quản lý cách nhấp vào View -> Object Explorer Khi có cửa sổ dọc Object Explorer xuất bên trái hình cho phép ta quan sát cấu trúc bảng CSDL sau: ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Các CSDL Các bảng Các cột Kiểu liệu Hình 4: Cửa sổ quan sát CSDL b Mở bảng liệu: Để truy vấn xác, việc quan sát lược đồ CSDL, ta phải quan sát liệu bảng Ta xem bảng Object Explorer hình Lấy 1000 dòng đầu Lấy 200 dòng đầu ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Soạn thảo thực thi câu truy vấn: Nếu chưa kết nối với SQL Server ta thực truy vấn Để kết nối, ta vào menu File -> Connect Object Explorer Khi cửa sổ kết nối xuất hình trang Sau kết nối xuất cửa sổ cho phép soạn thảo câu truy vấn hình Chọn CSDL Thực thi câu lệnh Kết Trong trình thao tác, mở thêm nhiều tập tin truy vấn cách vào menu File -> New click vào biểu tượng công cụ a Kiểm tra cú pháp câu lệnh: Sau gõ câu lệnh vào phần nhập câu lệnh, kiểm tra cú pháp câu lệnh cách nhấp vào biểu tượng công cụ (xem hình 5) nhấn Ctrl + F5 Nếu câu lệnh lỗi cú pháp cửa sổ nhỏ bên phải hiển thị câu: The command(s) completed successfully Nếu câu lệnh có lỗi cú pháp lỗi hiển thị b Thực thi câu lệnh: Thực thi tất câu lệnh tập tin script hành cách nhấp vào nút ! công cụ (xem hình 5) nhấn F5 Nếu muốn thực thi câu lệnh bôi đen lệnh nhấn F5 c Ghi SQL Query: Khi cần ghi thích tạm đóng không thực thi đoạn lệnh đó, ta sử dụng kí hiệu ghi sau: Ghi dòng: Đặt dấu trước dòng ghi Ghi nhiều dòng: Đặt ghi cặp dấu /* */ d Lưu lại truy vấn tập tin lệnh (script): (*.sql) Sau nhập vào câu truy vấn (như hình 5), câu lệnh truy vấn lưu lại dạng file text (*.sql) cách chọn File > Save nhấn Ctrl + S Tập tin sau lưu vào đĩa mở lên lại để thực thi cách vào File > Open ThS Trần Ngân Bình Trang Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT BÀI I MỤC ĐÍCH: Luyện tập câu lệnh SELECT có GROUP BY, HAVING có kết hợp với dạng SELECT thực tập trước II LÝ THUYẾT: Câu lệnh SQL sử dụng này: SELECT , FROM [ WHERE ] [GROUP BY [, [, ]] ] [HAVING ] III BÀI TẬP CÓ HƯỚNG DẪN CSDL: Quản lý Công Trình (CSDL 1) KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KT) CHUTHAU(TEN_THAU, TEL, DCHI_THAU) CHUNHAN(TEN_CHU, DCHI_CHU) CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) Tham khảo trang 21 để xem diễn giải cho bảng Yêu cầu 1: Hãy viết câu lệnh SQL để trả lời câu hỏi sau: a Tìm tổng kinh phí tất công trình theo chủ thầu Phân tích câu hỏi: Vì dòng liệu bảng CGTRINH cho biết kinh phí công trình, nên muốn biết tổng kinh phí theo chủ thầu ta phải nhóm dòng liệu theo cột TEN_THAU, sau dùng hàm sum để cộng kinh phí cho nhóm Câu truy vấn: Select TEN_THAU, sum(KINH_PHI) As TongKP From CGTRINH Group by TEN_THAU Thắc mắc: Nếu mệnh đề Select ta thêm cột TEN_CTR có không?Tại sao? b Cho biết họ tên kiến trúc sư có tổng thù lao thiết kế công trình lớn 25 triệu Phân tích câu hỏi: Vì dòng liệu bảng THIETKE cho biết thù lao thiết kế kiến trúc sư cho công trình đó, nên muốn biết tổng thù lao thiết kế công trình kiến trúc sư, ta phải nhóm dòng liệu theo cột HOTEN_KTS, sau dùng hàm sum để cộng thù lao cho nhóm Sau cùng, dùng mệnh đề HAVING để chọn lại nhóm (hay kiến trúc sư) có tổng thù lao > 25 Câu truy vấn: Select HOTEN_KTS, sum(THU_LAO) As TongTL ThS Trần Ngân Bình Trang 34 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT From THIETKE Group by HOTEN_KTS Having sum(THU_LAO) > 25 c Cho biết số lượng kiến trúc sư có tổng thù lao thiết kế công trình lớn 25 triệu Phân tích câu hỏi: Câu hỏi tương tự câu b, thay liệt kê họ tên kiến trúc sư thỏa điều kiện, ta cần cho biết có tổng cộng kiến trúc sư thỏa điều kiện Vì vậy, trước hết ta phải tìm danh sách kiến trúc sư thỏa điều kiện trước đếm danh sách tìm Hay nói khác hơn, ta phải thực bước lệnh select khác nhau: Câu giống hệt câu b, kết xuất lưu vào bảng #CAU_3C Câu Đếm số dòng tập tin #CAU_3C Câu Truy Vấn Select HOTEN_KTS, sum(THU_LAO) As TongTL From THIETKE Group by HOTEN_KTS Having sum(THU_LAO) > 25 Select From Into #CAU_3C count(*) As Solg_KTS #CAU_3C Thắc mắc: Ở bước ta có cần phải đếm phân biệt không? d Tìm tổng số công nhân tham gia công trình Phân tích câu hỏi: Vì dòng liệu bảng THAMGIA cho công nhân tham gia công trình nào, nên muốn biết tổng số công nhân tham gia theo công trình, ta phải nhóm dòng liệu theo cột STT_CTR, sau dùng hàm count để đếm số dòng (mỗi dòng công nhân) nhóm để có tổng số công nhân tham gia Câu truy vấn: Select STT_CTR, count(*) As TongSoCN From THAMGIA Group by STT_CTR Thắc mắc: Trong mệnh đề Select câu thêm cột HOTEN_CN không? e Tìm tên địa công trình có tổng số công nhân tham gia nhiều Phân tích câu hỏi: Câu hỏi tương tự câu d, thay cho biết tổng số công nhân tham gia tất công trình, ta yêu cầu kết xuất công trình có tổng số công nhân tham gia nhiều Vì vậy, trước hết ta phải thực câu d trước đưa kết vào bảng #CAU_3E, từ bảng #CAU_3E ta chọn công trình có tổng số công nhân tham gia nhiều Vậy, ta phải thực bước lệnh select khác nhau: Câu giống hệt câu d, kết xuất lưu vào bảng #CAU_3E Câu Chọn dòng có TongSoCN cao từ tập tin #CAU_3E, đồng thời kết nối với bảng CGTRINH để lấy thông tin tên địa công trình Câu Truy Vấn: Select From STT_CTR, count(*) As TongSoCN THAMGIA ThS Trần Ngân Bình Into #CAU_3E Trang 35 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Group by STT_CTR Select TEN_CTR, DIACHI_CTR, TongSoCN From #CAU_3E a, CGTRINH b Where a.STT_CTR = b.STT_CTR And TongSoCN = (Select Max(TongSoCN) From #CAU_3E) f Cho biết tên thành phố kinh phí trung bình cho công trình thành phố tương ứng Phân tích câu hỏi: Vì dòng liệu bảng CGTRINH cho biết kinh phí công trình cho biết công trình thuộc tỉnh thành nào, nên muốn biết kinh phí trung bình cho công trình thành phố, ta phải nhóm dòng liệu theo cột TINH_THANH, sau dùng hàm avg để tính kinh phí trung bình cho nhóm (tức thành phố) Câu truy vấn: Select From TINH_THANH, Avg(KINH_PHI) As KinhPhiTB CGTRINH Group By TINH_THANH g Cho biết họ tên công nhân có tổng số ngày tham gia vào công trình lớn tổng số ngày tham gia công nhân Nguyen Hong Van Phân tích câu hỏi: Để trả lời câu hỏi trước hết ta phải biết tổng số ngày tham gia công trình công nhân Sau chọn công nhân có tổng số ngày lớn tổng số ngày công nhân Nguyễn Hồng Vân Vì vậy, ta phải thực hai bước lệnh Select khác nhau: Câu Nhóm liệu bảng THAMGIA theo HOTEN_CN, tính tổng số ngày tham gia Lưu kết vào bảng #CAU_3G Câu Chọn dòng bảng #CAU_3G thỏa điều kiện Câu truy vấn: Select HOTEN_CN, Sum(SO_NGAY) As TongSoNgay From THAMGIA Group By HOTEN_CN Into #CAU_3G Select HOTEN_CN, TongSoNgay From #CAU_3G Where TongSoNgay > (Select TongSoNgay From #CAU_3G Where HOTEN_CN = 'Nguyen Hong Van') h Cho biết tổng số công trình mà chủ thầu thi công thành phố Phân tích câu hỏi: Vì dòng liệu bảng CGTRINH cho công trình thuộc tỉnh thành chủ thầu thi công, nên muốn biết tổng số công trình mà chủ thầu thi công tỉnh thành, ta phải nhóm dòng liệu theo cột TEN_THAU TINH_THANH, sau dùng hàm count để đếm số dòng số công trình nhóm Câu Truy Vấn: Select TEN_THAU, TINH_THANH, Count (STT_CTR) From CGTRINH Group By TEN_THAU, TINH_THANH As TongSoCTR i Cho biết họ tên công nhân có tham gia tất công trình ThS Trần Ngân Bình Trang 36 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Phân tích câu hỏi: Vì dòng liệu bảng THAMGIA cho công nhân tham gia công trình nào, nên muốn biết công nhân có tham gia hết tất công trình trước hết ta đếm xem công nhân tham gia tổng cộng công trình, đưa vào bảng #CAU_3i Sau đó, chọn từ bảng #CAU_3i công nhân có tổng số công trình tham gia với tổng số công trình ta có, cách đếm số dòng bảng CGTRINH Câu Truy Vấn: Select HOTEN_CN, Count (STT_CTR) Into #CAU_3i From THAMGIA Group by HOTEN_CN Select Where IV As TongSoCtrTG HOTEN_CN From #CAU_3i TongSoCtrTG = (Select Count(*) From CGTRINH) BÀI TẬP TỰ LÀM CSDL: Quản lý mua bán hàng hóa (CSDL3) HANGHOA(MA_HANG,TEN_HG) DAILY(STT_DL, TEN_DL, DCHI_DL) MUA(MA_HANG, STT_DL, NGAY_MUA, SOLG_MUA, TRIGIA_MUA) BAN(MA_HANG, STT_DL, NGAY_BAN, SOLG_BAN, TRIGIA_BAN) Tham khảo trang 32 để xem diễn giải cho bảng Yêu cầu 1: Hãy viết câu lệnh SQL để trả lời câu hỏi sau: a Tìm đơn giá mua trung bình bia Sài gòn tính tất đại lý b Tìm đơn giá mua trung bình bia Sài gòn tính trên đại lý c Hiển thị số lượng tồn kho mặt hàng theo đại lý d Tìm tên, địa đại lý có tổng giá trị mua ngày lớn 700000 e Với đại lý, cho biết ngày có số lượng mặt hàng bán f Tìm tên địa đại lý có tổng trị giá bán cao g Tìm tổng só tiền mà đại lý chi để mua hàng theo tháng h Tìm tên tổng số lượng bán mặt hàng bán với số lượng nhiều đại lý i Cho biết tổng số hàng mà đại lý kinh doanh (mua bán) j Tìm tên đại lý mua vào mặt hàng bia Heineken với đơn giá mua cao ThS Trần Ngân Bình Trang 37 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT BÀI I MỤC ĐÍCH: Luyện tập câu lệnh SELECT có sử dụng hàm hàm xử lý chuỗi, hàm xử lý ngày tháng, hàm chuyển kiểu, ; kết hợp với dạng câu SELECT trước II BÀI TẬP CÓ HƯỚNG DẪN: CSDL: Quản lý giảng dạy (CSDL5) CHUCDANH(MACD, TENCD, GIOCHUAN, TIEN_1TIET) Mỗi chức danh có mã chức danh phân biệt, tên chức danh, có số lượng chuẩn tương ứng, số tiền tiết trả theo chức danh GIAOVIEN(MAGV, HOTEN, PHAI, MACD) Mỗi giáo viên có mã giáo viên phân biệt, họ tên, phái mã chức danh tương ứng GD_0506(MAGV, MONDAY, LOPDAY, SOTIET, SISO) Thông tin việc giảng dạy giáo viên năm học 05-06 bao gồm mã giáo viên, tên môn dạy, tên lớp dạy, số tiết dạy, sỉ số lớp TAMUNG(MAGV, NGAY_TA, SOTIEN) Mỗi giáo viên tạm ứng tiền Khi tạm ứng, thông tin ngày tạm ứng số tiền tạm ứng ghi nhận lại Yêu cầu 1: Tìm thông thương bảng CSDL Yêu cầu 2: Mở bảng liệu để xem kiểu liệu trường quan sát liệu bảng Yêu cầu 3: Hãy viết câu lệnh SQL để trả lời câu hỏi sau: a In danh sách mã giáo viên, họ tên cán với danh xưng ‘Thầy’ cán nam, ‘Cô’ cán nữ Phân tích câu hỏi: Ta thấy danh xưng Thầy hay Cô phụ thuộc vào cột PHAI bảng GIAOVIEN Ta dùng cấu trúc CASE đơn giản để kiểm tra cột PHAI trả thông tin phù hợp Tham khảo cú pháp CASE trang 11 Câu Truy Vấn: Select MAGV, End From Case PHAI When When As HT GIAOVIEN Then Then 'Thay ' + HOTEN 'Co ' + HOTEN b In danh sách gồm cột: Cột ’Họ giáo viên’ cột ’Chữ Lót+Tên giáo viên’ Phân tích câu hỏi: Cột HOTEN bảng GIAOVIEN bao gồm họ tên Để tách họ tên thành cột ta dùng hàm left để lấy họ, hàm right để lấy tên Để tách họ ra, ta cần biết chiều dài họ, hay nói khác vị trí khoảng trắng chuỗi HOTEN Ta sử dụng hàm CharIndex để tìm vị trí Còn tên ta lấy từ bên phải sang số lượng kí tự chiều dài họ tên trừ chiều dài họ Tham khảo cú pháp hàm trang 10 Câu Truy Vấn: ThS Trần Ngân Bình Trang 38 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Select Left(HOTEN, CharIndex(' ', HOTEN)) As Ho_Gv, Right (HOTEN, Len(HOTEN) - CharIndex(' ', HOTEN)) As Ten_GV From GIAOVIEN c Cho biết danh sách họ tên giáo viên dạy cho lớp điện tử Phân tích câu hỏi: Từ chỉ’trong câu hỏi cho ta biết dạng câu hỏi sử dụng phép Trừ hai tập hợp Tập hợp thứ (T1) tập hợp giáo viên có dạy cho lớp Điện tử, tập hợp thứ hai (T2) tập hợp giáo viên có dạy lớp ghép Điện tử Tin Học lớp khác (như Lý, Chế biến, ) Lấy T1 trừ cho T2 Có nghĩa T1 select cha, T2 select Điều kiện chứa select sử dụng từ khóa NOT IN Câu Truy Vấn: Select distinct a.MAGV, HOTEN From GD_0506 a, GIAOVIEN b Where a.MAGV = b.MAGV And LOPDAY Like '%DT%' And a.MAGV Not In (Select MAGV From GD_0506 Where LOPDAY Like '%TH%' or LOPDAY not like '%DT%') d Tìm giáo viên có chức danh Giảng Viên dạy cho lớp DT20 (lưu ý: lớp DTTH20 lớp ghép DT20 TH20) Câu Truy Vấn: Select HOTEN, LOPDAY From GIAOVIEN a, GD_0506 b, CHUCDANH c Where a.MAGV = b.MAGV And a.MACD = c.MACD And TENCD = 'Giang Vien' And LOPDAY Like '%DT%20%' e Tìm họ tên giáo viên có tên lót Văn, có tạm ứng tiền lần Phân tích câu hỏi: Vì dòng bảng tạm ứng cho biết giáo viên tạm ứng ngày nào, với số tiền thôi, nên muốn biết giáo viên tạm ứng hai lần ta phải nhóm liệu theo cột MAGV, sau đếm số dòng nhóm chọn nhóm có số dòng lớn Câu Truy Vấn: Select HOTEN, Count(NGAY_TA) As SoLanTA From GIAOVIEN a, TAMUNG b Where a.MAGV = b.MAGV And HOTEN Group By b.MA_GV, HOTEN Having count(NGAY_TA) > Like ‘% Van %’ f Cho biết họ tên giáo viên tạm ứng tháng năm 2006? Câu Truy Vấn: Select HOTEN, NGAY_TA From GIAOVIEN a, TAMUNG b Where a.MAGV = b.MAGV And DatePart(month, NGAY_TA) = And DatePart(year, NGAY_TA) = 2006 g Cho biết họ tên giáo viên tạm ứng tháng gần đây? Câu Truy Vấn: Select HOTEN, NGAY_TA From GIAOVIEN a, TAMUNG b Where a.MAGV = b.MAGV And DateDiff(month, NGAY_TA, GETDATE()) [...]... “Database” ThS Trần Ngân Bình Trang 17 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Bước 2: Chọn “From device” sau đó chọn đường dẫn đến file đã sao lưu CSDL trước đó Nhấn Add ThS Trần Ngân Bình Trang 18 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Nhấn OK ThS Trần Ngân Bình Trang 19 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT PHẦN 3 BÀI TẬP THỰC HÀNH Phần thực hành được chia thành 6 bài Trong... kiểu dữ liệu ThS Trần Ngân Bình Trang 13 Giáo trình thực hành CSDL III Khoa CNTT & TT - ĐHCT HƯỚNG DẪN THỰC HÀNH 1 Mở Query Analyzer đăng nhập vào SQL Server trên máy chủ 2 Quan sát CSDL: Sử dụng Object Browser để xem cấu trúc của các bảng cũng như dữ liệu của từng trường và mở từng bảng dữ liệu để quan sát như hướng dẫn ở mục 5 ở trang 7 Khi quan sát CSDL cần lưu ý: Sự liên thông giữa các bảng dữ liệu. .. phần bài tập có hướng dẫn nhưng không kèm đáp án Bài thực hành 6 dành cho bài tập tổng hợp gồm tất cả các dạng câu hỏi, và sinh viên sẽ tự thực hiện mà không có phần hướng dẫn ThS Trần Ngân Bình Trang 20 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT BÀI 1 I MỤC ĐÍCH Luyện tập khả năng nhận biết sự thông thương trong một cơ sở dữ liệu, từ đó kết nối dữ liệu để truy xuất thông tin cần thiết II LÝ THUYẾT... lưu sau đó chọn “Properties” ThS Trần Ngân Bình Trang 15 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Chọn OK Bước 2: Từ nút “Databases”, click phải lên CSDL muốn sao lưu sau đó chọn “Tasks” và chọn “Backup” ThS Trần Ngân Bình Trang 16 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Bước 3: Nhấn chọn “Add ” và nhập vào đường dẫn và tên file sao lưu, nhấn OK để quá trình sao lưu hoàn tất b Phục hồi... trên các báo/tạp chí trong tuần lễ từ 23/4/95 đến 30/4/95 ThS Trần Ngân Bình Trang 25 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT l Tìm tên các tác giả được đăng bài trên báo Cựu Chiến Binh m Tìm tên những báo/tạp chí có đang xã luận In ra tên các bài xã luận đó và các số báo/tạp chí tương ứng ThS Trần Ngân Bình Trang 26 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT BÀI 2 I MỤC ĐÍCH Luyện tập câu... SOLG_BAN, TRIGIA_BAN) Khi một đại lý bán một mặt hàng nào đó (MA_HANG), vào một ngày nào đó (NGAY_BAN), sẽ được ghi nhận lại số lượng bán và trị giá bán tổng cộng 2 Yêu cầu 1: Tìm sự thông thương giữa các bảng trong CSDL3 3 Yêu cầu 2: Mở các bảng dữ liệu để xem kiểu dữ liệu của từng trường và quan sát dữ liệu của từng bảng ThS Trần Ngân Bình Trang 32 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT 4 Yêu cầu... nhiều thành phần: ngày / tháng / năm/ giờ / phút / giây / phần triệu của giây - Để tránh nhằm lẫn: nên mô tả năm bằng 4 chữ số, mô tả tháng bằng tên tắt của tháng (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) GETDATE(): Cho kết quả là ngày hiện hành DATEPART(, ): Trả về giá trị của trong Các thành phần thông dụng của ngày gồm có: ThS Trần Ngân Bình. .. giống câu hỏi nào trong bài thực hành này? - Câu này có thể sử dụng dạng điều kiện chứa select con số 3 hay không? g Tìm họ tên và chuyên môn của các công nhân tham gia các công trình do kiến trúc sư ‘Le Thanh Tung’ thiết kế Phân tích câu hỏi: ThS Trần Ngân Bình Trang 30 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Trước hết ta phải dùng một select để tìm số thứ tự các công trình do kiến trúc sư Lê... CEILING($123.45) => 124 -123 124.0000 d Hàm chuyển đổi kiểu CAST ( AS ): Trả về với mới Ví Dụ: SELECT 10 + cast ('34.5' as float) => 44.5 SELECT right(CAST(124 AS char(4)) , 2) => 4 e Cấu Trúc Phân Nhánh CASE: Đánh giá danh sách các điều kiện và trả về biểu thức phù hợp CASE có hai dạng: ThS Trần Ngân Bình Trang 11 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Dạng đơn... mặt hàng được mua vào nhưng chưa được bán ra ở đại lý Tân Hiệp Hưng trong tháng 12 năm 1994 i Tìm tên các mặt hàng có mua và bán trong cùng một ngày ở cùng một đại lý j Tìm tên và địa chỉ của các đại lý và những mặt hàng có số lượng mua và bán bằng nhau trong cùng một ngày k Tìm tên đại lý đã mua coca cola với số lượng nhiều hơn tất cả các đại lý khác ThS Trần Ngân Bình Trang 33 Giáo trình thực hành ... Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT Nhấn OK ThS Trần Ngân Bình Trang 19 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT PHẦN BÀI TẬP THỰC HÀNH Phần thực hành chia thành Trong đầu tiên,... char(15) CHECK (dthoai_kh LIKE ThS Trần Ngân Bình Trang 44 Giáo trình thực hành CSDL Khoa CNTT & TT - ĐHCT ‘([ 0-9 ][ 0-9 ][ 0-9 ] )-[ 0-9 ][ 0-9 ][ 0-9 ][ 0-9 ][ 0-9 ][ 0-9 ][ 0-9 ])’, congno money) CREATE TABLE... GETDATE(): Cho kết ngày hành DATEPART(, ): Trả giá trị Các thành phần thông dụng ngày gồm có: ThS Trần Ngân Bình Trang 10 Giáo trình thực hành CSDL Thành phần Year