Top 5 # Bài Tập Sql Có Lời Giải Xem Nhiều Nhất, Mới Nhất 3/2023 # Top Trend | Caffebenevietnam.com

Tổng Hợp 10 Bài Tập Truy Vấn Sql Có Lời Giải Hay Cho Học Sinh

Tổng hợp bài tập truy vấn SQL có lời giải hay :

Câu hỏi 1 : Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:

Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10))GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10))SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30))DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30))HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2))

Các lệnh SQL tạo bảng Đầu tiên bạn cần thực hiện lệnh tạo Data Base trước như sau : Nhập dữ liệu cho từng bảng : Thêm dữ liệu vào bảng Khoa :

Thêm dữ liệu vào bảng Giảng Viên :

Thêm dữ liệu vào bảng SInh Viên : Thêm dữ liệu vào bảng Đề Tài : Thêm dữ liệu vào bảng Hướng Dẫn :

Câu hỏi 2 : Cũng cùng nội dung câu hỏi trên bạn hãy đưa ra thông tin gồm mã số, họ tên và tên khoa của tất cả các giảng viên .

SELECT GV.Magv, GV.Hotengv, K.Tenkhoa

Câu hỏi 3 : Sử dụng lệnh xuất ra mã số, họ tên, tên khoa của các giảng viên hướng dẫn từ 3 sinh viên trở lên.

Câu hỏi 4 : Sử dụng lệnh SQL để xuất ra thông tin về những sinh viên chưa có điểm thực tập .

Câu hỏi 5 : Thực hiện lệnh SQL xuất ra số điện thoại của khoa mà sinh viên có tên ‘Le van son’ đang theo học .

Câu hỏi 6 : Sử dụng lệnh truy vấn SQL lấy ra mã số và tên các đề tài có nhiều hơn 2 sinh viên tham gia thực tập .

Câu hỏi 7 : Sử dụng câu lệnh truy vấn SQL lấy ra mã số, tên đề tài của đề tài có kinh phí cao nhất .

Câu hỏi 8 : Sử dụng câu lệnh SQL xuất ra Tên khoa, Số lượng sinh viên của mỗi khoa .

Câu hỏi 9 : Sử dụng truy vấn SQL xuất ra mã số, họ tên và điểm của các sinh viên khoa ‘DIALY và QLTN’ .

SELECT SV.Masv,SV.Hotensv,HD.KetQua

Câu hỏi 10 : Sử dụng câu lệnh SQL xuất ra danh sách gồm Mã số, Họ tên và Tuổi của các sinh viên khoa ‘TOAN’ .

Bài Tập Sql Cơ Bản

Bài 1: Để quản lý Thực tập nghề nghiệp của sinh viên, người ta xây dựng một cơ sở dữ liệu có tên là ThucTap gồm các sơ đồ quan hệ sau:

Khoa(makhoa char(10), tenkhoa char(30), dienthoai char(10))GiangVien(magv int, hotengv char(30), luong decimal(5,2), makhoa char(10))SinhVien(masv int, hotensv char(30), makhoa char(10), namsinh int, quequan char(30))DeTai(madt char(10), tendt char(30), kinhphi int, NoiThucTap char(30))HuongDan(masv int, madt char(10), magv int, ketqua decimal(5,2))

A. Sử dụng SSMS để tạo lập và nhập dữ liệu cho CSDL

B. Chỉ sử dụng 01 lệnh SQL trả lời các yêu cầu sau:

I

Đưa ra thông tin gồm mã số, họ tênvà tên khoa của tất cả các giảng viên

Đưa ra thông tin gồm mã số, họ tênvà tên khoa của các giảng viên của khoa ‘DIA LY va QLTN’

Cho biết số sinh viên của khoa ‘CONG NGHE SINH HOC’

Đưa ra danh sách gồm mã số, họ tênvà tuổi của các sinh viên khoa ‘TOAN’

Cho biết số giảng viên của khoa ‘CONG NGHE SINH HOC’

Cho biết thông tin về sinh viên không tham gia thực tập

Đưa ra mã khoa, tên khoa và số giảng viên của mỗi khoa

Cho biết số điện thoại của khoa mà sinh viên có tên ‘Le van son’ đang theo học

II

Cho biết mã số và tên của các đề tài do giảng viên ‘Tran son’ hướng dẫn

Cho biết tên đề tài không có sinh viên nào thực tập

Cho biết mã số, họ tên, tên khoa của các giảng viên hướng dẫn từ 3 sinh viên trở lên.

Cho biết mã số, tên đề tài của đề tài có kinh phí cao nhất

Cho biết mã số và tên các đề tài có nhiều hơn 2 sinh viên tham gia thực tập

Đưa ra mã số, họ tên và điểm của các sinh viên khoa ‘DIALY và QLTN’

Đưa ra tên khoa, số lượng sinh viên của mỗi khoa

Cho biết thông tin về các sinh viên thực tập tại quê nhà

Hãy cho biết thông tin về những sinh viên chưa có điểm thực tập

Đưa ra danh sách gồm mã số, họ tên các sinh viên có điểm thực tập bằng 0

Ok xong phần bài tập sql cơ bản nha !!! Cái này làm nhiều ắt sẽ quen tay, mà cái nào chả vậy 😀

Cho đi kiến thức bạn đang có là cách tuyệt vời để nâng cao trình độ của bản thân!

Bài Tập Tổng Hợp Sql Kèm Đáp Án

2. 1 Cho biết danh sách các đối tác cung cấp hàng cho công ty.

2. 2 Mã hàng, tên hàng và số lượng của các mặt hàng hiện có trong công ty.

2. 3 Họ tên và điạ chỉ và năm bắt đầu làm việc của các nhân viên trong công ty.

2. 4 địa chỉ và điện thoại của nhà cung cấp có tên giao dch VINAMILK là gì?

2. 5 Cho biết mã và tên của các mặt hàng có giá lớn hơn 100000 và số lượng có ít hn

2. 6 Cho biết mỗi mặt hàng trong công ty do ai cung cấp.

2. 7 Công ty Vit Tin đã cung cp nhng mt hàng nào?

2. 8 Loại hàng thực phẩm do những công ty nào cung cấp và địa chỉ của các công ty đó

2. 9 Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng Sữa hộp XYZ của

2. 10 đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thi gian và địa điểm giao

hàng là ở đâu?

khachhang.dienthoai = nhacungcap.dienthoai, chúng tôi = nhacungcap.fax, khachhang.email = nhacungcap.email FROM nhacungcap WHERE khachhang.tencongty = nhacungcap.tencongty AND khachhang.tengiaodich = nhacungcap.tengiaodich 2.37 UPDATE nhanvien SET luongcoban=luongcoban*1.5 WHERE manhanvien = (SELECT manhanvien FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon WHERE manhanvien=nhanvien.manhanvien GROUP BY manhanvien 2.38 UPDATE nhanvien SET phucap=luongcoban/2 WHERE manhanvien IN (SELECT manhanvien FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon GROUP BY manhanvien (SELECT SUM(soluong) FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon=chitietdathang.sohoadon GROUP BY manhanvien)) 2.39 UPDATE nhanvien SET luongcoban=luongcoban*0.85 WHERE NOT EXISTS (SELECT manhanvien FROM dondathang WHERE manhanvien=nhanvien.manhanvien) Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom 2.40 UPDATE dondathang SET sotien = (SELECT SUM(soluong*giaban+soluong*giaban*mucgiamgia) FROM chitietdathang WHERE sohoadon=dondathang.sohoadon GROUP BY sohoadon) 2.41 DELETE FROM nhanvien 2.42 DELETE FROM dondathang WHERE ngaydathang<'1/1/2000' 2.43 DELETE FROM loaihang WHERE NOT EXISTS (SELECT mahang FROM mathang WHERE maloaihang=loaihang.maloaihang) 2.44 DELETE FROM khachhang WHERE NOT EXISTS (SELECT sohoadon FROM dondathang WHERE makhachhang=khachhang.makhachhang) 2.45 DELETE FROM mathang WHERE soluong=0 AND NOT EXISTS (SELECT sohoadon FROM chitietdathang WHERE mahang=mathang.mahang) Bài 4 Q1: Bổ sung ràng buộc thiết lập giá trị mặc định bằng 1 cho cột SOLUONG và bằng 0 cho cột MUCGIAMGIA trong bảng CHITIETDATHANG Q2: Bổ sung cho bảng DONDATHANG ràng buộc kiểm tra ngày giao hàng và ngày chuyển hàng phải sau hoặc bằng với ngày đặt hàng. Q3 Bổ sung ràng buộc cho bảng NHANVIEN để đảm bảo rằng một nhân viên chỉ có thể làm việc trong công ty khi đủ 18 tuổi và không quá 60 tuổi. Q4 Với các bảng đã tạo được, câu lệnh: DROP TABLE nhacungcap có thể thực hiện được không? Tại sao? Q5 Cho khung nhìn được định nghĩa như sau: CREATE VIEW view_donhang AS SELECT dondathang.sohoadon,makhachhang,manhanvien, ngaydathang,ngaygiaohang,ngaychuyenhang, noigiaohang,mahang, giaban,soluong,mucgiamgia FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon = chitietdathang.sohoadon a. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng DONDATHANG được không? b. Có thể thông qua khung nhìn này để bổ sung dữ liệu cho bảng Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom CHITIETDATHANG được không? Q6 Với khung nhìn được định ngha như sau: CREATE VIEW view_donhang AS SELECT dondathang.sohoadon,makhachhang,manhanvien, ngaydathang,ngaygiaohang,ngaychuyenhang, noigiaohang,mahang, giaban*soluong as thanhtien, mucgiamgia FROM dondathang INNER JOIN chitietdathang ON dondathang.sohoadon = chitietdathang.sohoadon a. Có thể thông qua khung nhìn này để xoá hay cập nhật dữ liệu trong bảng DONDATHANG được không? b. Có thể thông qua khung nhìn này để cập nhật dữ liệu trong bảng CHITIETDATHANG được không? Lời giải Q1 ALTER TABLE chitietdathang ADD CONSTRAINT df_chitietdathang_soluong DEFAULT(1) FOR soluong, CONSTRAINT df_chitietdathang_mucgiamgia DEFAULT(0) FOR Mucgiamgia Q2 ALTER TABLE dondathang ADD CONSTRAINT chk_dondathang_ngay Q3 ALTER TABLE nhanvien ADD CONSTRAINT chk_nhanvien_ngaylamviec CHECK (datediff(yy,ngaysinh,ngaylamviec) BETWEEN 18 AND 60) Q4 Câu lệnh không thực hiện được do bảng cần xoá đang được tham chiếu bởi bảng MATHANG Q5 a. Không. b. Không Q6 a.Có thể cập nhật nhưng không thể xoá b. Có thể được Bài Dụa trên cơ sở dữ liệu bài tập chương 2, thực hiện các yêu cầu sau: 5.1 Tạo thủ tục lưu trữ để thông qua thủ tục này có thể bổ sung thêm một bản ghi mới cho bảng MATHANG (thủ tục phải thực hiện kiểm tra tính hợp lệ cửa dữ liệu cần bổ sung: không trùng khoá chính và đảm bảo toàn vẹn tham chiếu) 5.2 Tạo thủ tục lưu trữ có chức năng thống kê tổng số lượng hàng bán được của một mặt hàng có mã bất kỳ (mã mặt hàng cần thống kê là tham số Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom Của thủ tục). 5.3 Viết hàm trả về một bảng trong đó cho biết tổng số lượng hàng bán của mỗi mặt hàng. Sử dụng hàm này thống kê xem tổng số lượng hàng (hiện có và đã bán) của mỗi mặt hàng là bao nhiêu. 5.4 Viết trigger cho bảng CHITIETDATHANG theo yêu cầu sau: · Khi một bản ghi mới được bổ sung vào bảng này thì giảm số lượng hàng hiện có nếu số lượng hàng hiện có lớn hơn hoặc bằng số lượng hàng được bán ra. Ngược lại thì huỷ bỏ thao tác bổ sung. · Khi cập nhật lại số lượng hàng đươc bán, kiểm tra số lượng hàng được cập nhật lại có phù hợp hay không (số lượng hàng bán ra không Được vượt quá số lượng hàng hiện có và không được nhỏ hơn 1). Nếu dữ liệu hợp lệ thì giảm (hoặc tăng) số lượng hàng hiện có trong công ty, ngượ lại thì huỷ bỏ thao tác cập nhật. 5.5 Viết trigger cho bảng CHITIETDATHANG sao cho chỉ chấp nhận giá hàng bán ra phải nhỏ hơn hoặc bằng giá gốc (giá của mặt hàng trong bảng MATHANG) 5.6 quản lý các bản tin trong một Website, người ta sử dụng hai bảng sau: Bảng LOAIBANTIN (loại bản tin) CREATE TABLE loaibantin ( maphanloai INT NOT NULL PRIMARY KEY, tenphanloai NVARCHAR(100) NOT NULL , bantinmoinhat INT DEFAULT(0) ) Bng BANTIN (bn tin) CREATE TABLE bantin ( maso INT NOT NULL PRIMARY KEY, ngayduatin DATETIME NULL , tieude NVARCHAR(200) NULL , noidung NTEXT NULL , maphanloai INT NULL FOREIGN KEY REFERENCES loaibantin(maphanloai) ) Trong bng LOAIBANTIN, giá trị cột BANTINMOINHAT cho biết mã số của bản tin thuộc loại tương ứng mới nhất (dược bổ sung sau cùng). Hãy viết các trigger cho bảng BANTIN sao cho: · Khi một bản tin mới được bổ sung, cập nhật lại cột BANTINMOINHAT Của dòng tương ứng với loại bản tin vừa bổ sung. · Khi một bản tin bị xoá, cập nhật lại giá trị của cột BANTINMOINHAT trong bảng LOAIBANTIN của dòng ứng với loại bản tin vừa xóa là mã số của bản tin trước đó (dựa vào ngày đưa tin). Nếu không còn bản tin nào cùng loại thì giá trị của cột này bằng 0. Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom · Khi cập nhật lại mã số của một bản tin và nếu nó là bản tin mới nhất thì cập nhật lại giá trị cột BANTINMOINHAT là mã số mới. Lời giải 5.1 CREATE PROCEDURE sp_insert_mathang( @mahang NVARCHAR(10), @tenhang NVARCHAR(50), @macongty NVARCHAR(10) = NULL, @maloaihang INT = NULL, @soluong INT = 0, @donvitinh NVARCHAR(20) = NULL, @giahang money = 0) AS IF NOT EXISTS(SELECT mahang FROM mathang WHERE mahang=@mahang) IF (@macongty IS NULL OR EXISTS(SELECT macongty FROM nhacungcap WHERE macongty=@macongty)) AND (@maloaihang IS NULL OR EXISTS(SELECT maloaihang FROM loaihang WHERE maloaihang=@maloaihang)) INSERT INTO mathang VALUES(@mahang,@tenhang, @macongty,@maloaihang, @soluong,@donvitinh,@giahang) 5.2 CREATE PROCEDURE sp_thongkebanhang(@mahang NVARCHAR(10)) AS SELECT mathang.mahang,tenhang, SUM(chitietdathang.soluong) AS tongsoluong FROM mathang LEFT OUTER JOIN chitietdathang ON mathang.mahang=chitietdathang.mahang WHERE mathang.mahang=@mahang GROUP BY mathang.mahang,tenhang 5.3 nh ngha hàm: CREATE FUNCTION func_banhang() RETURNS TABLE AS RETURN (SELECT mathang.mahang,tenhang, CASE WHEN sum(chitietdathang.soluong) IS NULL THEN 0 ELSE sum(chitietdathang.soluong) END AS tongsl Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom FROM mathang LEFT OUTER JOIN chitietdathang ON mathang.mahang = chitietdathang.mahang GROUP BY mathang.mahang,tenhang) S dng hàm ã nh ngha: SELECT a.mahang,a.tenhang,soluong+tongsl FROM mathang AS a INNER JOIN dbo.func_banhang() AS b ON a.mahang=b.mahang 5.4 CREATE TRIGGER trg_chitietdathang_insert ON chitietdathang FOR INSERT AS BEGIN DECLARE @mahang NVARCHAR(100) DECLARE @soluongban INT DECLARE @soluongcon INT SELECT @mahang=mahang,@soluongban=soluong FROM inserted SELECT @soluongcon=soluong FROM mathang WHERE mahang=@mahang UPDATE mathang SET soluong=soluong-@soluongban WHERE mahang=@mahang ELSE ROLLBACK TRANSACTION END CREATE TRIGGER trg_chitietdathang_update_soluong ON chitietdathang FOR UPDATE AS IF UPDATE(soluong) BEGIN IF EXISTS(SELECT sohoadon FROM inserted WHERE soluong<0) ROLLBACK TRANSACTION ELSE BEGIN UPDATE mathang SET soluong=soluong- (SELECT SUM(inserted.soluong-deleted.soluong) FROM inserted INNER JOIN deleted ON inserted.sohoadon=deleted.sohoadon AND inserted.mahang=deleted.mahang WHERE inserted.mahang=mathang.mahang GROUP BY inserted.mahang) WHERE mahang IN (SELECT DISTINCT mahang Tổng hợp SQL - SGL - Plassma : Software Group Leader SGL By Member: htplasma, Plassma :for Vn-zoom FROM inserted) IF EXISTS(SELECT mahang FROM mathang WHERE soluong<0) ROLLBACK TRANSACTION END END 5.5 CREATE TRIGGER trg_chitietdathang_giaban ON chitietdathang FOR INSERT,UPDATE AS IF UPDATE(giaban) IF EXISTS(SELECT inserted.mahang FROM mathang INNER JOIN inserted ON mathang.mahang=inserted.mahang ROLLBACK TRANSACTION Tổng hợp SQL - SGL - Plassma :

Bài Tập Diode Có Lời Giải

TÓM TẮT LÝ THUYẾT VÀ BÀI TẬP PHẦN DIODEMÔN KỸ THUẬT ĐIỆN TỬQuan hệ giữa dòng điện và điện áp

với: IS: dòng điện (ngược) bão hòa VT: điện thế nhiệt η: hệ số thực tế, có giá trị từ 1 đến 2

Hình 1-1 Đặc tuyến diode phân cực thuậnĐiện trở AC (điện trở động)

Ngoài rD, còn tồn tại điện trở tiếp xúc (bulk) rB,thường có trị số rất nhỏ và được bỏ qua.Điện trở DC

Phân tích mạch DC có diodeTa có thể thay thế diode trong mạch bởi một nguồn áp 0,7V (nếu là diode Si) hoặc 0,3V (nếu là diode Ge) bất cứ khi nào mà diode có dòng phân cực thuận phía trên điểm knee.

Hình 1-2 Diode phân cực thuận (a) có thể thay thế bởi một nguồn áp (b)Vì vậy, để phân tích điện áp và dòng diện DC trong mạch có chứa diode, ta có thể thay thế đặc tuyến V-A như hình 1-3.

Hình 1-3 Đặc tuyến lý tưởng hóaVí dụ 1-1Giả sử rằng diode Si trên hình 1-4 đòi hỏi dòng tối thiểu là 1 mA để nằm trên điểm knee.

Hình 1-4 (Ví dụ 1-1)1. Trị số R là bao nhiêu để dòng trong mạch là 5 mA?2. Với trị số R tính ở câu (1), giá trị tối thiểu của E là bao nhiêu để duy trì diode ở trên điểm knee?Giải1. Trị số của R

2. Giá trị tối thiểu của E

Phân tích mạch diode với tín hiệu nhỏMột cách tổng quát, các linh kiện thể xem xét hoạt động ở hai dạng: tín hiệu nhỏ vá tín hiệu lớn. Trong các ứng dụng tín hiệu nhỏ, điện áp và dòng điện trên linh kiện một tầm rất giới hạn trên đặc tuyến V-A. Nói cách khác, đại lượng ΔV và ΔI rất nhỏ so với tầm điện áp và dòng điện mà linh kiện hoạt động.Ví dụ 1-2Giả sử rằng diode Si trên hình 1-5 được phân cực phía trên điểm knee và có rB là 0,1Ω, hãy xác định dòng điện và điện áp trên diode. Vẽ đồ thị dòng điện theo thời gian.

Hình 1-5 (Ví dụ 1-2)GiảiNgắn mạch nguồn AC, xác định dòng DC:

Do đó, điện trở AC là

Dòng điện AC là

Điện áp AC là

Như vậy dòng và áp tổng cộng là

Đồ thị dòng điện theo thời gian được cho ở hình 3-8

Hình 1-6 Thành phần AC thay đổi ±7,37 mA xung quanh thành phần DC 19,63mAĐường tải (load line)Ta có thể thực hiện việc phân tích diode với tín hiệu nhỏ bằng cách sử dụng hình vẽ với đặc tuyến V-A của diode.Xét mạch cho ở hình 1-7. Đây chính là mạch tương đương về DC của mạch đã cho ở hình 1-5 (ngắn mạch nguồn áp). Ta xem điện áp trên diode là V (chứ không là hằng số).

Hình 1-7 Dòng điện qua diode I và điệp áp trên diode VTheo định luật áp Kirchhoff, ta có

Do đó, quan hệ giữa dòng và áp DC trên diode cho bởi phương trình

Thay số vào, ta có

Phương trình này có dạng y=ax+b và đồ thị của nó là một đường thẳng có độ dốc (slope) là -1/R và cắt trục I tại điểm E/R (và cắt trục V tại điểm Vo=E). Đường thẳng này được gọi là đường tải DC (DC Load Line).Đường tải DC của mạch cho ở hình 1-7 được vẽ trên hình 1-8. Đường tải này biểu diễn tất cả các tổ hợp có thể có của dòng điện qua diode I và điệp áp trên diode V với trị số E và R xác định. Giá trị hiện thời của I và V tùy thuộc vào diode được sử dụng trong mạch.

Hình 1-8 Đường tải DCĐặc tính của đường tải DC là mọi tổ hợp có thể có của dòng điện I và điện áp V của mạch ở hình 1-7 là một điểm nằm tại một nơi nào đó trên đường thẳng. Cho trước một diode cụ thể (mà ta đã biết đặc tuyến V-A của nó), mục tiêu của ta là xác định tổ hợp dòng-áp hiện thời. Ta có thể tìm được điểm này bằng cách vẽ đường tải DC trên cùng hệ trục tọa độ của đặc tuyến Vôn-Ampe, giao điểm