[CSDL] BT Thực hành 1 truy vấn SQL – Phần 1

Bài viết này là phần 2 trong 3 bài của Series Cơ sở dữ liệu

1. Các quan hệ của CSDL quản lý bán hàng

Cho cơ sở dữ liệu quản lý bán hàng gồm có các quan hệ sau:

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính: mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá các hóa đơn của khách hàng thành viên này).

NHANVIEN (MANV,HOTEN, NGVL, SODT)

Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, mỗi nhân viên phân biệt với nhau bằng mã nhân viên.

SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)

Tân từ: Mỗi sản phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán.

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)

Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn, ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là khách hàng thành viên.

CTHD (SOHD,MASP,SL)

Tân từ: Diễn giải chi tiết trong mỗi hóa đơn gồm có những sản phẩm gì với số lượng là bao nhiêu.

Các bạn chạy SQL sau để thêm vào các dữ liệu ban đầu

 

2. Bảng thuộc tính của CSDL quản lý bán hàng

Quan hệThuộc tínhDiễn giảiKiểu dữ liệu
KHACHHANGMAKHMã khách hàngchar(4)
HOTENHọ tênvarchar(40)
DCHIĐịa chỉvarchar(50)
SODTSố điện thọaivarchar(20)
NGSINHNgày sinhsmalldatetime
NGDKNgày đăng ký thành viênsmalldatetime
DOANHSOTổng trị giá các hóa đơn khách hàng đã muamoney
NHANVIENMANVMã nhân viênchar(4)
HOTENHọ tênvarchar(40)
SODTSố điện thoạivarchar(20)
NGVLNgày vào làmsmalldatetime
SANPHAMMASPMã sản phẩmchar(4)
TENSPTên sản phẩmvarchar(40)
DVTĐơn vị tínhvarchar(20)
NUOCSXNước sản xuấtvarchar(40)
GIAGiá bánmoney
HOADONSOHDSố hóa đơnint
NGHDNgày mua hàngsmalldatetime
MAKHMã khách hàng nào muachar(4)
MANVNhân viên bán hàngchar(4)
TRIGIATrị giá hóa đơnmoney
CTHDSOHDSố hóa đơnint
MASPMã sản phẩmchar(4)
SLSố lượngint

3. Bài tập truy vấn SQL dựa trên CSDL quản lí bán hàng

1. In ra danh sách các sản phẩm chỉ lấy (MASP,TENSP) do “Trung Quoc” sản xuất.

2. In ra danh sách các sản phẩm chỉ lấy (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”

Câu này bạn có thể so sánh bằng trực tiếp tương tự như câu trên bằng cách tình những dòng thỏa DVT = ‘CAY’ OR DVT = ‘QUYEN’

Hoặc bạn có thể sử dụng tập hợp trong trường hợp này

3. In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”.

4. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000.

Sử dụng BETWEEN để thay cho GIA>=30000 AND GIA<=40000

5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Viet Nam” sản xuất có giá từ 30.000 đến 40.000.

Hoặc sử dụng lệnh BEETWEEN và tập hợp như sau:

6. In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007.

Hoặc sử dụng tập hợp như sau:

7. In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của hóa đơn (giảm dần).

Các bạn lấy tháng và năm bằng hàm MonthYear

Sắp xếp các dòng bằng cách sử dụng ORDER BY <tên thuộc tính> <cách sắp xếp ASC(tăng dần)|DESC(giảm dần)>

8. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007.

Hoặc

9. In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006.

10. In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *