Bài tập thực hành cơ sở dữ liệu SQL

11 580 3
Bài tập thực hành cơ sở dữ liệu SQL

Đ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

RDBMS – Bài thực hành 03 Câu lệnh: SELECT QUẢN LÝ BÁN HÀNG Sử dụng câu lệnh T-SQL Tạo CSDL ñể quản lý sản phẩm ñã bán cửa hàng, sở liệu có tên QLHANG, tạo bảng ñể lưu trữ thông tin sau: Bảng Customers: lưu trữ thông tin khách hàng: customerid, customername,tei Bảng Items: lưu trữ thông tin hàng hóa: itemid, itemname, quantity, prìce Bảng CustomerItem: lưu trữ thông tin sản phẩm ñã dược bán mua: customerid,itemid,quantity Nhập thông tin sau vào CSDL(Sử dụng câu lệnh T-SQL) a Nhập liệu bảng Customers sau b Nhập liệu bảng Items sau c Nhập thông tin vê hàng ñã bán ñược vào bảng CustomerItem sau RDBMS – Bài thực hành 03 ðặt ràng buộc khóa chính, khóa ngoại cho người dùng xóa ñược thông tin khách hàng khách hàng ñã mua sản phẩm Hiển thị tổng số tiền mà cửa hàng ñã thu ñược từ khách hàng Hiển thị tên, số tiền ñã mua người khách hàng ñã trả tiền cho cửa hàng nhiều Kiểm tra xem người khách có số ñiên thoại 2468888 có mua mặt hàng Tủ lạnh không? Nếu có mua dòng chũ “Có mua”, ngược lại “Không mua” Tính tổng số hàng hóa tổng tiền lại kho(Số lại tổng số trừ ñi số ñã bán) Hiển thị danh sách mặt hàng bán chạy (số lượng bán nhiều nhất) Hiển thị tất mặt hàng mà chưa bán ñược 10 Hiển thị danh sách người mua nhiều mặt hàng 11 Hiển thị danh sách người mua hàng có số lượng nhiều LỜI GIẢI CAU create table customers( customerid int not null, customername varchar(50), tel varchar(10)) go tao bang items RDBMS – Bài thực hành 03 create table items( itemid int not null, itemname varchar(50), quantity int, price float) go tao bang customeritem create table customeritem( customerid int, itemid int, quantity int) go CAU 2a insert customers values(1,'dinh truong son','1234567') insert customers values(2,'mai minh','1357777') insert customers values(3,'nguyen hong ha','2468888') go CAU 2b insert items values(1,'tu lanh',5,3500) insert items values(2,'tivi',2,3000) insert items values(3,'dieu hoa',1,8000) insert items values(4,'quat da',5,1700) insert items values(5,'may giat',3,5000) go CAU 2c insert customeritem values(1,1,4) RDBMS – Bài thực hành 03 insert customeritem values(1,5,1) insert customeritem values(2,2,1) insert customeritem values(3,3,1) insert customeritem values(3,1,1) go CAU alter table customers add constraint pk_customers primary key(customerid) go alter table customeritem add constraint fk_customeritem foreign key(customerid) references customers(customerid) go CAU select sum(customeritem.quantity*price) from customeritem inner join items on customeritem.itemid = items.itemid go CAU select top customername,sum(ci.quantity*price) from customers c inner join customeritem c.customerid = ci.customerid inner join items i on i.itemid =ci.itemid group by customername order by sum(ci.quantity*price) desc ci on RDBMS – Bài thực hành 03 go CAU if exists(select itemname from items inner join customeritem on items.itemid = customeritem.itemid inner join customers on customers.customerid = customeritem.customerid where itemname = 'tu lanh' and tel = '2468888') select 'co mua' else select 'khong mua' go CAU select sum(items.quantity-customeritem.quantity) as conlai, sum(customeritem.quantity*price) as tienlai from items inner join customeritem on items.itemid = customeritem.itemid go CAU select top itemname as top3 from items inner join customeritem on items.itemid = customeritem.itemid group by itemname order by sum(customeritem.quantity) desc go CAU select itemname as chuabanduoc from items where itemid not in RDBMS – Bài thực hành 03 (select itemid from customeritem) go CAU 10 select customername from customers where customerid in (select customerid from customeritem group by customerid having count(itemid)>1) go CAU 11 select customername from customers where customerid in(select customerid from customeritem group by customerid having sum(quantity) > 1) go Phần III: Tự làm 1.1 Câu Xây dựng sở liệu có tên LopHoc, có bảng liệu tên DSSV (danh sách sinh viên), bảng có trường liệu sau: Tên liệu Tên trường Loại liệu Mã sinh viên masv Chuỗi ký tự có ñúng ký tự Tên sinh viên tensv Chuỗi ký tự không vượt 32 ký tự Tuổi tuoi Số nguyên RDBMS – Bài thực hành 03 Số ñiện thoại sodt Chuỗi ký tự không 15 ký tự ðịa diachi Chuỗi ký tự không vượt 256 ký tự Sau tạo xong, thực yêu cầu sau: • Dùng lệnh ñể chèn danh sách sinh viên lớp bạn ñang học vào bảng DSSV • Sau tạo xong, dùng lệnh SELECT ñể hiển thị danh sách sinh viên ñã chèn vào • Dùng lệnh DELETE ñể xóa toàn danh sách • Xóa Bảng DSSV khỏi sở liệu LopHoc • Xóa Cơ sở liệu LopHoc 1.1.1 Hướng dẫn * ðể tạo sở liệu, ta nhập lệnh sau vào cửa sổ Query: CREATE DATABASE LopHoc; Tô ñậm lệnh bấn F5 ñể chạy * ðể tạo bảng mới, ta chuyển vào làm việc sở liệu (bằng lệnh USE), sau ñó tạo bảng lệnh sau: USE LopHoc; GO; CREATE TABLE DSSV ( masv nvarchar(6) PRIMARY KEY, tensv nvarchar(32), tuoi int, sodt nvarchar(15), diachi nvarchar(256) ) RDBMS – Bài thực hành 03 Nhập lệnh vào cửa sổ Query, tô ñậm vùng lệnh bấm F5 ñể chạy * ðể nhập liệu cho bảng, ta sử dụng câu lệnh INSERT sau: INSERT INTO DSSV (masv, tensv, tuoi, sodt, diachi) VALUES ('A012345', 'Pham Ngoc Hung', 32, '0982872507', 'Hoang Quoc Viet, Cau Giay, Ha Noi'); Câu lệnh chèn thêm dòng (bản ghi) liệu vào bảng DSSV Lưu ý liệu bên mệnh ñề VALUES phải ñúng kiểu ñúng trật tự với danh sách trường liệt kê sau tên DSSV (tức 'A012345' kiểu chuỗi, tương ứng phù hợp với trường masv có kiểu nvarchar(6), 32 số nguyên tương ứng với trường tuoi thuộc kiểu int, ) Chúng ta thêm ghi khác lệnh INSERT, với lưu ý giá trị trường masv ghi không ñược trùng lặp, trường trường khóa (PRIMARY KEY) * ðể thị liệu bảng DSSV, ta sử dụng lệnh sau: SELECT * FROM DSSV; Nếu muốn thị tất ghi bảng DSSV với liệu nằm trường masv, tensv, sodt, ta dùng lệnh sau: SELECT masv, tensv, sodt FROM DSSV; Khi ñó, kết chứa liệu tất ghi với trường masv, tensv sodt * ðể xóa tất liệu bảng, ta dùng lệnh sau: DELETE FROM DSSV; Sau thực lệnh này, tất ghi có bảng DSSV bị xóa * ðể xóa bảng DSSV không sử dụng bảng nữa, ta sử dụng lệnh sau: DROP TABLE DSSV; RDBMS – Bài thực hành 03 * ðể xóa sở liệu LopHoc, trước hết ta cần chuyển sang làm việc sở liệu khác gọi lệnh xóa sở liệu (tức ta "ñập ñổ" nhà sau ñã khỏi nhà ñó) USE master; chuyen sang csdl master DROP DATABASE LopHoc; 1.2 Câu Xây dựng sở liệu kho sách có tên KhoSach ñể chứa sách Cơ sở liệu có bảng có tên Sach, ñó có trường liệu sau: Tên liệu Tên trường Mã sách Dạng liệu Kiểu liệu masach (trường khóa) Chuỗi ký tự không nvarchar(20) Ràng buộc Trường khóa vượt 20 ký tự Tiêu ñề sách tieude Chuỗi ký tự không nvarchar(100) Không ñược bỏ vượt 100 ký tự trống (NOT NULL) Chuỗi ký tự không nvarchar(32) Không ñược bỏ vượt 32 ký tự trống ðồng tác giả dongtacgia Chuỗi ký tự không nvarchar(256) ðược phép bỏ trống Tác giả tacgiachinh vượt 256 ký tự, chứa danh sách ñồng tác giả, phân cách dấu phẩy Ngày xuất ngayxuatban Nhà xuất Trường kiểu ngày datetime tháng (DateTime) nhaxuatban Không ñược bỏ trống Chuỗi ký tự không nvarchar(256) ðược phép bỏ trống vượt 256 ký tự Giá bán (ghi dongia Số thực float Không ñược phép RDBMS – Bài thực hành 03 bìa) bỏ trống Số lượng soluong Số nguyên Không ñược phép int sách bỏ trống Sau ñã có bảng Sach, sử dụng lệnh INSERT ñể chèn sách vào bảng trên: masach tieude tacgiachinh dongtacgia ngayxuatba nhaxuatban dongia soluong n B00001 Phương trình Phạm Huy Phạm Cảnh 23/11/2001 NXB Khoa vi phân tích ðiển Dương, phân ðinh Thế 80000 1200 học kỹ thuật Lục 12/12/2005 NXB ðại học 75000 900 B00002 Giải tích hàm Phạm Kỳ Anh quốc gia Hà Nội B00101 ðất rừng ðoàn Giỏi 10/03/2003 NXB văn học 20000 2000 Chu Lai 13/11/2005 NXB văn học 54000 1500 Phạm Ngọc 12/12/2001 NXB văn học 12000 4000 phương nam B00102 Ăn mày dĩ vãng B00104 Một thời ñể nhớ Hùng Sau tạo chèn liệu vào bảng Sách CSDL KhoSach xong, thực việc sau: • Sử dụng lệnh SELECT ñể liệt kê toàn danh sách Sách có sở liệu • Sử dụng lệnh SELECT với ñiều kiện WHERE ñể lọc tất sách ñược xuất trước ngày26/03/2001 10 RDBMS – Bài thực hành 03 • Sử dụng lệnh SELECT với ñiều kiện WHERE hàm COUNT ñể ñếm số sách có giá nhỏ 60000 • Sử dụng lệnh DELETE với ñiều kiện WHERE ñể xóa sách tác giả 'Phạm Ngọc Hùng' 11 [...]...RDBMS – Bài thực hành 03 • Sử dụng lệnh SELECT với ñiều kiện WHERE và hàm COUNT ñể ñếm số sách có giá nhỏ hơn 60000 • Sử dụng lệnh DELETE với ñiều kiện WHERE ñể xóa sách của tác giả 'Phạm Ngọc Hùng' 11 ...RDBMS – Bài thực hành 03 ðặt ràng buộc khóa chính, khóa ngoại cho người dùng xóa ñược thông tin khách hàng... customerid int not null, customername varchar(50), tel varchar(10)) go tao bang items RDBMS – Bài thực hành 03 create table items( itemid int not null, itemname varchar(50), quantity int, price... da',5,1700) insert items values(5,'may giat',3,5000) go CAU 2c insert customeritem values(1,1,4) RDBMS – Bài thực hành 03 insert customeritem values(1,5,1) insert customeritem values(2,2,1) insert customeritem

Ngày đăng: 08/01/2016, 18:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan