1. Trang chủ
  2. » Công Nghệ Thông Tin

thực hành về ngôn ngữ sql

80 747 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 1,49 MB

Nội dung

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 1

LỚP: NCTH4B

Trang 2

Trang 2

Trang 3

MODULE 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 4

maxsize=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 5

constraint 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 6

insert 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 7

insert 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 8

Chọn Next để tiếp tục.

Trang 8

Trang 9

Trong ô destination chọn “Flat File Destination”  Next

Trang 9

Trang 10

Select ô thứ nhất (không cần điều kiện)  Next

Trang 10

Trang 11

Trang 11

Trang 12

Trang 12

Trang 13

Trang 13

Trang 14

Hoàn tất quá trình export tập tin Nhanvien.

Trang 14

Trang 15

Kết quả sau khi export tập tin Nhanvien.

Trang 15

Trang 16

2 Dữ liệu của bảng nhóm sách,nhanvien, danhmucsach vào tập tin

QUANLYSACH.MDB

Trang 16

Trang 17

N ext

Trang 17

Trang 18

Chọn Next

Trang 18

Trang 19

Chọn hết tất cả các bảng  Next

Trang 19

Trang 21

Chọn Next

Chọn Next

Trang 21

Trang 22

Chọn Finish

Trang 22

Trang 24

Chọ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 25

3 Dữ liệu các bảng hoadon,chitiethoadon ra thành tập tin HD.XLS

Trang 25

Trang 26

1 .

Trang 26

Trang 33

4 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 39

Câ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 Taskschọn Back upxuấ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 40

4 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 41

3** 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 42

3** 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 43

2** 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 44

4** 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 45

Câ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 46

4** 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 47

5** 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 48

INSERT 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 49

Câ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 50

2** Left Outer Join

SELECT HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach

FROM ChiTietHoaDon Left Outer join HoaDon

ON ChiTietHoaDon.MaHD=HoaDon.MaHD

Trang 50

Trang 51

3** Right Outer Join

SELECT HoaDon.MaHD,ChiTietHoaDon.MaHD,ChiTietHoaDon.MaSach

FROM ChiTietHoaDon Right Outer join HoaDon

ON ChiTietHoaDon.MaHD=HoaDon.MaHD

Trang 51

Trang 52

4** 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 53

Câ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 54

MODULE 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 55

Câ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

Ngày đăng: 06/07/2014, 01:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w