1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập môn học hệ quản trị cơ sở dữ liệu sql server Đề tài quản lý bán hàng

42 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Quản Lý Bán Hàng
Trường học Trường Đại Học Phương Đông
Chuyên ngành Hệ Quản Trị Cơ Sở Dữ Liệu SQL Server
Thể loại Bài Tập
Định dạng
Số trang 42
Dung lượng 3,09 MB

Nội dung

3.sửa lại số lượng cho hóa đơn có mã HD1 để hóa đơn này có số lượng bằng số lượng HD3UPDATE CHITIETHOADON SET SOLUONG = SELECT SOLUONG FROM CHITIETHOADONWHERE SOHD = 'HD3'WHERE SOHD = '

Trang 1

TRƯỜNG ĐẠI HỌC PHƯƠNG ĐÔNG KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

Trang 2

A-Viết lệnh tạo một cơ sở dữ liệu có ít nhất 5 bảng (có tạo khóa chính, khóa ngoại nếu có, Check, Default, Unique, … nếu cần):

create table NHACUNGCAP

(MANCC varchar(10) primary key,

select * from NHACUNGCAP

[1]

Trang 3

/*A2_Tạo bảng HÀNG HÓA và nhập DL cho bảng HÀNG HÓA*/

/*Tạo ràng buộc giá trị mặc định: default*/

create table HANGHOA

(MAHH varchar(10) primary key,

VALUES ('HH1',N'Iphone 12 pro max 512G',N'32000000',N'Chiếc','NCC1'),

('HH2',N'Xiaomi Redmi K20 Pro Premium

',N'10000000',N'Chiếc','NCC2'),

('HH3',N'Tai nghe thỏ hồng siêu cute',N'500000',N'Chiếc','NCC3'),('HH4',N'Samsung Galaxy S20 Plus',N'15000000',N'Chiếc','NCC4')SELECT * FROM HANGHOA

[2]

Trang 4

/*A3_Tạo bảng HÓA ĐƠN và nhập DL cho bảng HÓA ĐƠN */

create table HOADON

(SOHD varchar(50) primary key,

SELECT FROM HOADON*

/*A4_Tạo bảng CHI TIẾT HÓA ĐƠN và nhập DL cho bảng CHI TIẾT HÓA ĐƠN*/

[3]

Trang 5

/*Tạo ràng buộc kiểm tra điều kiện*/

create table CHITIETHOADON

Trang 6

/*A5_Tạo bảng NHÂN VIÊN và nhập DL cho bảng NHÂN VIÊN*/

create table NHANVIEN

(MANV varchar(10) primary key,

[5]

Trang 7

VALUES ('NV1',N'Nguyễn Thị Kim',0,'1995/04/08','0910567425',N'Hà Đông-Hà Nội',5000000),

('NV2',N'Trần Tuấn Minh',1,'1990/01/10','0388354671',N'Thanh Xuân-Hà Nội',7000000),

('NV3',N'Vũ Thanh Tùng',1,'1997/10/08','0328654214',N'Nam Định',10000000),('NV4',N'Phạm Đăng Phú',1,'1990/05/15','0328541478',N'TP Hồ Chí

Minh',8000000)

SELECT * FROM NHANVIEN

/*A6_Tạo bảng THÔNG TIN CỬA HÀNG và nhập DL cho bảng THÔNG TIN CỬA HÀNG*/

create table THONGTINCUAHANG

(TENCUAHANG nvarchar(70) not null,

(N'Bách Hóa Xanh','0327165370',N'Hà Nội')

SELECT * FROM THONGTINCUAHANG

[6]

Trang 8

B.Viết 3 lệnh sửa dữ liệu theo điều kiện; Viết 3 lệnh Xóa

dữ liệu theo điều kiện:

/*C1.3 lệnh sửa DL theo điều kiện: */

1.Sửa lại ngày sinh cho nhân viên là 2000/03/20 và điện thoại là 0328854712 cho

nhân viên có mã nhân viên là NV2

Trang 9

3.sửa lại số lượng cho hóa đơn có mã HD1 để hóa đơn này có số lượng bằng số lượng HD3

UPDATE CHITIETHOADON

SET SOLUONG = ( SELECT SOLUONG

FROM CHITIETHOADONWHERE SOHD = 'HD3')WHERE SOHD = 'HD1'

/*C1.3 lệnh xóa DL theo điều kiện: */

1.xóa những hàng hóa có giá bán nằm trong khoảng từ 700000 đến 10000000

DELETE FROM HANGHOA

WHERE GIABAN BETWEEN 700000 AND 10000000

2.xóa hàng hóa có giá bán nhỏ nhất

DELETE FROM HANGHOA

WHERE GIABAN = (SELECT MIN(GIABAN)

FROM HANGHOA)

3.xóa tên cửa hàng có tên cửa hàng là ESHOP và địa chỉ là HÀ NỘI

DELETE FROM THONGTINCUAHANG

WHERE TENCUAHANG = N'ESHOP' AND DIACHICH = N'HàNội'

[8]

Trang 10

C.Viết 5 lệnh sửa cấu trúc bảng: Thêm cột/ Xóa cột /Sửa kiểu dữ liệu (độ rộng) cột /Thêm ràng buộc khóa chính, khóa ngoại:

1.Sửa tên cửa hàng có độ rộng 100

ALTER TABLE THONGTINCUAHANG

ALTER COLUMN TENCUAHANG nvarchar(100)

2.Thêm cột chức vụ vào bảng nhân viên

ALTER TABLE NHANVIEN

ADD CHUCVU nvarchar(50)

3.Xóa cột địa chỉ ở bảng nhà cung cấp

ALTER TABLE NHACUNGCAP

DROP COLUMN DIACHI

[9]

Trang 11

4.Thêm ràng buộc khóa chính cho bảng THONGTINCUAHANG

D.Tạo Diagram hiển thị đủ các bảng: Chụp lại Diagram :

[10]

Trang 13

E.Tạo 2 khung nhìn VIEW có nối 3 bảng Chụp màn

Trang 14

F.Viết 15 câu hỏi về Select trong đó có sử dụng:

• Hàm day, month, year, datediff, getdate

• Hàm Count; Hàm max ; min ; Sum ;có Group by ; có Order by

• Truy vấn trên một bảng có where ; Truy vấn trên nhiều bảng có where

• Sử dụng Select lồng nhau; …

1.Đưa ra các website có tên miền là vn

SELECT website

FROM NHACUNGCAP

WHERE WEBSITE like N'%.vn'

2.Đưa ra tên nhân viên tuổi những nhân viên có tuổi nhỏ hơn 30

SELECT TENNV, datediff(yy,NGAYSINH, getdate()) as [Tuổi]FROM NHANVIEN

WHERE datediff(yy,NGAYSINH, getdate()) <30

3.Đưa ra top 3 nhân viên đầu tiên có lương cao nhất

[13]

Trang 15

SELECT top 3 TENNV

FROM NHANVIEN

ORDER BY Luong DESC

4.Đưa ra Hàng hóa có giá bán cao nhất.

6.Tính Tổng số lượng số hóa đơn mà đã được thống kê.

SELECT sum(soluong) as [Số lượng hóa đơn]

9.Đếm xem có bao nhiêu nhân viên Nam có lương từ 5 triệu đến 10 triệu.

SELECT count(*) as [Số nhân viên]

[14]

Trang 16

FROM NHANVIEN

WHERE gioitinh = 1 and luong between 5000000 and 10000000

10.Đưa ra giới tính và số nhân viên tương ứng

SELECT gioitinh, count (*) as [Số nhân viên]

WHERE DIACHICH = N'Hà Nội'

12.Đưa ra tên nhân viên có mức lương giảm dần.

SELECT TENNV

FROM NHANVIEN

ORDER BY LUONG DESC

13.Đưa ra tên nhân viên sắp xếp theo mức lương tăng dần.

SELECT TENNV

FROM NHANVIEN

ORDER BY LUONG asc

14.Đưa ra tên,giới tính,tuổi của những nhân viên có lương nhỏ hơn mức lương trung bình.

SELECT TENNV,GIOITINH,datediff(yy,ngaysinh,getdate()) as [TUỔI]FROM NHANVIEN

WHERE luong < (SELECT avg(luong)

FROM NHANVIEN)

[15]

Trang 17

15.Đưa ra MANV,tên nhân viên có mức lương từ 3 triệu đến 9 triệu

SELECT MANV,TENNV

FROM NHANVIEN

WHERE luong between 3000000 and 9000000

16.Đưa ra tên, lương những nhân viên có tháng sinh thuộc quý 2, năm sinh là 1990.

SELECT TENNV,LUONG

FROM NHANVIEN

WHERE month(NGAYSINH) in (4,5,6) and year(NGAYSINH) = 1990

17.Đưa ra Tên nhân viên,gioitinh,tên khách hang,đơn giá hàng hóa của những hóa đơn được lập vào quý 2 năm 2021.

WHERE TENKH LIKE N'_h%n'

19.Đưa ra nhà cung cấp,website,số điện thoại,tên hàng hóa hóa,giá bán của các loại hàng hóa.

[16]

Trang 18

SELECT

NHACUNGCAP.MANCC,WEBSITE,DIENTHOAI,HANGHOA.TENHH,GIABAN

FROM NHACUNGCAP,HANGHOA

WHERE NHACUNGCAP.MANCC = HANGHOA.MANCC

20.Đưa ra tên những hàng hóa có giá không nằm trong khoảng từ 500000 đến

WHERE GIABAN < 500000 OR GIABAN > 10000000

21.Đưa ra các website có số điện thoại bắt đầu là 19.

SELECT WEBSITE

FROM NHACUNGCAP

WHERE DIENTHOAI LIKE '19%'

22.Đưa ra website có số điện thoại ở vị trí thứ 2 là 8.

SELECT WEBSITE

FROM NHACUNGCAP

WHERE DIENTHOAI LIKE '_8%'

23.Đưa ra tên hang hóa,số hóa đơn và mức tiền phải chi cho mỗi hàng hóa tương ứng đó.

SELECT TENHH,CHITIETHOADON.SOHD,DONGIA*SOLUONG AS [THÀNH TIỀN]

FROM CHITIETHOADON,HANGHOA

[17]

Trang 19

WHERE CHITIETHOADON.MAHH = HANGHOA.MAHH

24.đếm xem có bao nhiêu hóa đơn có số lượng nhỏ hơn 4.

SELECT count(*) AS [Số hóa đơn < 4]

FROM CHITIETHOADON

WHERE SOLUONG < 4

25.Tính số tiền mà khách hàng phải trả ứng với số lượng hàng hóa mà họ mua

SELECT SOLUONG * DONGIA AS [Tiền phải trả]

FROM CHITIETHOADON

G.Viết 4 thủ tục có viết lệnh gọi:

1 /*Viết thủ tục xóa những hàng hóa có giá bán nhỏ hơn giá bán người dùng đưa ra */

CREATE PROC XoaHH

(@GIABAN int )

AS

DELETE FROM HANGHOA

WHERE GIABAN < @GIABAN

EXEC XoaHH 700000

SELECT * from HANGHOA

[18]

Trang 20

2 /*Viết_thủ_tục_nhập_dữ_liệu_vào_bảng: THONGTINCUAHANG TENCUAHANG DIENTHOAICH DIACHIC ( , ,

select * from THONGTINCUAHANG

3 /*Viết thủ tục kiểm tra số nguyên tố - */

H.Viết 2 hàm có viết lệnh gọi:

4 /*Đưa ra tên hàng hóa có giá bán nằm giữa 2 giá bán do người khác đưa ra có sử dụng hàm*/

CREATE FUNCTION GIA

(@gia1 int, @gia2 int)

RETURNS TABLE

AS

RETURN (SELECT HANGHOA.TENHH

FROM HANGHOAWHERE GIABAN BETWEEN @gia1 AND

@gia2)

[19]

Trang 21

SELECT * FROM GIA(100000,10000000)

I.Viết 1 trigger thực hiện một nhiệm vụ nào đó:

Viết trigger cấm xoá dữ liệu trên bảng NHACUNGCAP

Create trigger camxoaNhacungcap

Trang 22

TRƯỜNG ĐẠI HỌC PHƯƠNG ĐÔNG

KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

  

BÀI TẬP MÔN HỌC

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER

Họ tên sinh viên:

Lớp:

Mã số:

Trang 23

create table trinhdohocvan

(matdhv varchar(10 )primary key,

tentdhv nvarchar(50)not null,

chuyennganh nvarchar(50))

/*Tạo bảng lương*/

(bacluong varchar(10)primarykey,

luongcoban floatnot null,

hesoluong floatnot null,

hesophucap floatnot null)

/*Tạo bảng nhân viên*/

(manv varchar(10 )primary key,

hodem nvarchar(30)not null,

gioitinh bitnot null,

ngaysinh date,

dantoc nvarchar(20)default N'Kinh',

[23]

Trang 24

quequan nvarchar( ),50

sodienthoai varchar(10)unique,

mapb varchar(10)references phongban(mapb),

macv varchar(10)references chucvu(macv),

matdhv varchar(10)references trinhdohocvan(matdhv),

bacluong varchar(10)references luong(bacluong))

/*tạo bảng hợp đồng lao động*/

(mahd varchar(10 )notnull,

manv varchar(10)not null,

tungay datenot null,

denngay datenotnull)

B.Viết 5 lệnh sửa cấu trúc bảng: Thêm cột/ Xóa cột /Sửa kiểu dữ liệu (độ rộng) cột /Thêm ràng buộc khóa chính, khóa ngoại, giá trị mặc định, duy nhất, kiểm tra điều kiện.

1.Xóa cột quê quán ở bảng nhân viên

[24]

Trang 25

2.Thêm cột địa chỉ vào bảng nhân viên

add diachi nvarchar( )50

3.Thêm ràng buộc khóa chính trên bảng hopdonglaodong

4.Thêm ràng buộc luongcoban>4500000 trên bảng luong

C.Viết lệnh liên quan đến dữ liệu trong bảng

+)Nhập vào mỗi bảng ít nhất 3 dòng Chụp lại bảng dữ liệu sau khi nhập

/*Bảng phòng ban*/

[25]

Trang 26

insert into phongban

/*Bảng lương*/

[26]

Trang 27

insert into luong

[27]

Trang 28

values('tdhv3',N'Đại học',N'Quản trị nhân lực')

/*Bảng nhân viên*/

'pb01' 'cv001' 'tdhv1' 'bac1', , , , N'Hà Đông-Hà Nội')

'0322345678' 'pb02' 'cv102' 'tdhv2' 'bac2', , , , ,N'Kinh Môn-Hải Dương')

'cv103' 'tdhv1' 'bac3', , , N'Sơn Tây-Hà Nội')

'cv001' 'tdhv2' 'bac4', , , N'Đống Đa-Hà Nội')

'cv103' 'tdhv1' 'bac3', , , N'Hà Giang')

[28]

Trang 29

values ('nv007', N'Hoàng Phương' N'Nga', ,1 '1990/07/03', N'Kinh', '0320898876', 'pb01',

'cv103' 'tdhv2' 'bac2', , , N'Nam Định')

'032098796' 'pb03' 'cv103' 'tdhv3' 'bac2', , , , , N'Hạ Long-Quảng Ninh')

Trang 30

insert into hopdonglaodong

+)Viết 3 lệnh sửa dữ liệu theo điều kiện;

1.Sửa ngày bắt đầu hợp đồng lao động và ngày kết thúc hợp đồng lần lượt là 01/01/2020 và 01/01/2022 của nhân viên có mã nhân viên là nv001

Trang 31

set diachi=N'Hạ Long-Quảng Ninh',

hodem=N'Phạm Thanh'

+) Viết 3 lệnh Xóa dữ liệu theo điều kiện

1.Xóa nhân viên trong bảng nhân viên có mã là nv002

2.Xóa hợp đồng lao động của nhân viên có tên là Phương ở phòng kế toán

from nhanvien,phongban

and ten=N'Phương'

and tenphongban=N'Kế toán')

3.Xóa nhân viên có chức vụ là trưởng phòng và có họ Nguyễn

from nhanvien,chucvu

and tenchucvu=N'Trưởng phòng'

[31]

Trang 32

and hodem like N'Nguyễn%')

D.Tạo Diagram hiển thị đủ các bảng: Chụp lại Diagram

E.Viết 25 câu hỏi về Select trong đó có sử dụng: (lưu ý viết cả câu hỏi và câu trả lời)

 Hàm day, month, year, datediff, getdate

 Hàm Count; Hàm max ; min ; Sum ;có Group by ; có Order by

 Truy vấn trên một bảng có where ; Truy vấn trên nhiều bảng có where

 Sử dụng Select lồng nhau; …

1 Đưa ra mã nhân viên, họ tên, ngày sinh của nhân viên nữ sinh vào quý III

from nhanvien

[32]

Trang 33

and gioitinh 0=

2.Đưa ra mã nhân viên, họ đệm, tên, trình độ học vấn những nhân viên sinh sau năm

1997 có trình độ đại học

from nhanvien,trinhdohocvan

andyear(ngaysinh 1997)>

and tentdhv=N'đại học'

3.Đưa ra mã nhân viên họ đệm, tên tuổi của nhân viên thuộc phòng kế toán , ,

from nhanvien,phongban

and tenphongban=N'Kế toán'

4 Đưa ra mã nhân viên, họ đệm, tên những nhân viên có sinh nhật trước ngày

20 07 1994 / /

from nhanvien

or(year(ngaysinh 1994 )= andmonth(ngaysinh 7)< )

or(year(ngaysinh 1994 )= andmonth(ngaysinh 7)=

[33]

Trang 34

andday(ngaysinh 20)< )

5 Đưa ra số lượng nhân viên mỗi phòng ban

from nhanvien,phongban

6.Đưa ra mã nhân viên, họ đệm, tên của từng nhân viên và sắp xếp theo chiều lương giảm dần

from nhanvien,phongban luong,

and phongban mapb =nhanvien.mapb

7.Đưa ra mã nhân viên, họ đệm, tên, lương của nhân viên có lương cao nhất công ty

from nhanvien,luong

and luongcoban hesoluong hesophucap*( + )

from nhanvien,luong

[34]

Trang 35

where luong.bacluong nhanvien bacluong= )

8.Đưa ra mã nhân viên họ đệm, tên, lương của nhân viên có lương thấp nhất phòng ,

kế toán

from nhanvien,luong

and luongcoban hesoluong hesophucap*( + )

from nhanvien,luong,phongban

and phongban mapb =nhanvien.mapb

and tenphongban=N'kế toán')

9.Đưa ra mã nhân viên họ tên lương của nhân viên có lương mức lương trung , , <

bình của cả công ty

from nhanvien,luong

and luongcoban hesoluong hesophucap*( + )

<(selectavg(luongcoban hesoluong hesophucap*( + ))

from nhanvien,luong

[35]

Trang 36

where nhanvien.bacluong luong= bacluong)

10 Đưa ra tổng lương mà công ty chi trả cho mỗi phòng ban

from nhanvien,luong,phongban

and nhanvien mapb =phongban.mapb

11.Đưa mã nhân viên, họ đệm, tên, phòng ban, địa chỉ của nhân viên có chức vụ là nhân viên địa chỉ ở Quảng Ninh và thuộc phòng phát triển thị trường ,

from nhanvien,phongban chucvu,

and nhanvien mapb =phongban.mapb

and diachi like N'%Quảng Ninh'

and tenphongban=N'Phát triển thị trường'

and tenchucvu=N'nhân viên'

12 Đưa ra họ tên của từng trưởng phòng của từng phòng ban trong công ty

from nhanvien,chucvu phongban,

[36]

Trang 37

and nhanvien mapb =phongban.mapb

and tenchucvu=N'trưởng phòng'

13 Đưa ra họ tên và chuyên ngành của những nhân viên có trình độ học vấn đại học

from nhanvien,trinhdohocvan

and tentdhv=N'đại học'

14 Đưa ra họ tên trưởng phòng tên phòng ban của nhân viên có mã nhân viên là ,

nv003

from nhanvien,phongban,chucvu

and nhanvien.macv chucvu= macv

and tenchucvu=N'trưởng phòng'

and nhanvien.mapb=(select nhanvien.mapb

from nhanvien

where manv='nv003')

15 Đưa ra số lượng nhân viên theo trình độ học vấn

[37]

Trang 38

from nhanvien,trinhdohocvan

16.Đưa ra họ tên những nhân viên những nhân viên có họ là Hoàng

from nhanvien

17.Đưa ra tổng lương của nhân viên

from nhanvien,luong

18.Đưa ra số lượng nhân viên nam và số lượng nhân viên nữ

from nhanvien

19.Đưa ra họ tên, phòng ban của nhân viên có lương >15 000 000

from nhanvien,phongban luong,

nhanvien mapb phongban = mapb and

luongcoban hesoluong hesophucap 15000000*( + )>

20 Mức lương trung bình của một người ở mỗi phòng ban

from nhanvien,phongban luong,

[38]

Trang 39

where nhanvien.mapb=phongban.mapb and

nhanvien bacluong luong bacluong =

21.Đưa ra họ tên nhân viên có mức lương KHÔNG nằm trong khoảng 10 000 000 đến 15 000 000

from nhanvien,luong

and luongcoban hesoluong hesophucap *( + ) not between 10000000 and 15000000

22 Đưa ra họ tên những nhân viên có tên bắt đầu bằng H, kí tự thứ 3 là n

from nhanvien

23.Đưa ra số lượng nhân viên nam có quê ở Hải Dương

from nhanvien

and gioitinh='1'

24.Đưa ra những nhân viên có sinh nhật vào tháng 7 hoặc tháng 8 ở phòng kế toán

from nhanvien,phongban

andmonth(ngaysinh)in( , )7 8

and tenphongban =N'Kế toán'

25.Đưa ra họ tên, tuổi nhân viên có tuổi >30

[39]

Trang 40

select hodem,ten,datediff(yyyy,ngaysinh,getdate())as [Tuổi]

from nhanvien

F.Tạo 2 khung nhìn VIEW có nối 3 bảng Chụp màn hình của VIEW

G.Viết 4 thủ tục có viết lệnh gọi

1 Đưa ra danh sách mã nhân viên, họ tên của nhân viên thuộc phòng ban mà người dùng đưa ra

(@tenphongban nvarchar( ))50

as

from nhanvien,phongban

and tenphongban @tenphongban=

[40]

Trang 41

/*Lệnh gọi*/

exec dsnhanvienN'kế toán'

2 Sửa bậc lương của nhân viên có mã nhân viên người dùng đưa ra giống với bậc lương của nhân viên có mã nhân viên do người dùng đưa ra

(@manv1 varchar(10),@manv2 varchar(10))

as

update nhanvien

set bacluong=(select bacluong

from nhanvien

/*Lệnh gọi:*/

exec suabacluong'nv003' 'nv004',

3.Giải một bài toán nào đó

Thủ tục tìm ước chung lớn nhất theo thuật toán Euclid của 2 số a và b

4 Tìm bội chung nhỏ nhất của 2 số a và b

H.Viết 3 hàm có viết lệnh gọi

[41]

Trang 42

2.Đưa ra mã nhân viên, họ đệm, tên của trưởng phòng theo phòng ban mà người dùng đưa ra

(@phongban nvarchar(50))

returns table

as

from nhanvien,phongban chucvu,

and nhanvien macv chucvu macv =

and tenphongban @phongban=

and tenchucvu=N'trưởng phòng' )

/*lệnh gọi*/

I.Viết 1 trigger thực hiện một nhiệm vụ nào đó

[42]

Ngày đăng: 19/12/2024, 16:08

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w