I. XÂY DỰNG CƠ SỞ DỮ LIỆUII. CÁC THAO TÁC LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU Câu lệnh SELECT1. Đếm tên khách hàng có tên bắt đầu bằng chữ ‘t’2. Đếm số khách hàng có địa chỉ ở hà nội3. Hiển thị khách hàng (makh, tenkh) có địa chỉ ở thái bình4. Đưa thông tin khách hàng có địa chỉ ở hà nội5. Đưa ra những nhân viên có họ là nguyen6. Hiển thị các thông tin khách hàng mà có tên bắt đầu là cao............
Trang 1
Đề tài: Tổ chức xây dựng cơ sở dữ liệu quản lý tài chính tiền tệ.
Cụ thể: Quản lý sổ tiết kiệm
Trang 2I XÂY DỰNG CƠ SỞ DỮ LIỆU
1 Mô tả bài toán
Khi khách hàng có nhu cầu gửi tiết kiệm tại ngân hàng, nếu chưa có sổ tiết kiệm tại ngân hàng thì nhân viên tại quầy hướng dẫn lập sổ tiết kiệm mới cho khách hàng Nếu thông tin đầy đủ và hợp lệ thì nhân viên sẽ mở sổ tiết kiệm cho khách hàng
Sau khi lập sổ tiết kiệm, khách hàng có thể gửi thêm tiền vào tài khoản hoặc rút tiền trong tài khoản thông qua hóa đơn
Thông tin về sổ tiết kiệm bao gồm: Mã tài khoản, số tiền
Thông tin về khách hàng bao gồm: Mã khách hàng, tên khách hàng, số chứng minh thư nhân dân, địa chỉ, số điện thoại, năm sinh
Thông tin về nhân viên bao gồm: Mã nhân viên, tên nhân viên, giới tính, năm sinh, địa chỉ, số điện thoại
Thông tin về hóa đơn bao gồm: Mã hóa đơn, ngày lập, ghi chú, số tiền ghi chú sẽ ghi thông tin khách hàng nào rút tiền hoặc gửi tiền
2 Xác định các thực thể
- Khách hàng (Mã khách hàng, tên khách hàng, năm sinh, số chứng minh thư nhân dân, địa chỉ, số điện thoại)
- Nhân viên (Mã nhân viên, tên nhân viên, năm sinh, địa chỉ, số điện thoại)
- Hóa đơn (Mã hóa đơn , mã tài khoản, mã nhân viên, ngày lập, ghi chú, số tiền)
- Tài khoản ( Mã tài khoản, mã khách hàng, số dư)
Trang 33 Lập bảng
create table KH(
makh char(10) not null,
tenkh nvarchar(30)not null,
diachi nvarchar(100)not null,
namsinh date not null,
CONSTRAINT pk_kh primary key (makh),
);
create table NV(
manv char(10) not null,
tennv nvarchar(30) not null,
namsinh date not null,
diachi nvarchar(100)not null,
CONSTRAINT pk_nv primary key (manv),
);
CREATE TABLE TK
(
matk char(10) not null,
makh char(10) not null,
sodu int,
tilelaisuat int,
CONSTRAINT pk_tk primary key (matk),
CONSTRAINT chk_TK CHECK (sodu>0),
CONSTRAINT fk_makh_tk FOREIGN KEY (makh) REFERENCES KH(makh),
Trang 4ngaylap date not null,
ghichu nvarchar(100) not null,
sotien int not null,
CONSTRAINT pk_hd primary key (mahd), CONSTRAINT fk_matk FOREIGN KEY (matk) REFERENCES TK(matk),
CONSTRAINT fk_manv FOREIGN KEY (manv) REFERENCES NV(manv),
CONSTRAINT chk_HD CHECK (sotien>0)
);
4 Thông tin trong bảng
- Bảng khách hàng:
Trang 5- Bảng tài khoản
Trang 6- Bảng hóa đơn
Trang 7- Bảng nhân viên
Trang 85 liên kết bảng
II CÁC THAO TÁC LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU
- Câu lệnh SELECT
1 Đếm tên khách hàng có tên bắt đầu bằng chữ ‘t’
selectCOUNT(makh)
from KH
where tenkh like't%'
Trang 103 Hiển thị khách hàng (makh, tenkh) có địa chỉ ở thái bình
select makh,tenkh
from KH
where diachi='thai binh'
Trang 114 Đưa thông tin khách hàng có địa chỉ ở hà nội
select makh, tenkh, namsinh, diachi, sodienthoai, sochungminh
from kh
where diachi='ha noi'
Trang 125 Đưa ra những nhân viên có họ là 'nguyen'
select manv, tennv, namsinh, diachi, sodienthoai, sochungminh
from nv
where(tennv like 'nguyen%')
Trang 136 Hiển thị các thông tin khách hàng mà có tên bắt đầu là 'cao'
select *
from KH
where (kh.tenkh like'cao'
Trang 147 Đưa ra thông tin về nhân viên với điều kiện mã nhân viên lớn hơn 3 :
select manv,tennv,namsinh,diachi,sodienthoai,sochungminh
from nv
where manv>'nv3'
Trang 158 Viết hàm truy vấn tính tổng tiền khách hàng đã mua trong hóa đơn
select SUM(sotien)
from HD
Trang 169.Tính số dư trong tài khoản của các khách hàng có địa chỉ ở hà nội
select SUM(TK.sodu)
from KH innerjoin TK on KH.makh = KH.makh
where (KH.diachi='ha noi')
Trang 1811 Đưa ra thông tin khách hàng với điều kiện địa chỉ bắt đầu bằng chữ 'h' và số dư lớn hơn 1 triệu.
Select
kh.makh,kh.tenkh,kh.namsinh,kh.diachi,kh.sodienthoai,kh.sochungminh,tk.sodu
from kh innerjoin tk on kh.makh=tk.makh
where(kh.diachi like'h%') and (tk.sodu>10000000)
Trang 1912 Hiển thị ra các thông tin makh, tenkh, diachi,matk, sotien, sodu mà số dư trong tài khoản nhỏ hơn 8000000
select kh.makh, kh.tenkh, kh.diachi, tk.matk, hd.sotien, tk.sodu
from tk innerjoin hd on tk.matk=hd.matk
innerjoin kh on tk.makh=kh.makh
where (TK.sodu <'8000000')
Trang 2013 Đưa ra thông tin khách hàng có địa chỉ bắt đầu bằng chữ N và có sốdư tài khoản từ
3000000 đến 10000000
Select
kh.tenkh, kh.diachi, kh.namsinh, kh.makh, tk.sodu
From KH innerjoin TK on kh.makh= tk.makh
Where(kh.diachi like 'n%')and tk.sodu between 3000000 and 10000000
Trang 2114 Đưa ra thông tin khách hàng có số tiền gửi lớn hơn 10000000
select kh.makh,kh.tenkh,kh.namsinh,kh.diachi,kh.sodienthoai,kh.sochungminh,
tk.matk,hd.sotien,hd.ghichu
from tk innerjoin hd on tk.matk=hd.matk
innerjoin kh on tk.makh=kh.makh
where (hd.sotien > 10000000 and hd.ghichu='gui tien')
Trang 2215 Thêm 1 khách hàng vào bảng khách hàng
insertinto kh values (' kh11', 'hoang van ba' , '6/3/1994' ,'namdinh' ,'0987643750'
,'163432745’ )
Trang 23Sau đó open bảng khách hàng ta xem được tên khách hàng vừa thêm
Trang 24- Truy vấn con
Sử dụng truy vấn con hiển thị danh sách khách hàng có số dư trong sổ tiết kiệm > 15000000
select KH.makh, KH.tenkh, TK.sodu
from KH innerjoin TK on KH.makh= TK.makh
Trang 25create view kh1
as
select kh.makh, kh.tenkh,kh.diachi,tk.sodu
from kh innerjoin tk on kh.makh = tk.makh
Để xem khung nhìn vừa tạo ta ấn chuột phải vào view chọn refresh -> ấn chuột trái vào view-> click chuột trái vào dbo.khachhang -> chọn open view để mở khung nhìn vừa tạo
Trang 26- Tạo thủ tục
1 Tạo 1 thủ tục về địa chỉ của khách hàng và hiển thị ra thủ tục
create proc a @diachi char(30)
Trang 27Hiên ra thủ tục : execute a 'ha noi'
Trang 282.Viết hàm thủ tục đưa ra danh sách khách hàng có mã khách hàng nhập vào từ bàn phím
create proc abcdeghi @makh char (100)
Trang 29create function TKe()
Trang 30- Hàm trigger
Sau khi ta c pnh t d li u cho b ng khách h ngậpnhật dữ liệu cho bảng khách hàng ậpnhật dữ liệu cho bảng khách hàng ữ liệu cho bảng khách hàng ệu cho bảng khách hàng ảng khách hàng àng
SQL Server s hi n th n i dung c a b ng xem nh ẽ hiển thị nội dung của bảng xem như ển thị nội dung của bảng xem như ị nội dung của bảng xem như ội dung của bảng xem như ủa bảng xem như ảng khách hàng ư sau:
Trang 31Trigger tự động cập nhập số dư trong tài khoản
CREATE TRIGGER [dbo] [sodu]
select @b = inserted sotien from inserted where
inserted ghichu = 'rut tien'
Trang 32CREATE TRIGGER [dbo] [sodudl]
select @b = deleted sotien from deleted where
deleted ghichu = 'rut tien'
select @b = updated sotien from updated where
updated ghichu = 'rut tien'
Trang 33- Form t i kho nàng ảng khách hàng
- Form thông tin khách h ngàng
- Form thông tin nhân viên
Trang 34- Form hóa đơn