Professional Documents
Culture Documents
2
*/
--1.
select DiaChi
from Khach;
--2.
select TenH,Slton
from Hang;
--3.
select *
from Hang
where Slton>5;
--4.
select *
from Khach
where DiaChi like'Ha Noi';
--5.
select TenK
from Khach,HoaDon
where NgayHD like '1/1/2011';
--6.
select MaH, TenH, DonG
from Hang,ChiTietHD
where DonG>200000;
--7.
select TenK
from Khach,HoaDon
where DiaChi like 'Hai Phong' and NgayHD= '2/2/2013';
--9.
select MaH
from Hang, ChiTietHD
where SlBan=0;
--hoặc:
select *
from Hang
where Hang.MaH not in(select ChiTietHD.MaH from ChiTietHD);
--10.
select MaK
from Khach
where MaK not in(select * from HoaDon where
NgayHD=' 12/12/2012');
--Tạo bảng
create table Hang
(
MaH char(5) not null primary key,
TenH varchar(20) ,
Slton int,
)
--Xoa bang
Drop table Hang;
--Xoa bo
delete from Hang
where TenH like' Tom';
--Xap xep tang
select MaH,TenH, Slton
from Hang
order by Slton;
- Đưa ra số lượng lớn nhất của một mặt hàng trong mỗi đơn hàng
select SoHD, Max( Slban) as SL_Max
from ChiTietHD
group by SoHD;
--Cho biết các thông tin về khách hàng và các đơn mua hàng của
họ nếu có
--( Truy vấn lồng nhau)
select *
from Hang
where Slton=(select Max(Slton) from Hang);
--Hoặc: where >(select Min(Slton) from Hang); or thay bởi dấu !=
--Đưa ra các mặt hàng k phải là mặt hàng có số lượng tồn nhỏ nhất
select *
from Hang
where Slton not in( select Min(Slton) from Hang);
- Đưa ra các mặt hàng chưa từng được
bán select *
from Hang
where Hang.MaH not in(select Hang.MaH from ChiTietHD);
- Đưa ra các khách hàng chưa từng mua hàng trong năm 2015
select *
from Khach
where Khach.MaK not in (select MaK from HoaDon where
(YEAR(NgayHD)=2015));
- Liệt kê các mặt hàng không phải là mặt hàng có tồn kho
lớn nhất.
select *
from Hang
where Slton< (select Slton from Hang);
- Cho biết 5 mặt hàng có tồn kho lớn nhất( Truy vấn lồng
nhau tương quan ).
select *
from Hang H
where ( select count(*) from Hang where Slton> H.Slton)<5;
--cho biết các khách hàng ở hà nội mua hàng trong tháng 1/2011
select *
from Khach
where DiaChi like 'Ha Noi' and
Khach.MaK in( select HoaDon.MaK from HoaDon
where (month(NgayHD)=1) and(NgayHD)=2011);
- Liệt kê các mặt hàng k phải là mặt hàng có tồn kho lớn
nhất select *
from Hang
where Slton<some(select Slton from Hang);
--7. Đưa ra Họ tên, Công việc, Lương của tất cả các nhân viên
select HoTen,Congviec, Luong
from NHANVIEN;
--8. Đưa ra toàn bộ công việc của các nhân viên, các giá trị
k trùng nhau.
select distinct Congviec
from NHANVIEN;
--10. Đưa ra HoTen, Luong sắp xếp theo thứ tự tăng dần.
select Hoten, Luong
from NHANVIEN
order by Luong;
--12. Đưa ra Hoten, Luong của các nhân viên có Luong>300 và làm
công việc là Giáo viên.
select HoTen, Luong
from NHANVIEN
where (Luong>300) and (Congviec like' Giao vien');
--14.Đưa ra những nhân viên có Lương trong khoảng 300 đến 600.
select *
from NHANVIEN
where(Luong between 300 and 600);
--15.Đưa ra Hoten, Congviec của các nhân viên có Họ tên bắt đầu
bằng chữ ‘Hoàng’
select HoTen, CongViec
from NHANVIEN
where HoTen like 'Hoang';
--16. .Đưa ra lương trung bình, lương lớn nhất, nhỏ nhất của tất
cả các nhân viên trong bảng NHANVIEN.
select AVG(Luong), Max(Luong), Min(Luong)
from NHANVIEN;
--17. Đưa ra Côngviệc, Lương trung bình của từng loại công việc.
select Congviec, AVG(luong) as Luongtb from NHANVIEN
group by Congviec;
/*19..Đưa ra tổng lương của từng nhóm công việc trong từng đơn
vị.
Select madonvi, congviec, sum(luong) from nhan vien nv group
by congviec, madonvi
*/
select MaDV,CongViec,Sum(Luong) as TongL
from NHANVIEN
group by Congviec, MaDV;
--20.Đưa ra những Congviec và trung bình lương của các công việc
có trung bình lương>=300
select CongViec, AVG(Luong)
from NHANVIEN
group by Congviec
having (AVG(luong)>=300);
--21. Đưa ra những đơn vị và lương lớn nhất của các đơn vị
có lương lớn nhất >=300
select MaDV,Max(Luong)
from NHANVIEN
group by MaDV
having Max(Luong)>=300;
--23. Câu lệnh sau cho kết quả như thế nào.
SELECT HoTen, CongViec, TenDV
FROM NHANVIEN NV, DONVI DV
WHERE NV.MaDV= DV.MaDV;
--( Kết nối tự nhiên: Chương tỉnh in ra TenNV, CongViec và
TenDV).
--24. .Đưa ra HoTen, Congviec, TenDV, Luong của những nhân viên
có Luong>=500.
select HoTen,CongViec, TenDV,
Luong from NHANVIEN, DONVI
where (NHANVIEN.MaDV=DONVI.MaNV) and (Luong>=500);
--25. Câu lệnh sau cho kết quả như thế nào.
SELECT NV.MaNV, NV.Hoten, PT.MaNV, PT.Hoten
FROM NHANVIEN NV, NHANVIEN PT
WHERE (NV.MaNV=PT.MaPT) AND (NV.Luong>PT.Luong);
--(Kết nối tự nhiên: Inra MaNV, HoTen)
--29. Đưa ra những nhân viên có lương lớn hơn người có lương lớn
nhất trong đơn vị có tên là DHTL.
--Select hoten from nhanvien where (luong > select
max(luong) from nhanvien, donvi
--where (nhanvien.madv=donvi.madonvi) and (donvi,tendonvi=’DHTL))
select HoTen
from NHANVIEN
where(Luong>(select Max(Luong) from NHANVIEN nv, DONVI dv
where (nv.MaDV=dv.MaNV) and( dv.TenDV like 'DHTL'));
--30. Đưa ra Hoten, MaDV, Luong của các nhân viên có Luong=Luong
thấp nhất trong đơn vị của họ.
select HoTen, MADV, Luong
from NHANVIEN
where (MaDV, Luong) in (select MaDV,Min(Luong)
from NHANVIEN
group by MaDV );
--32. .Đưa ra Hoten,Luong của các nhân viên có Luong lớn nhất của
đơn vị có mã đơn vị là 0002.
select HoTen, Luong
from NHANVIEN
where Luong = (select Max(Luong) from NHANVIEN, DONVI where MaDV
like '0002');
--33. .Đưa ra MaDV, AVG(Luong) của đơn vị có trung bình lương lớn
hơn lương nhỏ nhấ của đơn vị có mã đơn vị là 0003.
select MaDV,AVG(Luong)
from NHANVIEN
group by NHANVIEN.MaDV
having AVG(Luong)>(select Min(Luong) NHANVIEN where MaDV
like '0003');
/*
Bai 2 _PHAN 1
*/
/* BAI2_ PHAN1
*/
-- I. 2. Sua doi cau truc
--1.
alter table KHACH
add SoThich varchar(30);
--
alter table HANG
add NoiCungCap varchar(30);
alter table HANG
add NoiSanXuat varchar(30);
--2.
alter table KHACH
alter column SoThich nvarchar(30);
--
alter table HANG
alter column NoiCungCap int;
--3.
alter table HANG
drop column NoiCungCap;
Loi'); --3.
Delete from HANG
where Ma_hang like' H001';
--4.
update KHACH
set Diachi_kh= 'Dai hoc quoc Gia'
where Ma_khach like' K002';
--III
--9.
select So_phieu, Ma_hang, Don_gia,
So_luonggi,(Don_gia*So_luonggi)
from DONGPHIEU;
--10
--11
select *
from HANG
order by Ma_hang asc;
--12.
select *
order by To
from PHIEUGng_tien asc;
--13.
select *
from KHACH
where Diachi_kh like' Dai Hoc Quoc Gia';
--14.
select So_phieu, Mak
from PHIEUGIAO
where Tong_tien >=100000
order by Tong_tien Asc ;
--15.
select Tenh, Mota_h
from HANG
where Donvi = 'Bong' ;
--16.
select So_phieu, Mak, Ngay_giao
from PHIEUGIAO
where Noi_giao = 'Ha Noi' and Tong_tien > 50000;
--17.
select Mak, Tenk
from KHACH
where Diachikh in ('Dai hoc Quoc Gia', 'Dai hoc Thuy Loi') ;
--18.
select Mah
from HANG
where Donvi in ( 'Bong', 'Canh', 'Bo') ;
--19.
select Mak, Tong_tien
from PHIEUGIAO
where Noi_giao in ('Ha Noi', 'Ho Chi Minh', 'Hai Phong') ;
--20.
select PHIEUGIAO.*
from PHIEUGIAO
where Tong_tien between 100000 and 500000 ;
--21.
select Mak, Tenk
from KHACH
where Tenk LIKE 'Nguyen%' ;
--22.
select Mak, count(So_phieu) as So_Lan_Mua
from PHIEUGIAO
where Mak = 'K001'
group by Mak ;
--23.
select Tong_tien, avg(Tong_tien) as
Trung_Binh_PG from PHIEUGIAO
group by Tong_tien ;
--24.
select SUM(Tong_tien)
from PHIEUGIAO
where Mak = 'K002' ;
--25.
select Mak, count(Mak) as Tong_so_khach
from KHACH
where Diachikh like 'Dai hoc Thuy Loi'
group by Mak
--26.
select Mak, Ngay_giao, Noi_giao
from PHIEUGIAO
where Tong_tien in (select MAX(Tong_tien) from PHIEUGIAO ) ;
--27.
select Mak, Ngay_giao, Noi_giao
from PHIEUGIAO
where Tong_tien = (select MIN(Tong_tien) from PHIEUGIAO ) ;
create table XE
(
BienS char(5) not null primary key,
KhTD int,
);
create table HUONGDV
(
MaHDV char(10) not null primary key,
HoTenHDV varchar(50),
DiaDiemCD varchar(50),
);
);
create table XEPV
(
MaCD char(5) not null,
BienSo varchar (30) not null,
primary key (MaCD, BienSo),
)
--9. Số ngày luu lại tb, lon nhat, nho nhat qua các điểm
cuarcd CD2000.
select AVG(SoNgayLL),MAX(SoNgayLL), Min(SoNgayLL)
from CHITIETCD
where MaCD like 'CD200';
--11
select *
from DIADIEM,CHITIETCD
where SoNgayLL= (select Max(SoNgayLL) from CHITIETCD
where MaCD like 'CD2000');
--12.
select *
from DIADIEM, CHITIETCD
where MaCD like 'CD200' and (SoNgayLL>(select AVG(SoNgayLL) from
CHITIETCD));
--13.
select MaCD as dem,count(*) as
So_CD from DIADIEM, CHITIETCD
where MaCD like 'Ba Vi' and (SoNgayLL=(select sum(SoNgayLL) from
CHITIETCD));
--14.
select*
from CHITIETCD, DIADIEM d
where MaCD like' CD2000' and (SoNgayLL= (select MAX( SoNgayLL)
from CHITIETCD, DIADIEM where (MaDD >d.MaDD)<3));
--15.
select*
from CHITIETCD, DIADIEM d
where MaCD like' CD2000' and (SoNgayLL= (select Min( SoNgayLL)
from CHITIETCD, DIADIEM where (MaDD >d.MaDD)<3));
--16
select *
from DIADIEM, CHUYENDI
where MaCD like 'CD' and MaDD not in(select Min(SoNgayLL) from
CHITIETCD where MaDD like 'CD2000');
--17
select MaDD as Tinh, count (*) as SL_DD
from DIADIEM, CHITIETCD group by MaDD
--18.
select *
from CHUYENDI
where MaCD=(select Max(BIENSO) from XEPV );
--19.
select *
from CHUYENDI
Where MaCD not in( select BIENSO from XePV );
--20.
select *
from HUONGDV
where MaHDV not in(select * from HUONGDAN);
*/
--1.
select *
from CBVC
order by HT asc;
--2.
select *
from CBVC
where MaCC=(selcet HeSoL from NGACHBACLUONG where HeSoL>3);
--3.
select sum(HeSoL)
from DONVI,NGACHBACLUONG;
--4.
select *
from CBVC
from MaDV=(select TenDV from DONVI where like'a');
--5.
select *
from CBVC
from MaDV= (select Loai from DONVI where like' Hanh Chinh');
--6.
select *
from CBVC
from Ngach like 'Can su' and Bac>=7 or( select HeSoL from
NGACHBACLUONG where HeSoL>3.06);
--7.
select *
from CBVC
where NgayXep like '1998' and NgayXep=(select *
from CBVC where (NgayXep> 3 and Ngach like 'Chuyen Vien'and Ngach
like 'Chuyen Vien Chinh' )or NgayXep >2);
--8.
select *
from CBVC
from HeSoL>( select HeSoL from CBVC where Ngach like'Can su');
/*
BAI 4.3
*/
--1.
Select *
from LOP;
--2.
select *
from LOP
where Malop like'TH1';
--3.
select *
from KHOA
where Makh like 'Cong Nghe Thong Tin';
--4.
select *
from CTHOC
where Malop like'TH1'
--5
select Diem
from DIEMSV, LOP
where Lan like'1' and Mamh like 'CSDL' and Malop like' TH1';
--6
select AVG(Diem)
from DIEMSV, LOP
where Lan like'1' and Mamh like 'CSDL' and Malop like' TH1';
--7.
select count(MaSV) as SLsinhVien
from LOP
where Malop like' TH2';
--8.
select count(Mamh) as SLMonhoc
from CTHOC
where Malop like'TH1' and like' HK1' and like' HK2';
--9.
select MAX(Diem), top(3)
from DIEMSV
where Lan like'1' and Mamh like'CSDL';
--10.
select LOP.Malop, count(Masv) as Siso
from LOP ,SINHVIEN
group by LOP.Malop;
--11
--13.
select Mamh
from MONHOC
where LT like '1' and (select count (Masv) from SINHVIEN,DIEMSV
where Max( Diem)<4);
--14.
select Masv ,max(Diem)
from SINHVIEN,MONHOC
group by Masv
having SINHVIEN.Mamh=MONHOC.Diem;
--15.
select Malop,AVG(Diem)
from LOP,DIEMSV
group by Malop
having LOP.Diem=DIEMSV.Malop and Malop in (select Makh
from KHOA, MONHOC
where Makh
like 'CNTT' and LT like '1' and Mamh like'CSDL');
--16.
select *
from SINHVIEN,LOP
where SINHVIEN.Malop=LOP.Masv and Malop like 'TH1' and Masv
in (select *
from DIEMSV, CTHOC
);
--17.
select *
from SINHVIEN,LOP
where SINHVIEN.Malop=LOP.Masv and Malop like 'TH2' and Masv
in (select *
);
--18.
select *
from LOP, CTHOC
where Malop like 'TH1' and HK between 1 and 6 and Masv in (select
* from DIEMSV
where
all(Diem)>=4
);