_ Viết lệnh Xpath lấy Sinh viên có ở vị trí cuối cùng ở tường ĐH KHTN.... __ Viết lệnh Xpath lấy tên Sinh viên có ID=II trong trường Đại học CNTT..... Viết lệnh Xpath lấy Sinh viên có ở
Trang 1ĐẠI HỌC QUOC GIA THANH PHO HO CHI MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THONG TIN KHOA KHOA HỌC VÀ KỸ THUẬT THÔNG TIN
UIT TRƯỜNG ĐẠI HỌC
CÔNG NGHE THONG TIN
QUAN LY THONG TIN IE103.N21.VB2 / BAO CAO / BAI TAP THUC HANH 4
Sinh viên thực hiện:
Nguyên Cao Trí - 21522918
Giảng viên:
ThS Lưu Thanh Sơn
ThS Nguyên Thành Phong
Thành phố Hồ Chí Minh, năm 2023
Trang 2
MỤC LỤC
1 _ Viết lệnh Xpath lấy Sinh viên có ở vị trí cuối cùng ở tường ĐH KHTN 1
2 Viết lệnh Xpath lấy tên Sinh viên có ID=II trong trường Đại học CNTT 1
3 Viết lệnh trả về tất cả các nút từ nút gốc là THONGTINSV -5 scc<csccccee 2
4 _ Câu 4: Viết lệnh Xquery tra về danh sách sinh viên có ID < 12 với MSDH = 2 3
5 Cho biết tên Đề tài có nhiều SV tham gia nhất 4
6 Viết lệnh Xquery trả về MSDH và TenDH theo định dạng sau: «<< =<e 5
7 Viết lệnh Xquery xóa tên các sinh viên trường DH IKHTN 55-2 cscs<cse 6
8 _ Viết lệnh Xquery trả về thông tin các sinh viên có tên là Nam" hoặc “Thanh' 7
10 Viết lệnh Xquery kiểm tra xem có tồn tại sinh viên có ID là trong trường KHTN
11 Thêm môn học có ID = 13 vào đối tượng sinh viên có ID = II của đrường đại học Công
12 Thêm thuộc tính tên môn học là "Quản lý thông tin" cho môn học có ID = 13 vào đối tượng sinh viên có ID = 11 của trường đại học Công nghệ thông tin - - - =- 11
không? (Nêu có trả về 1, nêu không thì trả về 0) Và INSERT thêm vào THONGTINSYV 12
thông tin là sinh viên nào học khóa học tên là gi? (Nếu được có thế mở rộng thêm truy vấn
Trang 31 Viết lệnh Xpath lấy Sinh viên có ở vị trí cuối cùng ở trường ĐH KHÍTN
Cẩm Ï Viet lệnh Xpath lấy Sinh viên có ở vị trí cuối cùng ở trường ĐH
KATN
SOL SELECT ChiTietSV.query('//sinhvien [last()]')
from QuanLySV
where TenDH ='DH KHTN"
Két qua per ws
-E <sinhvien ID="12">
<monhoc ID="8" Ten="Thiet Ke Web” />
¬ 100% ~
Giải - _ Từ dữ liệu XML ChïIietSV dùng hàm query ( ) truy vân Xpath thích theo yêu cầu đề bài
- - Sau đó kiểm tra kết quả
2 Viết lệnh Xpath lấy tên Sinh viên có ID=II trong trường Đại học CNTT
Cdu 2 CNTT Viét lénh Xpath lây tên Sinh viên có ID=I1 trong truéng Dai hoc
SOL SELECT ChiTietSV.value('(//sinhvien [@ID=11]/@Ten)[1]', ‘nvarchar(3@)')
from QuanLySV
where TenDH ='DH CNTT‘
Kết quả "`
146 E1 Câu 2 (0.5đ): Viết lệnh Xnath lấy tên Sinh viên có TD=11 trong trường Đại họ Goi y: dùng hàm walue() thay cho query()
159 SBELECT €hiTietSV.value('(//sinhvien [@10=11]/ôTen3[4]', "nvarchar(38)")-
150
> 100% ~ 4 »
ae FB Results sẽ Messages
#x) đì) 1
ENG
9:04 PM
2023-04-10
Giải thích - _ Từ dữ liệu XML ChrTietŠSV dùng hàm value( ) lây giả trị và truy
vân Xpath theo yêu cầu đề bài
- _ Sau đó kiểm tra kết quả
3 Viết lệnh trả về tất cả các nút từ nút gốc là THONGTINSY
Cdu 3 Viet lénh tra vé tat ca cdc nut từ nút gốc là THONG1TINSV
select ChiTietSV.query(‘for $i in /THONGTINSV let $j:= $i
Trang 4
')
from QuanLySV
Két qua Họ
153 Ei Câu 3 (@.5đ): Viết lệnh trả về tất cả các nút từ nút gốc là THONGTINS\
154 | dung query
155
156 Elselect ChiTietSV.query('for $i in /THONGTINSV
159 ` | from QuanLySV
160
› 100% x 4
4 FB Resuts il Messa
= (No column name)
$x q)) 1 ef TINSV>< '" Ten=” ><
ENG 2 THONGTINSV><sinhvien ID=”10” Ten="Khang"><monho
9:32 PM
2023-04-10
BH: Mae = ADRAIRR( VODECe MENDOTA ANAAIAN Ace: '3\_ TECT VRÁI fA/VA/
Giải thích - - Từ dữ liệu XML: ChiTietSV dung ham query( ) , su dung for
duyét tat ca cac nut la THONGTINSV
- Sau do kiém kết quả
4 Céu 4: Viét lénh Xquery trả về danh sách sinh viên có ID < 12 với MSDH
=2,
Cáu 4 Viet lénh Xquery trả về danh sách sinh viên có lD < 12 với MSDH =
2
SOL SELECT ChiTietSV.query(‘for $i in //sinhvien
let $j:= $i
where($j/@ID)<12
Trang 5
where MSDH =2
Kết quả
ÿx; d)) </sinhvien>
=i<sinhvien ID=”11” Ten=”Vinh”>
<monhoc ID="5" Ten="Lap Trinh Java” />
9:46 PM <monhoc ID="6" Ten=”He Quan Tri CSDL” />
fe 100% +
Giải thích - - Từ dữ liệu XML: ChiTietSV dung ham query ( ), sử dụng for
duyệt tât cả các nút là sinhvIen theo yêu câu đề bài
-_ Sau đó kiêm tra kết quả
5 Cho biết tên Đề tài có nhiều SV tham gia nhất
Cáu 5 Viet lệnh Xquery trả về danh sách sinh viên sắp xếp theo tên với
MSDH=!1
SOL SELECT ChiTietSV.query(‘for $i in //sinhvien
return $j') from QuanLySV
Trang 6
Kết quả
I <sinhvien ID="15" Ten="Lan">
<monhoc ID="1@" Ten="Toan Roi Rac" />
<monhoc ID="12" Ten="CSDL Nang Cao” />
</sinhvien>
=I<sinhvien ID="10" Ten=”Nam”>
<monhoc ID="1" Ten="Co So Du Lieu” />
<monhoc ID="2" Ten="Cau Truc Du Lieu” />
</sinhvien>
=|<sinhvien ID="11" Ten="Phong”>
< > <monhoc ID="4" Ten="Toan Giai Tich” />
> <monhoc ID="5" Ten="Lap Trinh Java™ />
= <monhoc ID="6" Ten="He Quan Tri CSDL” />
G đồ <monhoc ID="13" Ten="Quan ly théng tin” />
9%) dq») </sinhvien>
=|<sinhvien ID="12" Ten="Thanh">
ENG <monhoc ID="7" Ten="Anh Van" />
<monhoc ID="8" Ten="Thiet Ke Web” />
9:44 PM <monhoc ID="9" Ten="An Toan Thong Tỉn” />
2023-04-10 </sinhvien>
Giải thích - - Từ dữ liệu XML: ChiTietSV ding ham query () , st dung for
duyét tat ca cac nut la sinhvien
- Dung order by sap xép thuéc tinh @Ten
- Sau d6 kiém tra kết qua
6 Viết lệnh Xquery trả về MSDH và TenDH theo định dạng sau:
Cdu 6 Viết lệnh Xquery trả về MSDH và TenDH theo định dạng sau:
<QuanLySV>
<ChiTietSV>1 DH CNTT</ChiTietSv>
</QuanLySV>
Trang 7SOL SELECT ChiTietSV query('<QuanLySV>
<ChiTietSV>
{sql:column("MSDH") , sql:column("TenDH" )}
</ChiTietSV>
</QuanLySV>
")
from QuanLySV where MSDH=1
Két qua _
œ đồ
$x) )))
ENG
=i<QuanLySV>
9:51PM <ChiTietSV>1 DH CNTT</ChiTietSV>
2023-04-10 </QuanLy5V>
Giải thích | Bước 1: SQL
Bước 2: Xpath, Xquery
Bước 3: Ráp BI B2
Bước 4: Kiểm tra kết quả theo yêu cầu đề bài
7 Viết lệnh Xquery xóa tên các sinh viên trường DH KHTN
Cdu 7 Viet lénh Xquery xéa tên các sinh viên trường DH KHTN
SET ChiTietSV.modify('delete(//SinhVien/@Ten) ' )
WHERE TenDH = ‘DH KHTN';
Trang 8
Kết quả = TEST XML
=\ @( Database Diagt =k THONGTINSV>
#ã dbo.Diagra =] <sinhvien ID="10
=) @ Tables <monhoc ID="1" Ten="Co So Du Lieu” />
=) Wl Views <monhoc ID="2" Ten="Cau Truc Du Lieu” /> 3) iil External Resou <monhoc ID="3" Ten="Lap Trinh Mobile” />
</sinhvien>
€ › ® Ml Synonyms " =] <sinhvien ID="11">
> a toan <monhoc ID="4" Ten="Toan Giai Tich” />
= GW Service Broker <monhoc ID="5" Ten="Lap Trinh Java™ />
a @ H Wl Storage <monhoc ID="6" Ten="He Quan Tri CSDL" />
$x) dị) % WW Security </sinhvien>
& i Security =] <sinhvien ID="12">
ENG z¡ i Server Objects <monhoc ID="7" Ten="Anh Van" />
<monhoc ID="8" Ten="Thiet Ke Web” />
<monhoc ID="9" Ten="An Toan Thong Tin™ /> 5:05 PM + OW PolyBase
meats s2 Mưnne VẤ Ung
Giải thích - _ Cập nhật bảng QuanIySV dùng hàm modify( ) xóa Xpath theo
yêu câu đề bài
- - Sau đó kiểm tra kết quả
8 Viết lệnh Xquery trả về thông tin các sinh viên có tén 1a ‘Nam’ hoac
‘Thanh’
Cáu 8 Viet lenh Xquery tra về thông tin các sinh viên có tên là ‘Nam’ hodc
‘Thanh’
SOL select ChiTietSV.query('‘
for $i in //sinhvien let $j := $i where ( ($j/@Ten)="Nam" or ($j/@Ten)="Thanh")
Trang 9
")
from QuanLySV
Kết quả
< >
o @ <monhoc ID="2" Ten="Cau Truc Du Lieu” />
</sinhvien>
ENG =i<sinhvien ID="12" Ten="Thanh">
<monhoc ID="7" Ten="Anh Van" />
10:01 PM <monhoc ID="8" Ten="Thiet Ke Web” />
</sinhvien>
eee
Giải thích - Todt ligu XML: ChiTietSV dung ham query ( ), sử dụng for
duyệt tất cả các nút là sinhvien có tên là Nam và Thanh
- _ Sau đó kiểm tra kết quả
9 Viết lệnh Xquery thay đổi tên sinh viên thứ 2 thành tén ‘Phong’ trong trường CNTTT
Cdu 9 Viet lénh Xquery thay đôi tên sinh viên thứ 2 thành tén ‘Phong’ trong
truong CNTT
SOL
update QuanLySV set ChiTietSV.modify( ‘replace value of (//sinhvien[2]/@Ten)[1] with
“Phong” ')
where MSDH = 1
Trang 10
Kết quả
| =| <THONGTINSV>
| =| <sinhvien ID="10" Ten=”Nam”>
"” <monhoc ID=”1” Ten=”Co So Du Lieu” />
<monhoc ID="2" Ten="Cau Truc Du Lieu” />
Ten="Toan Giai Tỉch” />
<monhoc ID="5" Ten="Lap Trinh Java” />
<monhoc ID="6" Ten="He Quan Tri CSDL” />
<monhoc ID=”13” Ten=”Quan lý thông tỉn” />
=| <sinhvien ID="12" Ten="Thanh">
ee <monhoc ID="7" Ten="Anh Van" />
$x; dì) <monhoc ID="8" Ten="Thiet Ke Web” />
<monhoc ID="9" Ten="An Toan Thong Tin” />
</THONGTINSV>
2:32PM [LE 7 100% -
2023-04-11
Gidi thich
- Cap nhật bảng QuanLySV dùng hàm modify( ) thay đôi giá trị
của Xpath theo yêu cầu đề bài
- _ Sau đó kiểm tra kết quả
10 Viết lệnh Xquery kiểm tra xem có tồn tại sinh viên có ID là trong trường
KHTN không? (Nếu có trả về 1, nếu không thì trả về 0)
Cám 10 Viet lệnh Xquery kiêm tra xem có tốn tại sinh viên có lD là trong
trường KHTN không? (Nếu có trả về 1, nếu không thì trả vé 0)
SOL select ChiTietSV.exist(‘'//SinhVien/@ID=11') as tontaiSV_ID_11
from QuanLySV
WHERE TenDH = 'DH KHTN"
Trang 11
Kết quả
254 EI Câu 19 (1đ): Viết lệnh Xquery kiểm tra xem có tồn tại sinh viên có ID là 11 a: 255 | Gợi ý: Dùng lệnh exist() thay cho query()
= 256 =select ChiTietSV.exist('//SinhVien/@10=11') as tontaiSV_TD_11
257 | from QuanLySV:
258 NHERE TenDH = 'DH KHTN"
100% x 4
EB Resutts Messages
todaSV.ID_11-
1 H
>
ae
$s¡ dì)
ENG
2:37 PM
2023-04-11
Giải
thích
KHTN không?
- Sau đó kiêm tra kết quả là: l có tồn tai Ngược lại là: 0 không tôn tại
11 Thêm môn học có ID = 13 vào đối tượng sinh viên có ID = II của trường dai hoc Cong nghé thong tin
Cám Il Thêm môn học có LD = l3 vào đổi tượng sinh vién cé ID = 1] cua
trường đại học Công nghệ thông tin
SOL UPDATE QuanLySV
SET ChiTietSV.modify('insert <monhoc ID="13"/> as last into
(/THONGTINSV/sinhvien[@ID="11"])[1]')
WHERE MSDH = 1
Trang 12
10
Kết quả
>
ee
9x; dì)
ENG
2:43 PM
2023-04-11 100 %
<THONGTINSV>
<sinhvien ID="10"
<monhoc ID="1"
<monhoc ID
<monhoc ID="3"
</sinhvien>
<sinhvien ID="11"
<monhoc ID="4"
3
Sinhnvien
<sinhvien ID="12"
<monhoc ID="7"
<monhoc ID="9"
</sinhvien>
</THONGTINSV>
Ten="Nam">
Ten="Co So Du Lieu” />
Ten="Cau Truc Du Lieu™ />
Ten="Lap Trinh Mobile” />
Ten=”Phong”>
Ten=”Toan Giai Tich" />
6" Ten="He Quan Tri CSDL” />
/ Ten="Thanh">
Ten="Anh Van" />
Ten="Thiet Ke web” />
Ten="An Toan Thong Tin™ />
Gidi thich
- Cap nhat bang QuanLySV dung ham modify( ) thém node môn
hoc vao Xpath theo yéu cau dé bai
- Sau d6 kiém tra kết quả
12 Thêm thuộc tính tên môn học là "Quan ly thong tin" cho mon hoc cé ID =
13 vào đối tượng sinh viên có ID = 11 của trường đại học Công nghệ thông
tin
Cám 12 Thêm thuộc tính tên môn học là "Quản lý thông tin" cho môn học có
1D = 13 vào đối tượng sinh viên có ID = 11 của trường đại học Công nghệ thong tin
SOL UPDATE QuanLySV
SET ChiTietSV.modify('insert attribute Ten {"Quan ly théng tin"} as last into (/THONGTTNSV/sinhvien[@TD=”11” ]/monhoc[@TD=”13”])[1]')
WHERE MSDH = 1
Trang 13
11
Kết quả = | SIKTHONGTINSV>
=| <sinhvien ID="10" Ten="Nam">
kh <monhoc ID="1" Ten="Co So Du Lieu” />
<monhoc ID="2" Ten="Cau Truc Du Lieu” />
<monhoc ID="3" Ten="“Lap Trinh Mobile” />
</sinhvien>
= <sinhvien ID="11" Ten="Phong">
<monhoc ID="4" Ten="Toan Giai Tich” />
<monhoc ID="5" Ten="Lap Trinh Java™ />
ID ” Ten="He
I ="Quan ly théng tin” /
> </sinhvien>
= =| <sinhvien ID="12" Ten="Thanh">
ae <monhoc ID="7" Ten="Anh Van" />
$x› q)) <monhoc ID="8" Ten="Thiet Ke Web” />
<monhoc ID="9" Ten="An Toan Thong Tin™ />
ENG I </sinhvien>
</THONGTINSV>
100 % x
2:48 PM
Giải thích
- Cap nhat bang QuanLySV dung ham modify( ) thêm thuộc tính
vao Xpath theo yéu cau dé bai
- Sau d6 kiém tra két qua
13 Viết lệnh Xquery kiểm tra xem có tồn tại sinh viên tên “Lan” trong trường
CNTT không? (Nếu có trả về 1, nếu không thì trả về 0) Và INSERT thêm vào THONGTINSYV
Cdu 13 Miết lệnh Xquery kiếm tra xem có tôn tại sinh viên tên ‘Lan’ trong
trường CNTT không? (Nếu có trả về 1, nếu không thì trả về 0) Và INSERT thém vao THONGTINSV
SOL
Kiem tra ton tai
select ChiTietSV.exist(‘'//SinhVien/@Ten="Lan" ') as tontaiSV_Ten_Lan from QuanLySV
WHERE TenDH = 'DH CNTT'
Cap nhat
update QuanLySV
set ChiTietSV.modify
(' insert <sinhvien ID="15" Ten="Lan" >
<monhoc ID="10" Ten="Toan Roi Rac” />
<monhoc ID="11" Ten="Lap Trinh C#" />