Tải bản đầy đủ (.doc) (6 trang)

bài tập sql server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (51.11 KB, 6 trang )

Bài thực hành SQL Server

1

BÀI THỰC HÀNH SQL SERVER SỐ 1.
Bài 1:
1. Tạo các table sau: (các field có gạch chân là field khoá, không tạo
khoá ngoại mà sẽ được thực hiện vào phần trigger)
Table: KHACHHANG
NameType Size
MAKH
Nvarchar 5
TENKH
Nvarchar 30
DIACHI
Nvarchar 50
DT Nvarchar 10
EMAIL
Nvarchar 30
Ràng buộc: TENKH not null, DT có thể 8 chữ số hoặc 10 chử số.
Table: VATTU
NameType Size
MAVT
Nvarchar 5
TENVT
Nvarchar 30
DVT Nvarchar 20
GIAMUA Number
20
SLTON
Number


20
Ràng buộc: TENVT not null, GIAMUA >0, SLTON >=0.
Table: HOADON
NameType Size
MAHD
Nvarchar 10
NGAY
Date/Time
MAKH
Nvarchar 5
TONGTG Number
20
Ràng buộc: Giá trò nhập vào cho field NGAY phải trước ngày hiện hành;
.
Table: CHITIETHOADON
NameType Size
MAHD
Nvarchar
MAVT
Nvarchar
SL
Number
20

10
5


2


Bài thực hành SQL Server

KHUYENMAI Number
20
GIABAN Number
20
Ràng buộc: Giá trò nhập vào cho field Sl phải lớn hơn 0

2./ Nhập dữ liệu vào các table sau
Table VATTU:
Mã vật tư
VT01
VT02
VT03
VT04
VT05
VT06
VT07

Tên vật tư
XI MANG
CAT
GACH ONG
GACH THE
DA LON
DA NHO
LAM GIO

đơn vò tính
BAO

KHOI
VIEN
VIEN
KHOI
KHOI
CAI

Table KHACHHANG:
MAKH
TENKH
KH01
NGUYEN THI BE
KH02
LE HOANG NAM
KH03
TRAN THI CHIEU
KH04
MAI THI QUE
KH05
LE VAN SANG
KH06
TRAN HOANG

Gia mua
50000
45000
120
110
25000
33000

15000

DIACHI
TAN BINH
BINH
TAN BINH
BINH
QUAN 10
TAN BINH

Table HOADON:
MAHD
NGAY
HD001
12/05/2000
HD002
25/05/2000
HD003
25/05/2000
HD004
25/05/2000
HD005
26/05/2000
HD006
02/06/2000
HD007
22/06/2000
HD008
25/06/2000
HD009

15/08/2000
HD010
30/09/2000
HD011
27/12/2000
HD012
27/12/2000

MAKH
KH01
KH02
KH01
KH04
KH04
KH03
KH04
KH03
KH04
KH01
KH06
KH01

Table CHITIETHOADON:
MAHD
MAVT
HD001
VT01

SL
5


SLTON
5000
50000
800000
800000
100000
100000
50000

DT
EMAIL
845789
987898 namlehoang
845789
845789

GIABAN
52000




3

Bài thực hành SQL Server
HD001
HD002
HD003
HD004

HD004
HD005
HD005
HD005
HD006
HD007
HD008
HD008
HD009
HD010
HD011
HD011
HD012
HD012
HD012

VT05
VT03
VT02
VT03
VT04
VT05
VT06
VT07
VT04
VT04
VT01
VT02
VT02
VT01

VT01
VT02
VT01
VT02
VT03

10
10000
20
50000
20000
10
15
20
10000
20000
100
20
25
25
20
20
20
10
10000

30000
150
55000
150

120
30000
35000
17000
120
125
55000
47000
48000
57000
55000
45000
55000
48000
150

Câu 3: Tạo các view sau:
Hiển danh sách tất cả các khách hàng gồm mã khách hàng, tên khách
hàng, đòa chỉ, điện thoại, và đòa chỉ E-mail.
Hiển danh sách các khách hàng có đòa chỉ là “TAN BINH” gồm mã
khách hàng, tên khách hàng, đòa chỉ, điện thoại, và đòa chỉ E-mail.
Hiển danh sách các khách hàng có đòa chỉ là “BINH CHANH” gồm mã
khách hàng, tên khách hàng, đòa chỉ, điện thoại, và đòa chỉ E-mail.
Hiển danh sách các khách hàng gồm các thông tin mã khách hàng, tên
khách hàng, đòa chỉ và đòa chỉ E-mail của những khách hàng chưa có số
điện thoại
Hiển danh sách các khách hàng chưa có số điện thoại và cũng chưa có
đòa chỉ Email gồm mã khách hàng, tên khách hàng, đòa chỉ.
Hiển danh sách các khách hàng đã có số điện thoại và đòa chỉ E-mail
gồm mã khách hàng, tên khách hàng, đòa chỉ, điện thoại, và đòa chỉ Email.

Hiển danh sách tất cả các vật tư gồm mã vật tư, tên vật tư, đơn vò tính và
giá mua.
Hiển danh sách các vật tư có đơn vò tính là “CAI” gồm mã vật tư, tên vật
tư và giá mua.
Hiển danh sách các vật tư gồm mã vật tư, tên vật tư, đơn vò tính và giá
mua mà có giá mua trên 25000.
Hiển danh sách các vật tư là “GẠCH” (bao gồm các loại gạch) gồm mã
vật tư, tên vật tư, đơn vò tính và giá mua .


Bài thực hành SQL Server

4

Hiển danh sách các vật tư gồm mã vật tư, tên vật tư, đơn vò tính và giá
mua mà có giá mua nằm trong khoảng từ 20000 đến 40000.
Tạo query để lấy ra các thông tin gồm Mã hoá đơn, ngày lập hoá đơn, tên
khách hàng, đòa chỉ khách hàng và số điện thoại.
Tạo query để lấy ra các thông tin gồm Mã hoá đơn, tên khách hàng, đòa
chỉ khách hàng và số điện thoại của ngày 25/5/2000.
Tạo query để lấy ra các thông tin gồm Mã hoá đơn, ngày lập hoá đơn, tên
khách hàng, đòa chỉ khách hàng và số điện thoại của những hoá đơn trong
tháng 6/2000.
Tạo query để lấy ra các thông tin gồm Mã hoá đơn, ngày lập hoá đơn, tên
khách hàng, đòa chỉ khách hàng và số điện thoại.
Lấy ra danh sách những khách hàng (tên khách hàng, đòa chỉ, số điện
thoại) đã mua hàng trong tháng 6/2000.
Lấy ra danh sách những khách hàng không mua hàng trong tháng 6/2000
gồm các thông tin tên khách hàng, đòa chỉ, số điện thoại.
Tạo query để lấy ra các thông tin gồm các thông tin mã hóa đơn, ,mã vật

tư, tên vật tư, đơn vò tính, giá bán, giá mua, số lượng , trò giá mua (giá mua
* số lượng), trò giá bán , ( giá bán * số lượng).
Tạo query để lấy ra các chi tiết hoá đơn gồm các thông tin mã hóa đơn,
,mã vật tư, tên vật tư, đơn vò tính, giá bán, giá mua, số lượng , trò giá mua
(giá mua * số lượng), trò giá bán , ( giá bán * số lượng) mà có giá bán lớn
hơn hoặc bằng giá mua.
Tạo query để lấy ra các thông tin gồm mã hóa đơn, ,mã vật tư, tên vật tư,
đơn vò tính, giá bán, giá mua, số lượng , trò giá mua (giá mua * số lượng),
trò giá bán , ( giá bán * số lượng) và cột khuyến mãi với khuyến mãi 10%
cho những mặt hàng bán trong một hóa đơn lơn hơn 100.
Tìm ra những mặt hàng chưa bán được.
Tạo bảng tổng hợp gồm các thông tin: mã hóa đơn, ngày hoá đơn, tên
khách hàng, đòa chỉ, số điện thoại, tên vật tư, đơn vò tính, giá mua, giá
bán, số lượng, trò giá mua, trò giá bán.
Tạo bảng tổng hợp của tháng 5/2000 gồm các thông tin: mã hóa đơn, ngày
hoá đơn, tên khách hàng, đòa chỉ, số điện thoại, tên vật tư, đơn vò tính, giá
mua, giá bán, số lượng, trò giá mua, trò giá bán.
Tạo bảng tổng hợp của tháng 6/2000 gồm các thông tin: mã hóa đơn, ngày
hoá đơn, tên khách hàng, đòa chỉ, số điện thoại, tên vật tư, đơn vò tính, giá
mua, giá bán, số lượng, trò giá mua, trò giá bán.


Bài thực hành SQL Server

5

Tạo bảng tổng hợp của quý 1 năm 2000 gồm các thông tin: mã hóa đơn,
ngày hoá đơn, tên khách hàng, đòa chỉ, số điện thoại, tên vật tư, đơn vò
tính, giá mua, giá bán, số lượng, trò giá mua, trò giá bán.
Lấy ra danh sách các hoá đơn gồm các thông tin: Số hoá đơn, ngày, tên

khách hàng, đòa chỉ khách hàng, tổng trò giá của hoá đơn.
Lấy ra hoá đơn có tổng trò giá lớn nhất gồm các thông tin: Số hoá đơn,
ngày, tên khách hàng, đòa chỉ khách hàng, tổng trò giá của hoá đơn.
Lấy ra hoá đơn có tổng trò giá lớn nhất trong tháng 5/2000 gồm các thông
tin: Số hoá đơn, ngày, tên khách hàng, đòa chỉ khách hàng, tổng trò giá
của hoá đơn.
Lấy ra hoá đơn có tổng trò giá nhỏ nhất gồm các thông tin: Số hoá đơn,
ngày, tên khách hàng, đòa chỉ khách hàng, tổng trò giá của hoá đơn.
Đếm xem mỗi khách hàng có bao nhiêu hoá đơn.
Lấy ra các thông tin của khách hàng có số lượng hoá đơn mua hàng nhiều
nhất.
Lấy ra các thông tin của khách hàng có số lượng hàng mua nhiều nhất.
Lấy ra các thông tin về các mặt hàng mà được bán trong nhiều hoá đơn
nhất.
Lấy ra các thông tin về các mặt hàng mà được bán nhiều nhất.
Lấy ra danh sách tất cả các khách hàng gồm Mã khách hàng, tên khách
hàng, đòa chỉ , số lượng hoá đơn đã mua (nếu khách hàng đó chưa mua
hàng thì cột số lượng hoá đơn để trống)
Câu 4: Tạo các function sau:
Viết hàm tính doanh thu cuả năm.. với năm là tham số truyền vào.
Viết hàm tính doanh thu cuả tháng .. với tháng là tham số truyền vào.
Viết hàm tính doanh thu của khách hàng với mã khách hàng là tham số
truyền vào.
Viết hàm tính tổng số lượng bán được cho từng mặt hàng theo tháng với
mã hàng và thàng nhập vào, nếu tháng không nhập vào tức là tính tất cả
các tháng.
Viết hàm tính lãi ((giá bán – trừ giá mua )* slố lượng bán được ) cho từng
mặt hàng, với mã mặt hàng là tham số truyền vào. Nếu mã mặt hàng
không truyền vào thì tính cho tất cả các mặt hàng.
Câu 5: Tạo các procedure sau:

Lấy ra danh các khách hàng đã mua hàng trong ngày [ngày]…. Với [ngày]
là tham số truyền vào.


Bài thực hành SQL Server

6

Lấy ra danh sách 5 khách hàng có tổng trò giá các đơn hàng lớn nhất.
Lấy ra danh sách 10 mặt hàng có số lượng bán lớn nhất.
Lấy ra danh sách 10 mặt hàng bán ra có lãi 1t nhất.
Tính giá trò cho cột khuyến mãi như sau: Khuyến mãi 5% nếu SL >100,
10% nếu SL>500.
Tính số lại số lượng tồn cho tất cả các mặt hàng. (SLTON = SLTON –
tổng sl bán được)
Tính trò giá cho mỗi hoá đơn.
Tạo ra table KH_VIP có cấu trúc giống với cấu trúc table
KHACHHANG. Lưu các khách hàng có tổng trò giá của tất cả các đơn
hàng >=10000000 vào table KH_VIP.
Câu 6: Tạo các trigger để thực hiện các ràng buộc sau:
Thực hiện việc kiểm tra rằng buộc khoá ngoại.
Không cho phép cascade delete trong các rằng buộc khoá ngoại. Ví dụ
không cho phép xoá các CTHOADON nào có SOHD còn trong table
HOADON
không cho phép user nhập vào hai vật tư có cùng tên.
Khi user đặt hàng thì KHUYENMAI là 5% nếu SL >100, 10% nếu SL
>500.
Chỉ cho phép mua các mặt hàng có số lượng tồn lớn hơn hoặc bằng số
lượng cần mua và tính lại số lượng tồn mỗi khi có đơn hàng.
Không cho phép user xoá một lúc nhiều hơn một vật tư.

Chỉ bán mặt hàng GẠCH (các laọi gạcg) với số lượng là bội số của 100.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×