Quan hệ giữa các thực thể: NhomSach NhanVien DanhMucSach HoaDon ChiTietHoaDon _ NhomSach DanhMucSach, qua cột ” MaNh char5”.. maxsize=5MB, filegrowth= % create table NhomSach MaNh cha
Trang 1LỚP: NCTH4B
Trang 2Trang 2
Trang 3MODULE 1
Nội dung thực hành:
+ Thực hành ngôn ngữ SQL:
_ Ngôn ngữ định nghĩa dữ liệu: CREATE TABLE
_ Ngôn ngữ thao tác dữ liệu: INSERT,UPDATE,DELETE….
+ Thông qua việc cài đặt cơ sở dữ liệu trên DBMS , hiểu rõ mô hình ER,mô hình quan hệ.
Câu 1: xác định quan hệ giữa các thực thể khóa chính , khóa ngoại và các ràng buộc toàn vẹn.
Quan hệ giữa các thực thể: NhomSach NhanVien DanhMucSach HoaDon ChiTietHoaDon _ NhomSach DanhMucSach, qua cột ” MaNh char(5)”.
_ NhanVien HoaDon ,qua cột “MaNV char(5)”
_ DanhMucSach ChiTietHoaDon, qua cột “MaSach char(5)”.
_ HoaDon ChiTietHoaDon, qua cột “MaHD char(5)”
Câu 2: Tạo cơ sơ dữ liệu và tạo bảng.
create database quanlysachtv
on primary(name=quanlysachtv,
Trang 4maxsize=5MB,
filegrowth= %)
create table NhomSach
(MaNh char( ) Not Null,
alter table NhomSach
add constraint pk_MaNh primary key (MaNh)
key NhanVien
alter table NhanVien
alter column MaNV char( ) Not Null
alter table NhanVien
add constraint pk_MaNV primary key (MaNV)
Key DanhMucSach
alter table DanhMucSach
alter column MaSach char( ) Not Null
alter table DanhMucSach
add constraint pk_MaSach primary key (MaSach),
constraint fk_MaNh foreign key (MaNh)
references NhomSach MaNh)
Key HoaDon
alter table HoaDon
alter column MaHD char( ) Not Null
alter table HoaDon
add constraint pk_MaHD primary key (MaHD),
Trang 4
Trang 5constraint fk_MaNV foreign key (MaNV)
references NhanVien MaNV)
Key ChiTietHoaDon
alter table ChiTietHoaDon alter column MaHD char( ) Not Null
alter table ChiTietHoaDon alter column MaSach char( ) Not Null
alter table ChiTietHoaDon
add constraint pk_MaHD_MaSach primary key(MaHD,MaSach),
constraint fk_MaHD foreign key (MaHD)
references HoaDon MaHD)
MODULE 2 : INSERT, cửa sổ Enterprise Manager
Nội dung thực hành:
+Ngôn ngữ thao tác dữ liệu: INSERT, cửa sổ Enterprise Manager
Câu 1:Thực hiện đưa dữ liệu vào bảng NHOMSACH,NHANVIEN, DANHMUCSACH
bang nhomsach
insert into NhomSach values ('N001',N'Tin Học')
insert into NhomSach values ('N002',N'Khoa Học Kỹ Thuật')
insert into NhomSach values ('N003',N'Anh Văn')
insert into NhomSach values ('N004',N'Y Học Đông Tây')
insert into NhomSach values ('N005',N'Chính Trị_Pháp Lý')
insert into NhomSach values ('N006',N'Văn Học')
select*from NhomSach
bang NhanVien
insert into NhanVien values ('NV001',N'Nguyễn
Ngọc',N'Mai',N'Nữ','5/21/1975',N'23 CMT8.Q3')
insert into NhanVien values ('NV002',N'Lê
Văn',N'Thành',N'Nam','5/23/1970',N'322 Hai Bà Trưng.Q1')
insert into NhanVien values ('NV003',N'Nguyễn
Thị',N'Thảo',N'Nữ','1/1/1975',N'44/5 Cao Thắng.Q10')
insert into NhanVien values ('NV004',N'Nguyễn
vĂN',N'MÃI',N'NAM','5/21/1975',N'32 Điệ Biên Phủ.Q1')
insert into NhanVien values ('NV005',N'Nguyễn Bích
Chi',N'Chi',N'Nữ','5/21/1975',N'34 Trần Hưng Đạo.Q5')
insert into NhanVien values ('NV006',N'Nguyễn
Quang',N'Minh',N'Nam','5/21/1975',N'56 Lê Hồng Phong.Q11')
insert into NhanVien values ('NV007',N'Lê Ngọc',N'Thìn',N'Nam','5/21/1975',N'5
Lê Lợi.Q1')
Trang 5
Trang 6insert into NhanVien values ('NV008',N'Nguyễn
Thu',N'Uyên',N'Nữ','5/21/1975',N'1/10 Phạm Ngọc Thạch.Q3')
insert into NhanVien values ('NV009',N'Mai Hoa',N'Đào',N'Nữ','5/21/1975',N'5LêLaiQ.Gò Vấp')
insert into NhanVien values ('NV010',N'Nguyễn
Thảo',N'Anh',N'Nữ','5/21/1975',N'14 Nguyễn Trãi.Q11')
select*from NhanVien
select*from DanhMucSach
Câu 2: Thực hiên insert dữ liệu vào bảng HOADON,CHITIETHOADON
Bang HoaDon
insert into HoaDon values ('1','7/15/2008','NV001')
insert into HoaDon values ('10','7/20/2008','NV001')
insert into HoaDon values ('2','7/16/2008','NV001')
insert into HoaDon values ('3','7/16/2008','NV001')
insert into HoaDon values ('4','7/16/2008','NV001')
insert into HoaDon values ('5','7/16/2008','NV001')
insert into HoaDon values ('6','7/16/2008','NV001')
insert into HoaDon values ('7','7/18/2008','NV001')
insert into HoaDon values ('8','7/18/2008','NV001')
insert into HoaDon values ('9','7/20/2008','NV001')
select*from HoaDon
Bang ChiTietHoaDon
insert into ChiTietHoaDon values ('9','S003','4')
insert into ChiTietHoaDon values ('3','S005','4')
insert into ChiTietHoaDon values ('6','S008','4')
insert into ChiTietHoaDon values ('8','S006','4')
insert into ChiTietHoaDon values ('4','S003','4')
insert into ChiTietHoaDon values ('7','S009','4')
insert into ChiTietHoaDon values ('6','S002','4')
insert into ChiTietHoaDon values ('6','S001','4')
Trang 6
Trang 7insert into ChiTietHoaDon values ('5','S007','4')
insert into ChiTietHoaDon values ('9','S006','4')
insert into ChiTietHoaDon values ('9','S007','4')
insert into ChiTietHoaDon values ('9','S009','4')
select*from ChiTietHoaDon
MODULE 3 Chức năng import, export.
Nội dung thực hành:
+ Chức năng import, export.
Câu 1:Dùng chức năng import,export.
1 1 Tất cả các thông tin nhân viên có trong bảng Employees trong NorthWind
ra thành tập tin Nhanvien.txt
Click chuột phaỉ vào thư mục cở sở dữ liệu Tasks Export Data Next
Trang 7
Trang 8Chọn Next để tiếp tục.
Trang 8
Trang 9Trong ô destination chọn “Flat File Destination” Next
Trang 9
Trang 10Select ô thứ nhất (không cần điều kiện) Next
Trang 10
Trang 11Trang 11
Trang 12Trang 12
Trang 13Trang 13
Trang 14Hoàn tất quá trình export tập tin Nhanvien.
Trang 14
Trang 15Kết quả sau khi export tập tin Nhanvien.
Trang 15
Trang 162 Dữ liệu của bảng nhóm sách,nhanvien, danhmucsach vào tập tin
QUANLYSACH.MDB
Trang 16
Trang 17N ext
Trang 17
Trang 18Chọn Next
Trang 18
Trang 19Chọn hết tất cả các bảng Next
Trang 19
Trang 21Chọn Next
Chọn Next
Trang 21
Trang 22Chọn Finish
Trang 22
Trang 24Chọn close để kết thúc
Kết quả các thao tác đã thực hiện như hình dưới.
Trang 24
Trang 253 Dữ liệu các bảng hoadon,chitiethoadon ra thành tập tin HD.XLS
Trang 25
Trang 261 .
Trang 26
Trang 334 Các nhân viên có phái là nữ từ bảng nhanvien thành tập tin
NhanvienNu.TXT.
Trang 33
Trang 39Câu 2:
1 Thực hiện chức năng detach để xuất cơ sở dữ liệu ở trên.
2 dùng chức năng attach để lấy lại CSDL.
3 Tạo một file backup cho cơ sở dữ liệu
Click chuột phải vào CSDL rồi chọn Taskschọn Back upxuất hiện
bảng như sau,để tất cả nhu mặt định ,click vào add để dân đường dẫn đến
nơi lưu file sau đó nhấp vào ok là xong.
Trang 39
Trang 404 Khôi phục lại CSDL từ file đã back up.
Click phải chuột vào CSDL rôi chọn Tasks chọn restore chọn database
chọn đường dẫn đến file đã back up sau đó nhấp vào ok.
MODULE 4: ALTER TABLE
Nội dung thực hành:
+ Ngôn ngữ hiệu chỉnh dữ liệu: ALTER TABLE
Câu 1:
1**Sao chép bản nhanvien thành bảng chamcongnhanvien
select*into ChamCongNhanVien
from Nhanvien
2** chèn thêm cột NgayCong number(3) vào bảng chamcongnhanvien
alter table ChamCongNhanVien
add NgayCong Numeric( )
Trang 40
Trang 413** Chèn cột DonGiaGiaCong number(5) vào bảng chamcongnhanvien
alter table ChamCongNhanVien
add DonGiaGiaCong Numeric( )
4** xóa cột HoLot,Ten,Phai,NgaySinh,DiaChi trong bảng chamcongnhanvien
alter table ChamCongnhanvien drop column holot,ten,phai,ngaysinh,diachi
Câu 2:
1** Thêm vào bảng HoaDon Cột NgayLap, kiểu char(10).
alter table Hoadon
add NGAYLAPHD char(10)
2** Hiệu chỉnh kiểu dữ liệu cho cột vừa thêm vào thành kiểu datetime
ALTER table Hoadon alter column NGAYLAPHD smalldatetime
3** Đổi tên cơ sở dữ liệu thành HOTENSV_SOMAY
sp_renamedb 'Quanlysach','LeThanhson_10174881'
4** Đổi tên bảng chamcongnhanvien thành bảng BangLuong
SP_RENAME 'ChamCongNhanVien','BANGLUONG'
5**xóa BangLuong khỏi cơ sở dữ liệu.
DROP TABLE BANGLUONG
Câu 3:
1** Detach cơ sở dữ liệu vừa tạo.
2** Dùng lệnh Truncate table… để xóa bảng HoaDon khỏi CSDL.
Không.
Tại vì bảng Hoadon có các constraint nó bị ràng buộc với một bảng
khác nên không thể thực hiện xóa bảng được.Để xóa bảng trước hết
ta phải xóa các constraint rồi sau đó thực hiện xóa bảng
Trang 41
Trang 423** Dùng lệnh Alter Table Drop Constraint để xóa ràng buộc giữa bảng HoaDon và ChitietHoaDon.
sp_helpconstraint Hoadon
xóa constraint:
alter table Hoadon
drop constraint fk_maNV
4** Xóa bảng HoaDon bằng lệnh Truncate table ….
truncate table Hoadon
5** Xóa cơ sở dữ liệu hiện tại
drop database LeThanhson_10174881
6** Atach lại cơ sở dữ liệu bằng file mdf ở trên
Click chuột phải vào CSDL rôi chọn attach chon add
chpn add để chọn đường dẫn đến nơi lưu file.mdf chọn ok.
MODULE 5 thao tác dữ liệu: INSERT, UPDATE, DELETE
Nội dung thực hành:
+ Ngôn ngữ thao tác dữ liệu: INSERT, UPDATE, DELETE
Câu 1:Dùng lệnh UPDATE để làm các công việc sau.
1** Cập nhật đơn giá 30000 cho mã sách S001
Trang 432** Cập nhật số lượng tồn=50% số lượng tồn hiện có cho những cuốn sách thuộc mã nhóm N002.
Lôi như sau:
The UPDATE statement conflicted with the REFERENCE constraint "fk_MaNhom" The conflict occurred
in database "quanlysachtv", table "dbo.DanhMucSach", column 'MaNhom'.
The statement has been terminated.
Không thực hiện UPDATE được vì cột MaNhom bị ràng buộc khóa ngoại
Trang 43
Trang 444** Tăng đơn giá danh mục sách lên 3%.
UPDATE DanhMucSach
SET DonGia=DonGia*1.03
5** Giảm 10% đơn giá cho nhóm sách Anh Van.
UPDATE DanhMucSach
SET DonGia=DonGia*0.9
WHERE MaNhom=(SELECT MaNhom FROM NhomSach WHERE TenNhom=N'Anh Văn')
6** Thêm vào cột giá bán trong bảng ChiTietHoaDon.
Cập nhật giá bán bằng với đơn giá trong bảng DanhMucSach.
ALTER TABLE ChiTietHoaDon
ADD GiaBan numeric( )
UPDATE ChiTietHoaDon
SET GiaBan=(SELECT DonGia FROM DanhMucSach WHERE
ChiTietHoaDon.MaSach=DanhMucSach.MaSach)
Trang 44
Trang 45Câu 2:Dùng lệnh INSERT để làm các công việc sau:
1** Thêm vào bảng NhomSach một bộ(‘N007’,’sức khỏe và đời sống’)
INSERT INTO NhomSach VALUES('N007',N'Ngoại Ngữ')
2** Thêm vào bảng ChiTietHoaDon với số hóa đơn 10,mã sách S001 với số lượng 5 và S002 với số lượng 20.
3** Thêm vào bảng DanhMucSach với mã sách S001, tên sách ‘Cánh Đồng Bất Tận’, Tác Giả ‘Nguyễn Ngọc Tư’, mã nhóm N006,đơn giá 45000, số lượng tồn 5.
INSERT INTO DanhMucSach VALUES('S011',N'cánh Đồng Bất Tận',N'Nguyễn Ngọc Tư','N006','45000','5')
Trang 45
Trang 464** Thêm một giá trị vào bảng danhMucSach,quan sát giải thích lỗi.
INSERT INTO DanhMucSach VALUES('S011',N'hỏi đáp sức khỏe',N'đỗ hồng
ngọc','N008','25000','50')
Không thực hiện dòng lệnh ở trên được vì Cột mã sách là khóa chính mà dữ liệu ở cột này đã có giá trị la ‘S001’ nên câu lệnh
sẽ không thực thi được.
Violation of PRIMARY KEY constraint 'pk_MaSach' Cannot insert duplicate key in object
'dbo.DanhMucSach'.
The statement has been terminated.
INSERT INTO DanhMucSach VALUES('S012',N'hỏi đáp sức khỏe',N'đỗ hồng
ngọc','N008','25000','50')
Dòng lệnh này cũng không thực thi vì nó bị ràng buộc khóa ngoại, giá trị 'N008' không có trong bảng NhomSach.trong bảng NhomSach cột MaNhom là khóa chính The INSERT statement conflicted with the FOREIGN KEY constraint "fk_MaNhom" The conflict occurred in database "quanlysachtv", table "dbo.NhomSach", column 'MaNhom' The statement has been terminated.
Câu lênh sau khi đã sửa 2 lỗi trên:
INSERT INTO DanhMucSach VALUES('S012',N'hỏi đáp sức khỏe',N'đỗ hồng
ngọc','N007','25000','50')
Trang 46
Trang 475** Thêm 10 bộ dữ liệu vào bảng HoaDon
select*from HoaDon
INSERT INTO HoaDon VALUES('11','01/05/2010','NV002')
INSERT INTO HoaDon VALUES('27','01/03/2010','NV003')
INSERT INTO HoaDon VALUES('16','01/08/2010','NV004')
INSERT INTO HoaDon VALUES('93','01/08/2012','NV002')
6** Thêm vào bảng ChiTietHoaDon 30 bộ tùy ý.
select*from ChiTietHoaDon
INSERT INTO ChiTietHoaDon VALUES('2','S028','5','224000')
INSERT INTO ChiTietHoaDon VALUES('2','S027','8','5200')
INSERT INTO ChiTietHoaDon VALUES('9','S026','9','52400')
INSERT INTO ChiTietHoaDon VALUES('6','S025','4','2230000')
INSERT INTO ChiTietHoaDon VALUES('8','S024','3','500')
INSERT INTO ChiTietHoaDon VALUES('6','S023','9','334000')
INSERT INTO ChiTietHoaDon VALUES('7','S022','4','220000')
INSERT INTO ChiTietHoaDon VALUES('4','S021','7','70000')
Trang 47
Trang 48INSERT INTO ChiTietHoaDon VALUES('5','S012','2','20000')
INSERT INTO ChiTietHoaDon VALUES('2','S013','1','50000')
INSERT INTO ChiTietHoaDon VALUES('6','S014','2','40000')
INSERT INTO ChiTietHoaDon VALUES('2','S015','4','30000')
INSERT INTO ChiTietHoaDon VALUES('8','S019','8','90000')
INSERT INTO ChiTietHoaDon VALUES('6','S018','2','70000')
INSERT INTO ChiTietHoaDon VALUES('3','S017','7','50000')
INSERT INTO ChiTietHoaDon VALUES('6','S016','5','70000')
Trang 48
Trang 49Câu 3:
1** Xóa nhóm sách ‘N007’ trong bảng NhomSach
select*from NhomSach
DELETE FROM NhomSach
WHERE MaNhom='N007'
The DELETE statement conflicted with the REFERENCE constraint
"fk_MaNhom" The conflict occurred in database "quanlysachtv", table "dbo.DanhMucSach", column 'MaNhom'.
The statement has been terminated.
Câu lệnh trên không thực hiên được vì bị rang buộc khóa ngoại.
2** Xóa hóa đơn số 9 trong bảng HoaDon.có thực hiện được không?vì sao?
MODULE 6 các loại join trong SQL server
Nội dung thực hành:
+ Tìm hiểu các loại join trong SQL server
Câu 1:Tạo query sử dụng lệnh SELECT với các dạng liên kết :
1** inner join
SELECT HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach
FROM ChiTietHoaDon inner join HoaDon
ON ChiTietHoaDon.MaHD=HoaDon.MaHD
Trang 49
Trang 502** Left Outer Join
SELECT HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach
FROM ChiTietHoaDon Left Outer join HoaDon
ON ChiTietHoaDon.MaHD=HoaDon.MaHD
Trang 50
Trang 513** Right Outer Join
SELECT HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach
FROM ChiTietHoaDon Right Outer join HoaDon
ON ChiTietHoaDon.MaHD=HoaDon.MaHD
Trang 51
Trang 524** Cross Join
Kết quả hiển thị là thông tin của các cột sau:
SELECT
HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach,NgayBan,SoLuong,MaNV
FROM ChiTietHoaDon Cross join HoaDon
Trang 52
Trang 53Câu 2:So sánh kết quả sau mỗi lần thực hiện liên kết.
Kết quả sau khi thực hiện Inner Join =LEFT OUTER JOIN.
Kết quả sau khi thực hiện RIGHT OUTER JOIN nhiều record hơn của Inner Join và LEFT OUTER JOIN.
Kết quả sau khi thực hiện CROSS JOIN nhiều record nhất.
Trang 53
Trang 54MODULE 7,8 : SELECT, UPDATE, DELETE
Nội dung thực hành:
+ Ngôn ngữ thao tác dữ liệu: SELECT, UPDATE, DELETE
Câu 1:Liệt kê danh mục sách theo thứ tự mã sách.
select from DanhMucSach order by MaSach
Câu 2:Liệt kê những nhân viên theo thứ tự tên.
SELECT FROM NhanVien order by TenNV
Câu 3: Liệt kê những nhân viên nam theo thứ tự tên.
select from NhanVien where Phai='Nam' order by TenNV
Câu 4: Liệt kê những nhân viên có tên là Mai.
select from NhanVien where TenNV='Mai'
Câu 5: Liệt kê những nhân viên có tên bắt đầu bằng kí tự T
select from NhanVien where TenNV like 't%' liet ke nv ten bat dau = t
Câu 6: Liệt kê những nhân viên có họ lót là Thị hay Văn.
select from NhanVien where HoLot like N'%Thị' or HoLot like N'Văn'
Câu 7: Liệt kê những nhân viên sinh năm 1975.
select from NhanVien where YEAR(NgaySinh)=1975
Câu 8: Liệt kê những nhân viên sinh vào tháng 9.
select from NhanVien where MONTH(NgaySinh)=09
Trang 54
Trang 55Câu 9: Liệt kê những cuốn sách có tên tác giả bắt đầu là ‘Nguyễn’.
select from DanhMucSach where TacGia like N'Nguyễn%'
Câu 10: Liệt kê những cuốn sách có số lượng tồn < 10.
select from DanhMucSach where SLTon<100
Câu 11: Liệt kê những cuốn sách có đơn giá từ 14000 đến 20000.
select from DanhMucSach where DonGia>=14000 and DonGia<=20000
Câu 12: Liệt kê những cuốn sách thuộc nhóm sách N001 ,N002.
select from DanhMucSach where MaNhom like 'N001' or MaNhom like 'N002'
Câu 13: Liệt kê những cuốn sách có đơn giá >=10000 và số lượng tồn >100.
select from DanhMucSach where DonGia>=10000 and SLTon>100
Câu 14: Liệt kê những cuốn sách thuộc nhóm sách N001 và số lượng tồn từ 10 đến 20.
select from DanhMucSach where MaNhom like 'N001' and SLTon>=10 and SLTon<=20
Câu 15:Liệt kê hóa đơn theo thứ tự tăng dần của MaNV,nếu trùng mã nhân viên thì xếp theo ngày bán.
select from HoaDon order by MaNV asc,NgayBan asc
Câu 16:Hiển thị những cuốn sách thuộc ngành tin học gồm: MaSach,
TenSach.MaNhom.
select MaSach,TenSach,MaNhom from DanhMucSach
where MaNhom=(select MaNhom
from NhomSach where TenNhom='Tin Học')
Câu 17:Liệt kê sách thuộc nhóm tin học có số lượng tồn <10.
select from DanhMucSach
where MaNhom=(select MaNhom
from NhomSach where TenNhom='Tin Học') and SLTon<10
Trang 55