33
PHAÀN I: GIÔÙI THIEÄU - Trong các rp chiếu phim hin nay, vic qun lý và tchc chiếu phim, bán vé luôn là vấn đề được quan tâm. Người qun lý luôn gp khó khăn trong vấn đề qun lý quá trình hoạt động ca tng bphn như: phim, lch chiếu, trang thiết bị… và đặc bit là quá trình bán vé. - Chức năng: Hệ thống quản lý rạp chiếu phim được xây dựng dựa trên những nhu cầu thực tế của khách hàng và nhà quản lý nhằm giải quyết những khó khăn gặp phải, giảm thiểu rủi ro trong quá trình quản lý rạp. Hệ thống hướng tới các đối tượng là khách hàng và những nhân viên quản lý trong rạp. Hệ thống có các chức năng chính bao gồm: quản lý phim, quản lý lịch chiếu, quản lý phòng chiếu, quản lý vé, đặt vé, quản lý người dùng và quản lý thông tin khách hàng . Các chức năng này giúp người quản lý dễ dàng điều khiển quá trình hoạt động của rạp và rất thuận tiện để khách hàng có thể mua được vé. PHAÀN II: TAÏO BAÛNG – NHAÄP DÖÕ LIEÄU 1. Taïo baûng - Gm 9 bng: Chi tiết chiếu phim, Phim, Vé , Dng phim, Loi phim, Khách hàng, Nhân viên, Loi vé, Phòng chiếu phim. Bng: Chi tiết chiếu phim - Câu lnh trONg SQL: CREATE TABLE ChiTietChieuPhim ( MaVe CHAR(10) not null, MaPhong CHAR(10) not null, MaPhim CHAR(10) not null, XuatChieu DATETIME, CONSTRAINT PK_ChiTietChieuPhim_MaVe PRIMARY KEY (MaVe) )

hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Embed Size (px)

Citation preview

Page 1: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

PHAÀN I: GIÔÙI THIEÄU - Trong các rạp chiếu phim hiện

nay, việc quản lý và tổ chức chiếu

phim, bán vé luôn là vấn đề được

quan tâm. Người quản lý luôn gặp

khó khăn trong vấn đề quản lý quá

trình hoạt động của từng bộ phận

như: phim, lịch chiếu, trang thiết

bị… và đặc biệt là quá trình bán vé.

- Chức năng: Hệ thống quản lý

rạp chiếu phim được xây dựng dựa

trên những nhu cầu thực tế của khách hàng và nhà quản lý nhằm giải quyết

những khó khăn gặp phải, giảm thiểu rủi ro trong quá trình quản lý rạp. Hệ

thống hướng tới các đối tượng là khách hàng và những nhân viên quản lý

trong rạp. Hệ thống có các chức năng chính bao gồm: quản lý phim, quản

lý lịch chiếu, quản lý phòng chiếu, quản lý vé, đặt vé, quản lý người dùng

và quản lý thông tin khách hàng. Các chức năng này giúp người quản lý dễ

dàng điều khiển quá trình hoạt động của rạp và rất thuận tiện để khách hàng

có thể mua được vé.

PHAÀN II: TAÏO BAÛNG – NHAÄP DÖÕ LIEÄU

1. Taïo baûng - Gồm 9 bảng: Chi tiết chiếu phim, Phim, Vé , Dạng phim, Loại phim,

Khách hàng, Nhân viên, Loại vé, Phòng chiếu phim.

Bảng: Chi tiết chiếu phim

- Câu lệnh trONg SQL:

CREATE TABLE ChiTietChieuPhim

(

MaVe CHAR(10) not null,

MaPhong CHAR(10) not null,

MaPhim CHAR(10) not null,

XuatChieu DATETIME,

CONSTRAINT PK_ChiTietChieuPhim_MaVe PRIMARY KEY

(MaVe)

)

Page 2: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Bảng: Phim

- Câu lệnh trONg SQL:

Bảng: Vé

- Câu lệnh trONg SQL:

CREATE TABLE Phim

(

MaPhim CHAR(10) not null,

MaLP CHAR(10) not null,

MaDP CHAR(10) not null,

TenPhim NVARCHAR(100) not null,

NSX DATETIME(100) not null,

CONSTRAINT PK_Phim_MaPhim PRIMARY KEY(MaPhim)

)

CREATE TABLE Ve

(

MaVe CHAR(10) not null,

MaLV CHAR(10) not null,

MaNV CHAR(10) not null,

MaKH CHAR(10) not null,

Ghe INT,

NgayBanVe DATETIME,

CONSTRAINT PK_Ve_Mave PRIMARY KEY(Mave)

)

Page 3: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Bảng: Dạng phim

- Câu lệnh trONg SQL:

Bảng: Loại phim

- Câu lệnh trONg SQL:

Bảng: Khách hàng

- Câu lệnh trONg SQL:

CREATE TABLE DangPhim

(

MaDP CHAR(10) not null,

DangPhim NVARCHAR(100) not null,

CONSTRAINT PK_DangPhim_MaDP PRIMARY KEY (MaDP)

)

CREATE TABLE LoaiPhim

(

MaLP CHAR(10) not null,

LoaiPhim NVARCHAR(100) not null,

CONSTRAINT PK_LoaiPhim_MaLP PRIMARY KEY (MaLP)

)

Page 4: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Bảng: Nhân viên

- Câu lệnh trONg SQL:

Bảng: Loại vé

- Câu lệnh trONg SQL:

Bảng: Phòng chiếu phim

CREATE TABLE KhachHang

(

MaKH CHAR(10) not null,

Hoten NVARCHAR(100) not null,

DiaChi NVARCHAR(100) not null,

SDT CHAR(100) not null,

NgaySinh DATETIME,

CONSTRAINT PK_Khachhang_MaKH PRIMARY KEY (MaKH)

)

CREATE TABLE NhanVien

(

MaNV CHAR(10) not null,

Hoten NVARCHAR(100) not null,

Diachi NVARCHAR(100) not null,

SDT CHAR(20) not null,

Ngaysinh DATETIME,

Phai NVARCHAR(10) not null,

CONSTRAINT PK_Nhanvien_MaNV PRIMARY KEY (MaNV)

)

CREATE TABLE LoaiVe

(

MaLV CHAR(10) not null,

TenLV NVARCHAR(10) not null,

DonGia INT,

CONSTRAINT PK_LoaiVe_MaLV PRIMARY KEY (MaLV)

)

Page 5: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

- Câu lệnh trONg SQL:

**Cuối cùng là tạo các khóa ngoại tham chiếu đến các bảng. Tuân thủ theo quy

tắc là tham chiếu từ nhiều sang ít. Các câu lệnh tạo khóa ngoại trONg SQL:

- Bảng Vé tham chiếu:

- Bảng Chi tiết chiếu phim tham chiếu:

- Bảng Phim tham chiếu:

CREATE TABLE PhongChieu

(

MaPhong CHAR(10) not null,

TenPhong NVARCHAR(100) not null,

CONSTRAINT PK_PhongChieu_MaPhong PRIMARY KEY(MaPhong)

)

ALTER TABLE Ve ADD CONSTRAINT FK_Ve_LoaiVe

FOREIGN KEY (MaLV) REFERENCES Loaive(MaLV)

ALTER TABLE Ve ADD CONSTRAINT FK_Ve_NhanVien

FOREIGN KEY (MaNV) REFERENCES NhanVien(MaNV)

ALTER TABLE Ve ADD CONSTRAINT FK_Ve_KhachHang

FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH)

ALTER TABLE Ve ADD CONSTRAINT FK_Ve_ChiTietChieuPhim

FOREIGN KEY (MaVe) REFERENCES

ChiTietChieuPhim(MaVe)

ALTER TABLE ChiTietChieuPhim ADD CONSTRAINT

FK_ChiTietChieuPhim_PhongChieu

FOREIGN KEY (MaPhong) REFERENCES

PhongChieu(MaPhong)

ALTER TABLE ChiTietChieuPhim ADD CONSTRAINT

FK_ChiTietChieuPhim_Phim

FOREIGN KEY (MaPhim) REFERENCES Phim(MaPhim)

ALTER TABLE ChiTietChieuPhim ADD CONSTRAINT

FK_ChiTietChieuPhim_PhongChieu

FOREIGN KEY (MaPhong) REFERENCES

PhongChieu(MaPhong)

ALTER TABLE ChiTietChieuPhim ADD CONSTRAINT

FK_ChiTietChieuPhim_Phim

FOREIGN KEY (MaPhim) REFERENCES Phim(MaPhim)

Page 6: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

2. NHAÄP DÖÕ LIEÄU - Đối với quá trình nhập dữ liệu bằng câu lệnh thì ta chú ý đến việc

nhập bảng nào trước, bảng nào nhập sau. Nếu không sẽ bị lỗi. quá trình

nhập bắt đầu từ: Loại phim, Dạng phim, Phim, Phòng chiếu, Nhân viên,

Khách hàng, Chi tiết chiếu phim, Loại vé và cuối cùng là Vé.

1. Loại Phim

Kết quả:

INSERT INTO LoaiPhim VALUES ('LP01',N'Kinh Dị')

INSERT INTO LoaiPhim VALUES ('LP02',N'Hành Ðộng')

INSERT INTO LoaiPhim VALUES ('LP03',N'Tình Cảm')

INSERT INTO LoaiPhim VALUES ('LP04',N'Kiếm Hiệp')

INSERT INTO LoaiPhim VALUES ('LP05',N'Khoa Học Viễn Tưởng')

INSERT INTO LoaiPhim VALUES ('LP06',N'Tài Liệu')

INSERT INTO LoaiPhim VALUES ('LP07',N'Phim Hài')

Page 7: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

2. Phim

Kết quả:

3. Phòng chiếu

INSERT INTO Phim VALUES ('MP01','LP01','DP02',N'Ngôi Nhà Số

10',N'Tepysocola')

INSERT INTO Phim VALUES ('MP02','LP02','DP01',N'12 Con

Giap','Kerberlux')

INSERT INTO Phim VALUES ('MP03','LP03','DP01',N'Chuyện Tình Mùa

Thu','Keypopy')

INSERT INTO Phim VALUES ('MP04','LP03','DP01',N'Ngôi Nhà Hạnh

Phúc','Brain')

INSERT INTO Phim VALUES ('MP05','LP05','DP02',N'Ngày Tận

Thế','Hollywold')

INSERT INTO Phim VALUES ('MP06','LP06','DP05',N'Chiến Trường Ðiện Biên

Phủ','SaiGonFilm')

INSERT INTO Phim VALUES ('MP07','LP07','DP01',N'Biết Chết Liền',N'My

Nguyễn')

INSERT INTO Phim VALUES ('MP08','LP01','DP01',N'Chơi

Ngãi','Pupachila')

INSERT INTO Phim VALUES ('MP09','LP03','DP01',N'Nấc Thang Len Thien

Ðường','Kypopupi')

INSERT INTO Phim VALUES ('MP010','LP02','DP01',N'Ðiệp Vien

007',N'Helequaly')

INSERT INTO PhongChieu VALUES ('PC01',N'Phòng 1')

INSERT INTO PhongChieu VALUES ('PC02',N'Phòng 2')

INSERT INTO PhongChieu VALUES ('PC03',N'Phòng 3')

INSERT INTO PhongChieu VALUES ('PC04',N'Phòng 4')

INSERT INTO PhongChieu VALUES ('PC05',N'Phòng 5')

INSERT INTO PhongChieu VALUES ('PC06',N'Phòng 6')

Page 8: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Kết quả:

4. Nhân Viên

5. Chi tiết phim

INSERT INTO NHANVIEN VALUES ('MaNV01',N'Le Thái Trần',N'20 Le

Duẩn,Quận Gò Vấp,TPHCM','0165538970','04/24/1980',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV02',N'Ðồng Quốc Cỏ',N'26B Tân

Phú,Quận Tân Bình,TPHCM','0934179463','07/14/1982',N'Nam')

INSERT INTO NHANVIEN VALUES ('MaNV03',N'Nguyễn Tuấn Anh',N'12/34

Nguyễn Oanh,Quận Gò Vấp,TPHCM','0126356784','09/11/1983',N'Nam')

INSERT INTO NHANVIEN VALUES ('MaNV04',N'Nguyễn Thu Hồng',N'01 Lý

Thường Kiệt,Quận 12,TPHCM','0188534678','11/25/1980',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV05',N'Trần Thu Hà ',N'125 Le Hồng

Thái,Quận 8,TPHCM','0165343970','08/21/1984',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV06',N'Phạm Thị Cẩm Phýợng',N'27A Le

Thái Sõn,Quận 1,TPHCM','096544680','09/07/1981',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV07',N'Le Huỳnh Bảo Tôn',N'13/34

Quang Trung,Quận 3,TPHCM','012258970','02/21/1983',N'Nam')

INSERT INTO NHANVIEN VALUES ('MaNV08',N'Nguyễn Thị Thanh Thu',N'60

Phan Vãn Trị,Quận Tân Bình,TPHCM','0188521970','01/10/1983',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV09',N'Hoàng Thu Hiền',N'46/12 Hà Huy

Hùng,Quận 9,TPHCM','0165633270','03/11/1984',N'Nữ')

INSERT INTO NHANVIEN VALUES ('MaNV010',N'Le Thành Ân',N'56 Nguyễn Vãn

Nghi,Quận 4,TPHCM','096234562','12/24/1981',N'Nam')

INSERT INTO ChiTietChieuPhim VALUES ('V01','PC01','MP01','2/5/2013')

INSERT INTO ChiTietChieuPhim VALUES ('V02','PC02','MP02','4/10/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V03','PC03','MP02','2/2/2013')

INSERT INTO ChiTietChieuPhim VALUES ('V04','PC04','MP03','6/5/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V05','PC01','MP01','6/10/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V06','PC03','MP03','12/5/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V07','PC04','MP06','1/6/2011')

INSERT INTO ChiTietChieuPhim VALUES ('V08','PC01','MP02','2/23/2010')

INSERT INTO ChiTietChieuPhim VALUES ('V09','PC02','MP01','3/15/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V010','PC03','MP05','7/25/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V011','PC04','MP02','2/22/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V012','PC01','MP03','7/29/2012')

INSERT INTO ChiTietChieuPhim VALUES ('V013','PC05','MP02','8/27/2011')

INSERT INTO ChiTietChieuPhim VALUES ('V014','PC02','MP03','2/24/2010')

INSERT INTO ChiTietChieuPhim VALUES ('V015','PC03','MP04','3/27/2011')

Page 9: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Kết quả:

6. Khách Hàng

Kết quả:

INSERT INTO KhachHang VALUES ('MaKH01',N' Ðồng Quốc Tiến',N'26A Lý

Thường Kiệt,Quận 2 ,TP Hồ Chí Minh','0123456778','7/20/1972')

INSERT INTO KhachHang VALUES ('MaKH02',N' Huỳnh Thị Anh Thý',N'36/27

Nguyễn Vãn Lượngng,Quận Gò Vấp ,TP Hồ Chí

Minh','0671839302','11/2/1991')

INSERT INTO KhachHang VALUES ('MaKH03',N' Nguyễn Ngọc Giang',N'Ký túc

Xá lam Sơn, Quận Gò Vấp ,TP Hồ Chí Minh','0999993456','1/1/1945')

INSERT INTO KhachHang VALUES ('MaKH04',N' Bùi Ngọc ',N' Nguyễn

Kiệm,Quận 6,TP Hồ Chí Minh','01346678899','1/11/1937')

INSERT INTO KhachHang VALUES ('MaKH05',N' Dýõng Thúy',N'Chợ Gò Vấp ,TP

Hồ Chí Minh','0597356778','09/09/1992')

INSERT INTO KhachHang VALUES ('MaKH06',N' Nguyễn Sáu',N' Quận Bình Tân

,TP Hồ Chí Minh','0198765443','12/12/1972')

INSERT INTO KhachHang VALUES ('MaKH07',N' Ðồng Quốc Tiến',N'27B Âu

Cõ,Quận 5 ,TP Hồ Chí Minh','0945566677','12/29/1972')

INSERT INTO KhachHang VALUES ('MaKH08',N' Trần Quốc Tuấn',N'26A Nguyễn

Du,Quận 6 ,TP Hồ Chí Minh','0122890378','7/27/1976')

INSERT INTO KhachHang VALUES ('MaKH09',N' Lýõng Thế Thành',N'26A Lý

Thái Sõn,Quận 2 ,TP Hồ Chí Minh','059156778','7/29/1971')

INSERT INTO KhachHang VALUES ('MaKH10',N' Ðồng Quốc Tiến',N'26A Lý

Thái Tổ,Quận 9 ,TP Hồ Chí Minh','0125916778','8/8/1971')

INSERT INTO KhachHang VALUES ('MaKH19',N' Cao Quốc Tiến',N'Ngã 6,

Nguyễn Oanh, Quận Gò Vấp ,TP Hồ Chí Minh','0109274778','11/7/1993')

INSERT INTO KhachHang VALUES ('MaKH20',N' Ðồ Thành Tiến',N'Ngã Tý Ga,

Nguyễn Oanh, Quận Gò Vấp ,TP Hồ Chí Minh','0974545878','9/7/1979')

Page 10: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

7. Loại Vé

Kết quả:

8. Vé

INSERT INTO LoaiVe VALUES ('LV01',N'VIP',200000)

INSERT INTO LoaiVe VALUES ('LV02',N'Thường',150000)

INSERT INTO LoaiVe VALUES ('LV03',N'Khuyến Mãi',100000)

INSERT INTO Ve VALUES ('V01','LV01','MaNV01','MaKH01',100,'2/10/2013')

INSERT INTO Ve VALUES ('V02','LV01','MaNV02','MaKH02',101,'5/10/2013')

INSERT INTO Ve VALUES ('V03','LV02','MaNV03','MaKH03',103,'3/1/2013')

INSERT INTO Ve VALUES ('V04','LV01','MaNV01','MaKH04',104,'4/16/2013')

INSERT INTO Ve VALUES ('V05','LV02','MaNV02','MaKH05',108,'6/21/2012')

INSERT INTO Ve VALUES ('V06','LV02','MaNV04','MaKH06',109,'7/30/2012')

INSERT INTO Ve VALUES ('V07','LV03','MaNV01','MaKH07',110,'8/10/2012')

INSERT INTO Ve VALUES ('V08','LV02','MaNV02','MaKH08',111,'9/12/2012')

INSERT INTO Ve VALUES ('V09','LV02','MaNV01','MaKH09',112,'10/22/2012')

INSERT INTO Ve VALUES ('V010','LV01','MaNV02','MaKH10',103,'11/10/2012')

INSERT INTO Ve VALUES ('V011','LV01','MaNV06','MaKH03',109,'12/12/2012')

INSERT INTO Ve VALUES ('V012','LV02','MaNV02','MaKH04',90,'07/12/2011')

INSERT INTO Ve VALUES ('V013','LV03','MaNV03','MaKH06',131,'2/11/2012')

INSERT INTO Ve VALUES ('V014','LV01','MaNV04','MaKH02',113,'09/18/2010')

INSERT INTO Ve VALUES ('V015','LV01','MaNV04','MaKH09',102,'12/20/2011')

Page 11: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Kết quả:

9. Dạng Phim

Kết quả:

3. Khung nhìn - view 1. Ðưa ra danh sách khách hàng có vé VIP trONg phòng chiếu số 2.Gồm các

thông tin: Mã KH, Họ tên Khách hàng, Mã vé, Số ghế.

INSERT INTO DangPhim VALUES ('DP01',N'2D')

INSERT INTO DangPhim VALUES ('DP02',N'3D')

INSERT INTO DangPhim VALUES ('DP03',N'4D')

INSERT INTO DangPhim VALUES ('DP05',N'Trắng Đen')

SELECT DISTINCT a.MaKH,HoTen,b.MaVe,Ghe

FROM (((KhachHang a INNER JOIN Ve b ON

a.MaKH=b.MaKH)

INNER JOIN LoaiVe c ON b.MaLV=c.MaLV)

INNER JOIN ChiTietChieuPhim d ON b.MaVe=d.MaVe)

INNER JOIN PhongChieu e ON d.Maphong=d.MaPhong

WHERE TenLV =N'VIP' AND TenPhong =N'Phòng 2'

Page 12: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

Xuất:

2. Tổng doanh thu các vé bán được.

Xuất:

3. Ðưa ra danh sách các phim được trình chiếu trong trong 6 đầu năm. Gồm

thông tin: Mã phim, Tên phim, Loại phim, Dạng phim, Nhà sản xuất

SELECT DISTINCT a.MaPhim,a.TenPhim,b.LoaiPhim,c.DangPhim,NSX

FROM ((Phim a INNER JOIN LoaiPhim b ON a.MaLP=b.MaLP)

INNER JOIN DangPhim c ON a.MaDP=c.MaDP)

INNER JOIN ChiTietChieuPhim d ON a.MaPhim=d.MaPhim

WHERE MONTH(XuatChieu)<=6

Xuất:

SELECT SUM(b.DonGia) AS 'Tổng thu' FROM Ve a

INNER JOIN LoaiVe b

ON a.MaLV=b.MaLV

Page 13: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

4. Viết các câu lệnh đưa ra danh sách nhân viên sắp xếp theo tuổi giảm dần

gồm các thông tin: Mã NV, Tên NV, Tuổi

SELECT MaNV,HoTen,YEAR(GETDATE())-YEAR(Ngaysinh)AS 'Tuoi'

FROM NhanVien

ORDER BY YEAR(GETDATE())-YEAR(Ngaysinh)DESC

Xuất:

5. Viết các câu lệnh đưa ra danh sách nhân viên có tuổi >30, sắp xếp tuổi

giảm dần. Gồm các thông tin: Mã NV, Tên NV, Tuổi

SELECT MaNV,HoTen,YEAR(GETDATE())-YEAR(NgaySinh)AS'Tuoi'

FROM NhanVien

WHERE YEAR(GETDATE())-YEAR(NgaySinh)>30

ORDER BY Tuoi DESC

Xuất:

6. Viết các câu lệnh đưa ra danh sách có khách hàng có vé khuyến mãi và

có họ 'Nguyễn'. Gồm các thông tin: Mã KH, Họ tên, Địa chỉ, Tuổi, Mã

vé, Đơn giá. SELECT b.MaKH,Hoten,DiaChi,TenLV,YEAR(GETDATE())-

YEAR(ngaysinh)AS'Tuoi'

FROM ((Ve a INNER JOIN KhachHang b ON a.MaKH=b.MaKH)

INNER JOIN LoaiVe c ON a.MaLV=c.MaLV)

Page 14: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

WHERE Hoten like N' Nguyễn%'AND TenLV =N'Thường'

Xuất:

7. Viết câu lệnh có danh sách khách hàng có tuổi >50 coi phim tình cảm

gồm các thông tin sau: Mã KH, Họ tên KH, Tuổi, Mã vé, Mã phim, Xuất

chiếu, Tên phim

SELECT b.MaKH,Hoten,YEAR(GETDATE())-

YEAR(NgaySinh)AS'Tuoi',TenPhim,LoaiPhim

FROM ((((Ve a INNER JOIN KhachHang b ON a.MaKH=b.MaKH)

INNER JOIN ChiTietChieuPhim c ON a.MaVe=c.MaVe)

INNER JOIN Phim d ON c.MaPhim =d.MaPhim)

INNER JOIN LoaiPhim e ON e.MaLP=d.MaLP)

WHERE YEAR(GETDATE())-YEAR(NgaySinh)>50 AND LoaiPhim= N'Tình

Cảm'

Xuất:

8. Liệt kê ra phim được nhiều người xem nhất. Gồm: Mã Phim, Tên Phim,

Số lượng

SELECT b.MaPhim,TenPhim,COUNT(b.MaVe)AS'so luong nguoi xem'

FROM Phim a INNER JOIN ChiTietChieuPhim b ON

a.MaPhim=b.MaPhim

GROUP BY b.MaPhim, a.TenPhim

HAVING

COUNT(b.MaVe)=(SELECT TOP 1 COUNT(b.MaVe)

FROM Phim a INNER JOIN ChiTietChieuPhim b ON

a.MaPhim=b.MaPhim GROUP BY b.MaPhim, a.TenPhim

ORDER BY COUNT(b.MaVe) DESC)

Xuất:

Page 15: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

9. Liệt kê ra phim được ít người xem nhất và phim được nhiều người xem

nhất. Gồm: Mã Phim, Tên Phim, Số lượng

SELECT b.MaPhim,TenPhim,COUNT(b.MaVe)AS 'so luong nguoi xem'

FROM Phim a INNER JOIN ChiTietChieuPhim b ON

a.MaPhim=b.MaPhim

GROUP BY b.MaPhim, a.TenPhim

HAVING

COUNT(b.MaVe)= (SELECT TOP 1 COUNT(b.MaVe)

FROM Phim a INNER JOIN ChiTietChieuPhim b ON

a.MaPhim=b.MaPhim GROUP BY b.MaPhim, a.TenPhim

ORDER BY COUNT(b.MaVe) ASC)

OR

COUNT(b.MaVe)=(SELECT TOP 1 COUNT(b.MaVe)

FROM Phim a INNER JOIN ChiTietChieuPhim b ON

a.MaPhim=b.MaPhim GROUP BY b.MaPhim, a.TenPhim

ORDER BY COUNT(b.MaVe) DESC)

Xuất:

10. Liệt kê ra những nhân viên không bán được vé nào. Gồm: MãNV,

TênNV, SĐT

SELECT MaNV, Hoten, SĐT FROM NhanVien

WHERE MaNV NOT IN (SELECT b.MaNV

FROM Ve a INNER JOIN NhanVien b ON a.MaNV=b.MaNV)

Xuất:

Page 16: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

11. Liệt kê ra những nhân viên bán được vé và đếm số vé mà họ bán được:

MãNV, TênNV, Số vé bán

SELECT b.MaNV,b.Hoten,COUNT(a.MaVe)AS'so luong ve ban'

FROM Ve a INNER JOIN NhanVien b ON a.MaNV = b.MaNV

GROUP BY b.MaNV ,b.Hoten

Xuất:

12. Liệt kê,đếm và tính số tiền của từng loại vé. Gồm: Mã LV, Tên LV, Số

lượng bán,Số tiền

SELECT a.MaLV,TenLV, COUNT(a.MaVe)AS'Số bán',SUM(b.DonGia) AS

'tongthu'

FROM Ve a INNER JOIN LoaiVe b ON a.MaLV=b.MaLV

GROUP BY a.MaLV,TenLV

Xuất:

13. Liệt kê, đếm và in ra số lượng vé bán được nhiều nhất và ít nhất. Gồm:

Tên loại vé, Mã loại vé.

SELECT TenLV,b.MaLV, COUNT(MaVe) AS 'Số bán'

FROM Ve a INNER JOIN LoaiVe b ON a.MaLV=b.MaLV

GROUP BY TenLV,b.MaLV

HAVING

COUNT(MaVe) = (SELECT TOP 1 COUNT(MaVe)

FROM Ve a INNER JOIN LoaiVe b ON a.MaLV=b.MaLV

GROUP BY TenLV,b.MaLV ORDER BY COUNT(MaVe))

OR

COUNT(MaVe) = (SELECT TOP 1 COUNT(MaVe)

FROM Ve a INNER JOIN LoaiVe b ON a.MaLV=b.MaLV GROUP BY

TenLV,b.MaLV ORDER BY COUNT(MaVe) DESC)

Xuất:

Page 17: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

14. Liệt ra danh sách khách hàng xem trên 2 lần. Gồm: Mã KH, Họ tên, Số

lần xem, Ðịa chỉ, SÐT.

SELECT a.MaKH, Hoten,COUNT(MaVe) AS N'Số lần xem', DiaChi,SDT

FROM Ve a INNER JOIN KhachHang b ON a.MaKH=b.MaKH

GROUP BY a.MaKH, Hoten,DiaChi,SDT HAVING COUNT(MaVe)>=2

Xuất:

15. Liệt kê ra loại phim không xem lần nào. Gồm : Mã Phim, Tên Phim.

SELECT MaPhim,TenPhim,NSX FROM Phim

WHERE MaPhim NOT IN (SELECT MaPhim FROM ChiTietChieuPhim)

Xuất:

4. HAØM VIEW – KHUNG NHÌN

1.VIEW thông tin về doanh thu từng loại vé

CREATE VIEW DOANHTHU AS

SELECT

a.MaLV,COUNT(a.MaVe)AS'Soluong',SUM(b.DonGia)AS'tongthu'

FROM Ve a INNER JOIN LoaiVe b

ON a.MaLV=b.MaLV

GROUP BY a.MaLV

SELECT * FROM DOANHTHU

Page 18: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

2.VIEW thông tin khách hàng: mã KH,tên, Địa chỉ, sđt, tuổi, mã vé,số ghế,

tên phim xem, phòng xem

CREATE VIEW TTKHACHHANG AS

SELECT a.MaKH, a.Hoten,a.DiaChi,a.SDT,

YEAR(GETDATE())-YEAR(ngaysinh) AS 'tuoi',

b.MaVe,b.Ghe,d.TenPhim,e.TenPhong

FROM (((KhachHang a INNER JOIN Ve b ON a.MaKH=b.MaKH)

INNER JOIN ChiTietChieuPhim c ON b.MaVe=c.MaVe)

INNER JOIN Phim d ON c.MaPhim=d.MaPhim)

INNER JOIN PhongChieu e ON c.MaPhong=e.MaPhong

SELECT * FROM TTKHACHHANG

3. VIEW thông tin các phim : mã phim, tên phim, loại phim, dạng phim,nsx

CREATE VIEW TTPHIM AS

SELECT DISTINCT

a.MaPhim,a.TenPhim,b.LoaiPhim,c.DangPhim,a.NSX

FROM (Phim a INNER JOIN LoaiPhim b ON a.MaLP=b.MaLP)

INNER JOIN DangPhim c ON a.MaDP=c.MaDP

SELECT * FROM TTPHIM

Page 19: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

4. VIEW thông tin phim đã được trình chiếu: mã phim, tên phim, loại

phim, dạng phim, nsx, phòng chiếu, ngày xuất chiếu.

CREATE VIEW TTPHIMDACHIEU AS

SELECT DISTINCT

a.MaPhim,a.TenPhim,b.LoaiPhim,c.DangPhim,a.NSX,d.XuatChieu,e.T

enPhong

FROM (((Phim a INNER JOIN LoaiPhim b ON a.MaLP=b.MaLP)

INNER JOIN DangPhim c ON a.MaDP=c.MaDP)

INNER JOIN ChiTietChieuPhim d ON a.MaPhim=d.MaPhim)

INNER JOIN PhongChieu e ON e.MaPhong=d.MaPhong

SELECT * FROM TTPHIMDACHIEU

--cai nay dung de dem phim chieu nhieu,it nhat

5.VIEW thông tin nhân viên bán được vé: maNV,tên,ðịa chỉ,sđt, tuổi, số

lượng vé bán

CREATE VIEW TTNVBANVE AS

SELECT a.MaNV, a.Hoten,a.Diachi,a.SDT,

YEAR(GETDATE())-YEAR(Ngaysinh)AS 'tuoi',COUNT (b.MaVe) AS

'soluongveban'

FROM NhanVien a INNER JOIN Ve b ON a.MaNV=b.MaNV

GROUP BY a.MaNV,a.Hoten,a.Diachi,a.SDT,a.NgaysINh

Page 20: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

SELECT * FROM TTNVBANVE

SELECT * FROM TTNVBANVE WHERE soluongveban>3

--dung de tim nv co doanh thu cao de khen thuong

6.VIEW thông tin phim: Mã Phim, Tên Phim, Dạng Phim, Loại Phim, Số

lượt xem

CREATE VIEW LUOTXEMPHIM AS

SELECT b.MaPhim,b.TenPhim,c.LoaiPhim,d.DangPhim,COUNT(a.MaVe)

AS

'soluotxem'

FROM ((ChiTietChieuPhim a INNER JOIN Phim b ON

a.MaPhim=b.MaPhim)

INNER JOIN LoaiPhim c ON b.MaLP=c.MaLP)

INNER JOIN DangPhim d ON b.MaDP=d.MaDP

GROUP BY b.MaPhim,b.TenPhim,c.LoaiPhim,d.DangPhim

SELECT * FROM LUOTXEMPHIM

Page 21: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

7.VIEW thông tin tất cả các nhân viên gồm:Mã NV, Tên NV,Ðịa Chỉ, SÐT,

Tuổi, Phái

CREATE VIEW TTNHANVIEN AS

SELECT MaNV,HoTen,Diachi,SDT,YEAR(GETDATE())-YEAR(Ngaysinh)AS

'tuoi',Phai

FROM NhanVien

SELECT * FROM TTNHANVIEN

8.VIEW thông tin vé Khách Hàng:Mã Vé, Loại Vé, Ðơn Gía,Tên KH, Phim

Xem, Phòng Chiếu, Loại Phim, Dạng Phim

CREATE VIEW TTVE AS

SELECT a.MaVe,b.TenLV,b.DonGia,h.Hoten,TenPhim,e.LoaiPhim,

f.DangPhim,g.TenPhong

FROM ((((((Ve a INNER JOIN LoaiVe b ON a.MaLV=b.MaLV)

INNER JOIN ChiTietChieuPhim c ON a.MaVe=c.MaVe)

INNER JOIN Phim d ON c.MaPhim=d.MaPhim)

INNER JOIN LoaiPhim e ON d.MaLP=e.MaLP)

INNER JOIN DangPhim f ON f.MaDP=d.MaDP)

INNER JOIN PhongChieu g ON g.MaPhong=c.MaPhong)

INNER JOIN KhachHang h ON h.MaKH=a.MaKH

SELECT * FROM TTVE

Page 22: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

9.VIEW thông tin phòng phim: Mã Phòng, Tên Phòng, Phim chiếu, Ngày

chiếu, số người xem

CREATE VIEW TTPHONG AS

SELECTa.TenPhONg,c.TenPhim,b.XuatChieu,COUNT(b.MaVe)AS

‘Songuoixem'

FROM (PhongChieu a INNER JOIN ChiTietChieuPhim b ON

a.MaPhong=b.MaPhong)

INNER JOIN Phim c ON b.MaPhim=c.MaPhim

GROUP BY a.TenPhong,c.TenPhim,b.XuatChieu

SELECT * FROM TTPHONG

10.VIEW chi tiết chiếu phim: Mã Phim, Tên Phim, Phòng Chiếu, Ngày

Chiếu CREATE VIEW CTCHIEU AS

SELECT a.MaPhim, b.TenPhim,c.TenPhong,a.XuatChieu

FROM (ChiTietChieuPhim a INNER JOIN Phim b

ON a.MaPhim=b.MaPhim)

INNER JOIN PhongChieu c ON A.MaPhong=C.MaPhong

SELECT * FROM CTCHIEU

Page 23: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

5. Haøm thuû tuïc - procedure

CÂU1: THÊM Khách Hàng vào bảng KhachHang

CREATE PROCEDURE NHAPKH

@MaKH char(10),

@HoTen NVARCHAR(100),

@Diachi NVARCHAR(100),

@SDT char(20),

@Ngaysinh datetime

AS

BEGIN

INSERT INTO KhachHang VALUES

(@MaKH,@HoTen,@Diachi,@SDT,@Ngaysinh)

END

GO

EXECUTE NHAPKH 'MaKH11', N'THU',N'TP','01234','9/21/1994'

CÂU 2:THÊM vào bảng Loại Vé

CREATE PROC NHAPLV

Page 24: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

@MaLV NVARCHAR (10),

@TenLV NVARCHAR(100),

@Dongia int

AS

BEGIN

INSERT INTO LoaiVe VALUES (@MaLV,@TenLV,@Dongia)

END

GO

EXECUTE NHAPLV 'LV04',N'Vé Mời',0

CÂU 3:THÊM phim vào bảng Phim

CREATE PROC NHAPPHIM

@MaPhim char(10),

@MaLP char(10),

@MaDP char (10),

@TenPhim NVARCHAR(100),

@NSX NVARCHAR(100)

AS

BEGIN

INSERT INTO Phim

VALUES(@MaPhim,@MaLP,@MaDP,@TenPhim,@NSX)

END

GO

EXECUTE NHAPPHIM 'MP11','LP02','DP03',N'PHI CƠ',N'ANHTHU'

Page 25: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 4 :SỬA thông tin Khách Hàng tùy ý

CREATE PROC SUAKH

@MaKH char(10),

@HoTen NVARCHAR (100),

@Diachi NVARCHAR(100),

@SDT char(20),

@NgaySinh datetime

AS

BEGIN

UPDATE KhachHang SET

Hoten=@HoTen,DiaChi=@DiaChi,SDT=@SDT,NgaySinh=@NgaySinh

FROM KhachHang

WHERE MaKH = @MaKH

END

GO

EXECUTE SUAKH @MaKH='MaKH09',@HoTen= N'HUỲNH THƯ',

@Diachi=N'TP',@SDT='01234',@NgaySinh='9/21/1994'

Page 26: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 5 :SỬA thông tin một Nhân Viên tùy ý

CREATE PROC SUANV

@MaNV char(10),

@HoTen NVARCHAR (100),

@Diachi NVARCHAR(100),

@SDT char(20),

@Ngaysinh datetime,

@Phai NVARCHAR(10)

AS

BEGIN

UPDATE NhanVien SET

Hoten=@HoTen,Diachi=@Diachi,SDT=@SDT,Ngaysinh=@Ngaysinh,Phai=@

Phai

FROM NhanVien

WHERE MaNV = @MaNV

END

GO

EXECUTE SUANV @MaNV='MaNV09',@HoTen= N'HUỲNH ANH

THƯ',@Diachi=N'TP',

@SDT='0123423',@NgaySinh='10/21/1994',@Phai=N'NỮ'

Page 27: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 6:SỬA thông tin một Phim tùy ý

CREATE PROC SUAphim

@MaPhim char(10),

@MaLP char (10),

@MaDP char(10),

@TenPhim NVARCHAR(100),

@NSX NVARCHAR(100)

AS

BEGIN

UPDATE Phim SET

MaLP=@MaLP,MaDP=@MaDP,TenPhim=@TenPhim,NSX=@NSX

FROM Phim

WHERE MaPhim = @MaPhim

END

GO

EXECUTE SUAphim 'MP07','LP06','DP01',N'PHỐ',N'ANHTHU'

Page 28: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 7: XÓA một Nhân Viên tùy ý

CREATE PROC XOANV

@MaNV NVARCHAR(10)

AS

BEGIN

DELETE FROM NhanVien WHERE MaNV=@MaNV

END

GO

EXECUTE XOANV @MaNV='MaNV06'

CÂU 8: XÓA một Khách Hàng tùy ý

CREATE PROC XOAKH

@MaKH NVARCHAR(10)

AS

BEGIN

DELETE FROM KhachHang WHERE MaKH=@MaKH

END

GO

EXECUTE XOAKH @MaKH='MaKH06'

Page 29: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 9: ĐƯA thông tin Khách Hàng có Họ tùy ý. VD: Họ Nguyễn.

CREATE PROC ql_hoKH

@ho NVARCHAR (100)

AS

BEGIN

SELECT * FROM KhachHang

WHERE Hoten LIKE @ho+'%'

END

GO

EXECUTE ql_hoKH N'Nguyễn'

DROP PROC ql_hoKH

CÂU 10: ÐƯA ra danh sách Phim thuộc Loại Phim bất kì

CREATE PROC DSPHIM

@LoaiPhim NVARCHAR (100)

AS

BEGIN

SELECT a.MaPhim,a.TenPhim,b.LoaiPhim,a.NSX

FROM Phim a INNER JOIN LoaiPhim b ON a.MaLP=b.MaLP

WHERE LoaiPhim=@LoaiPhim

END

GO

EXECUTE DSPHIM @LoaiPhim=N'Kinh Dị'

Page 30: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CÂU 11 : ÐƯA ra danh sách Phim thuộc Dạng Phim bất kì

CREATE PROC DSPHIMDANG

@DangPhim NVARCHAR (100)

AS

BEGIN

SELECT a.MaPhim,a.TenPhim,b.DangPhim,a.NSX

FROM Phim a INNER JOIN DangPhim b ON a.MaDP=b.MaDP

WHERE DangPhim=@DangPhim

END

GO

EXECUTE DSPHIMDANG @DangPhim=N'3D'

CÂU 12: cập nhật Giá(tăng hay giảm) tất cả các loại vé với tỉ

lệ nhập từ bàn phím

--VD:tăng đồng loạt các loại vé 10%

CREATE PROC CAPNHATGIA

@tile float

AS

BEGIN

UPDATE LoaiVe SET DonGia =DonGia + DonGia* @tile FROM LoaiVe

END

GO

EXECUTE CAPNHATGIA @tile=0.01

CÂU 13 :cập nhât Giá với loại vé và tỉ lệ nhập từ bàn phím

--VD:tãng vé vip thêm 10%

Page 31: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

CREATE PROC CAPNHATGIATUNGLOAI

@tile float,

@TenLV NVARCHAR(100)

AS

BEGIN

UPDATE LoaiVe SET DonGia =DonGia + DonGia* @tile

WHERE TenLV=@TenLV

END

GO

EXECUTE CAPNHATGIATUNGLOAI @tile=0.01,@TenLV=N'VIP'

CÂU 14 : Liệt số Lượt Xem của 1 một Phim bất kỳ nhập từ bàn

phím.

--c1:sử dụng tham biến

CREATE PROC ql_LX

@tenphim NVARCHAR(100)=null,

@luotxem INT =null OUTPUT

AS

BEGIN

SELECT @luotxem= COUNT(MaVe)

FROM ChiTietChieuPhim a INNER JOIN Phim b

ON a.MaPhim=b.MaPhim

WHERE TenPhim=@tenphim

END

GO

DECLARE @luotxem INT

EXECUTE ql_LX N'12 CON Giap',

@luotxem OUTPUT

SELECT @luotxem

--Cách 2:không dùng tham biến

CREATE PROC ql_LX1

@tenphim NVARCHAR(100)

AS

BEGIN

SELECT TenPhim,COUNT(MaVe)AS 'luotxem'

FROM ChiTietChieuPhim a INNER JOIN Phim b

ON a.MaPhim=b.MaPhim

WHERE TenPhim=@tenphim

GROUP BY TenPhim

END

Page 32: hệ quản trị cơ sỡ dữ liệu bán vé xem phim

GO

EXECUTE ql_LX1 @tenphim= N'12 CON Giap'

CÂU 15 :Thủ tục: Liệt kê ra những người bán được vé và

những người không bán được vé nào. Nhập vào 'Bán được'

thì sẽ xuất ra danh sách bán được vé. Còn nhập vào bất kỳ

ký tự nào sẽ ra không bán được vé.

CREATE PROCEDURE ql_NhanVien

@tenthaotac NAARCHAR(100)

AS

IF(@tenthaotac=N'Bán được')

BEGIN

SELECT MaNV,Hoten,Diachi,SDT FROM NhanVien

WHERE MaNV IN (SELECT a.MaNV FROM Ve a INNER JOIN

NhanVien b

ON a.MaNV=b.MaNV)

END

ELSE

BEGIN

SELECT MaNV,Hoten,Diachi,SDT FROM NhanVien

WHERE MaNV NOT IN (SELECT a.MaNV FROM Ve a INNER JOIN

NhanVien b

ON a.MaNV=b.MaNV)

END

--Nhập vào 'Bán Được' thì sẽ IN ra nhân viên bán Được vé

GO

EXECUTE ql_NhanVien

@tenthaotac=N'Bán được'

Page 33: hệ quản trị cơ sỡ dữ liệu bán vé xem phim