csdl cau3

----them du lieu-----

insert into khach(mkh,hoten,diachi) values ('k001',N'tran van hiep',N'sdsf')

----them dl tu bang khac---

insert into khach(mkh,hoten,diachi) select mkh,hoten,diachi from vanhiep

-----sua du lieu------

update khach set diachi=N'bac ninh' where mkh='k002'

----xoa du lieu----

delete from khach where mkh='k002'

--tao bang moi---

create table<tenbang>(<tencot><kieu><thuoc tinh khoa> constraint<ten rang buoc><kieu rang buoc>

---them cot moi---

alter table<ten bang> add column<ten cot><kieu dl><not null>

---xoa cot---

alter table<ten bang> drop column<ten cot>

--sua kieu dl--

alter table<ten bang> alter column<ten cot> <kieu dl moi>

---them rang buoc---

alter table<ten bang> add constraint<ten cot><kieu dl><not null>

------------------------------------

------------------de thi-----------------------

------------------------------------------------------------

a,---------câu truy vân------danh sách hóa don trong quy i/2009

Select so_hd from HOADON where year(ngayban)=2009 and month(ngayban)<4

b,---------lap dánh sách 10 khách hàng có so tien mua nhieu nhat--------

select top 6 Hoadon.Makh,khach.hoten,SUM(hoadon.Tongtien) from HOADON,KHACH

where HOADON.Makh=KHACH.Makh and  YEAR(hoadon.Ngayban)=2009

group by hoadon.Makh,khach.Hoten----- {sap xep tao thanh 1 top de tinh tong cua lenh "order by"} ------------

order by SUM(tongtien) desc

c,------------xác dinh hàng ko bán dc nam 2009---------

select Mahg,Ten_Hang from HANG where mahg not in (select Mahg from Ct_HOADON where so_hd in (select so_hd from HOADON where YEAR(Ngayban)=2010) )

d,----Hieu theo nghia so luong nhieu nhat-----

select top 1 SUM(Soluong) as Soluong,MaHg from Ct_HOADON

Group by MaHg,so_hd

having so_hd in(select so_hd from HOADON where YEAR(Ngayban)=2009)

order by SUM(Soluong) desc

e.----Hieu theo nhieu nguoi khac nhau mua nhat----

select Ten_Hang,c.MaHg,COUNT(c.MaHg) as Solanmathang, COUNT(Makh) as Solankh from (Ct_HOADON c inner join HANG h on c.MaHg=h.MaHg)

inner join HOADON  hd on c.so_hd=hd.so_hd

where YEAR(Ngayban)=2009

group by c.MaHg,Ten_Hang

order by COUNT(c.MaHg) desc, COUNT(Makh) desc

Một cơ sở dữ liệu KHACHHANG, gồm bốn bảng dữ liệu sau:

KHACH_HANG (mã khách hàng,ngày sinh, họ và tên, địa chỉ)

DON_HANG (số đơn hàng, mã khách hàng, ngày đặt hàng)

DONG_DON (số đơn hàng, mã hàng, số lượng)

HANG_HOA (mã hàng, tên hàng, mô tả, đơn giá theo đơn vị)

Viết các câu lệnh SQL thực hiện các yêu cầu sau:

a. tạo các bảng trong cơ sở dữ liệu KHACHHANG;

b. nhập vào theo thứ tự mỗi bảng của cơ sở dữ liệu 5 bản ghi;

c. tìm kiếm thông tin về các khách hàng (bao gồm: mã khách hàng, họ và tên, địa chỉ) không đặt hàng trong 01 tháng tính đến ngày hiện tại

d. tìm kiếm thông tin về 05 mặt hàng (bao gồm: mã hàng, đơn hàng, tên hàng, tổng tiền) có tổng tiền đặt là bé nhất. Biết rằng: tổng tiền = đơn giá theo đơn vị * số lượng

e. tính tổng tiền của tất cả các khách hàng đã đặt hàng có tên là "nokia6610i"

f. liệt kê danh sách khách hàng đã đặt hàng, gồm các thông tin: mã khách hàng, ngày sinh, họ tên, địa chỉ, mã hàng, tên hàng, mô tả, đơn giá theo đơn vị, số đơn hàng, số lượng. Hãy cho biết câu lệnh SQL trên sử dụng phép toán đại số quan hệ nào?

Giải

a/

create table KHACH_HANG

            makh char(10) primary key,

            ngaysinh date,

            hoten nvarchar(100),

            diachi nvarchar(200),

create table DON_HANG

            sodh char(10) primary key,

            makh char(10),

            ngaydat date

create table DONG_DON

            sodh char(10),

            mahang char(10),

            soluong float

create table HANG_HOA

            mahang char(10) primary key,

            tenhang nvarchar(50),

            mota ntext,

            dongia float

Insert into ten_bang(DS_truong) values( ... )

c/

select khach_hang.* from khach_hang

where khach_hang.makh != don_hang.makh

and (MONTH(ngaydat)=MONTH(getdate()) or MONTH(ngaydat)=MONTH(getdate())-1)

d/ Chưa làm được :)

select hang_hoa.tenhang,(dong_don.soluong*hang_hoa.dongia) as tongtien,don_hang.makh,khach_hang.hoten

from hang_hoa,dong_don,don_hang,khach_hang

where hang_hoa.mahang=dong_don.mahang and don_hang.sodh=dong_don.sodh and khach_hang.makh=don_hang.makh and HANG_HOA.tenhang='Nokia6610i'

f/

select KHACH_HANG.makh,KHACH_HANG.hoten,KHACH_HANG.diachi,KHACH_HANG.ngaysinh,

DON_HANG.sodh,DON_HANG.ngaydat,

DONG_DON.mahang,DONG_DON.soluong,

HANG_HOA.tenhang,HANG_HOA.dongia

from KHACH_HANG,DON_HANG,DONG_DON,HANG_HOA

where KHACH_HANG.makh=DON_HANG.makh and DON_HANG.sodh=DONG_DON.sodh and DONG_DON.mahang=HANG_HOA.mahang

Câu 3_Đề lẻ CSDL2 K45

a/

select sinhvien.masv,sinhvien.hoten_sv from sinhvien,detai,GIANGVIEN

where sinhvien.ma_dt=detai.ma_dt and detai.magv=giangvien.Magv and giangvien.Hoten_GV=N'Vũ Bá Anh'

select detai.ma_dt,detai.tendt,count(sinhvien.masv) from detai,giangvien,sinhvien

where detai.magv=giangvien.magv and sinhvien.madt=detai.madt and giangvien.hoten_gv=’Hoang Huu Son’

group by detai.madt,detai.tendt

having count(sinhvien.masv)=0

c/

select sinhvien.ma_dt,detai.ten_dt,COUNT(sinhvien.ma_dt) as solan from sinhvien,detai

where sinhvien.ma_dt=detai.ma_dt

group by sinhvien.ma_dt,detai.ten_dt

order by COUNT(sinhvien.ma_dt) desc

Đề  thi CSDL1

SP(Masp,Tensp,Trongluong,Noisx)

NCC(Mancc,Tenncc,Doanhso,Diachi)

SP_NCC(Masp,Mancc,Diachi)

Yêu cầu:

A,Tìm nhà cung cấp có daonh số lớn nhất

B,Tìm tên mặt hàng do hãng có số hiệu IBM cung cấp

C,Tìm tên những mặt hàng nơi SX khác với địa chỉ nhà cung cấp

Giải:

a,

select top 1 mancc,tenncc,Doanhso,Diachi from NCC

order by Doanhso desc

b,

select sp.Masp,sp.Tensp from SP,SP_NCC,NCC

where sp.Masp=sp_ncc.Masp and SP_NCC.Mancc=ncc.Mancc and ncc.Tenncc='IBM'

c,

select SP.Masp,SP.Tensp,SP.Noisx,SP_NCC.Diachi from SP,SP_NCC

where SP.Masp=SP_NCC.Masp and SP.Noisx != SP_NCC.Diachi

HOADON(Sohd,Ngay,Mahang,Makhach,Soluong)

KHACH(Makhach,Tenkhach,Diachi,Dienthoai)

HANG(Mahang,Tenhang,Soluong,Giamua,Giaban)

Yêu cầu:

A,Liệt kê các hóa đơn bán cho khách hàng trước ngày N

B,Liệt kê các mặt hàng đã bán và tổng tiền đã bán cho khách hàng X

C,Cho biết tên mặt hàng đã bán trong ngày hôm nay

a,

select hoadon.Sohd from HOADON,KHACH where hoadon.Makhach=KHACH.Makhach

and khach.Tenkhach=N'Đỗ Quỳnh Anh'

and Day(hoadon.Ngay)<DAY(GETDATE())

àGiả sử ngày N ở đây là ngày hiện tại

b,

select HOADON.Mahang,Hang.Tenhang,(HOADON.Soluong*HANG.Giaban) as tongtien from HOADON,HANG,KHACH

where HOADON.Mahang=HANG.Mahang and HOADON.Makhach=KHACH.Makhach and KHACH.Tenkhach=N'Đỗ Quỳnh Anh'

c,

select HOADON.Mahang,HANG.Tenhang from HANG,HOADON

where DAY(hoadon.Ngay)=DAY(getdate()) and HOADON.Mahang=HANG.Mahang

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: