use QLNVien;-- Bang phòng banCreate Table Phong MaPhong char10 not null, TenPhong nvarchar50 not null, DiaDiem nvarchar100 not null, soNV int,constraint pk_MaPhong primary key MaPhong,
Trang 1ĐẠI HỌC DUY TÂN
Khoa CNTT
BÀI TẬP CÁ NHÂN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Họ và tên sinh viên: Võ Văn Trí
Mã số sinh viên : 27211233739 Giảng viên hướng dẫn:
LỚP : IS 401 BD
ĐÀ NẴNG, NGÀY 22 THÁNG 2 NĂM 2024
Trang 2use QLNVien;
Bang phòng ban
Create Table Phong
(
MaPhong char(10) not null,
TenPhong nvarchar(50) not null,
DiaDiem nvarchar(100) not null,
soNV int,
constraint pk_MaPhong primary key (MaPhong),
constraint ch_SoNV check (SoNV>= )0
);
Bang nhân viên
Create Table NhanVien
MaNV char (10)not null,
Holot nvarchar(30)not null,
TenNV nvarchar(10)not null,
SDT varchar (20),
MaPhong char(10) not null,
constraint pk_MaNV primary key (MaNV),
constraint fk_MaPhong foreign key (MaPhong) REFERENCES Phong MaPhong) );
Bang dự án
Create Table Duan(
MaDA char (10)not null,
TenDA nvarchar(100) not null,
Kinhphi float,constraint pk_MaDA primary key (MaDA),
constraint ch_kinhphi check (kinhphi>= )0
);
Bang nhân viên dự án
Create Table NVDA(
MaNV char (10)not null,
MaDA char (10)not null,
sogio int,
constraint pk_a primary key (MaNV MaDA, ),
constraint fk_MaNV foreign key (MaNV ) REFERENCES Nhanvien MaNV), constraint fk_MaDA foreign key (MaDA ) REFERENCES DuAn MaDA),
constraint ch_sogio check (sogio>= )0
);
Thêm trường cho bang phòng
alter table Phong
ADD Diachi nvarchar (100);
Select From Phong
Thêm dữ liệu cho bang Phòng
insert into Phong
values (N'Phòng 1' N'Phòng Tổ, Chức A' N'Đà NẵFng',N'10',N'5 Ngổ QuyêGn'); insert into Phong
values (N'Phòng 2' N'Phòng Tổ, Chức B' N'Đà NẵFng',N'8',N'5 Ngổ QuyêGn'); insert into Phong
values (N'Phòng 3' N'Phòng Tổ, Chức C' N'Đà NẵFng',N'9',N'5 Ngổ QuyêGn'); insert into Phong
values (N'Phòng 4' N'Phòng Tổ, Chức D' N'Đà NẵFng',N'11' N'5 , Ngổ QuyêGn'); insert into Phong
values (N'Phòng 5' N'Phòng Tổ, Chức E' N'Đà NẵFng',N'12',N'5 Ngổ QuyêGn'); Select From Phong
Thêm dữ liệu cho bang Nhân Viên
Select from NhanVien
Trang 3Bang phòng ban
Create Table Phong
(
MaPhong char(10) not null,
TenPhong nvarchar(50) not null,
DiaDiem nvarchar(100) not null,
soNV int,
constraint pk_MaPhong primary key (MaPhong),
constraint ch_SoNV check (SoNV>= )0
);
Bang nhân viên
Create Table NhanVien
MaNV char (10)not null,
Holot nvarchar(30)not null,
TenNV nvarchar(10)not null,
SDT varchar (20),
MaPhong char(10) not null,
constraint pk_MaNV primary key (MaNV),
constraint fk_MaPhong foreign key (MaPhong) REFERENCES Phong MaPhong) );
Bang dự án
Create Table Duan(
MaDA char (10)not null,
TenDA nvarchar(100) not null,
Kinhphi float,constraint pk_MaDA primary key (MaDA),
constraint ch_kinhphi check (kinhphi>= )0
);
Bang nhân viên dự án
Create Table NVDA(
MaNV char (10)not null,
MaDA char (10)not null,
sogio int,
constraint pk_a primary key (MaNV MaDA, ),
constraint fk_MaNV foreign key (MaNV ) REFERENCES Nhanvien MaNV), constraint fk_MaDA foreign key (MaDA ) REFERENCES DuAn MaDA), constraint ch_sogio check (sogio>= )0
);
Trang 4alter table Phong
ADD Diachi nvarchar (100);
Select From Phong
Thêm dữ liệu cho bang Nhân Viên
insert into NhanVien
values (N'NV01' N'Lê' N'L' N'0999888776', , , ,N'Phòng 1'); insert into NhanVien
values (N'NV02' N'Lê' N', , LI',N'0999888444',N'Phòng 1'); insert into NhanVien
values (N'NV03' N'Lê' N'' N'0999888555', , , ,N'Phòng 2'); insert into NhanVien
values (N'NV04' N'Lê' N'Đ' N'0999888666', , , ,N'Phòng 3'); insert into NhanVien
values (N'NV05' N'Lê' N'N' N'0999888777', , , ,N'Phòng 4'); insert into NhanVien
values (N'NV06' N'Lê’ N'H' N'0999888799', , , ,N'Phòng 5'); insert into NhanVien
values (N'NV07' N'Lê' N'K' N'0999888789', , , ,N'Phòng 5');
Thêm dữ liệu cho bang Dự Án
select from Duan
insert into Duan
values (N'DA01' N'Xây nhà 1 TâG, ng',N'3000000'); insert into Duan
values (N'DA02' N'Xây nhà TâG, 2 ng',N'3000000'); insert into Duan
values (N'DA03' N'Xây nhà TâG, 3 ng',N'3000000'); insert into Duan
values (N'DA04' N'Xây nhà TâG, 4 ng',N'3000000'); insert into Duan
values (N'DA05' N'Xây nhà TâG, 5 ng',N'3000000');
Trang 5select from NVDA
insert into NVDA
values (N'NV01' N'DA01' N', , 100');
insert into NVDA
values (N'NV02' N'DA01' N'100’, , );
insert into NVDA
values (N'NV03' N'DA01' N', , 100');
insert into NVDA
values (N'NV04' N'DA02' N', , 50');
insert into NVDA
values (N'NV05' N'DA03' N'48', , );
insert into NVDA
values (N'NV06' N'DA04' N', , 45');
insert into NVDA
values (N'NV07' N'DA05' N', , 200');
tẠO BANG có câSu trúc như sau LUUNV1 (MANV, TENNV,MaPhong)
drop table LuuNVPhong1
create table LuuNVPhong1
(
MaNV Char(10)not null,
TenNV nvarchar (10) not null,
MaPhong char(10) not null,
constraint pk_MaNV1 primary key (MaNV)
);
MuổSn xóa ban sư dụng câu lệnh ở dưới
drop table Phong
drop table Duan
drop table Nhanvien
drop table NVDA
- Xóa dữ liệu cua bang
delete from NhanVien
-select from LuuNVPhong1
insert into LuuNVPhong1
Select MaNV,TenNV MaPhong , From NhanVien
Where MaPhong = 'Phòng 1';
-select from LuuNVPhong1
insert into LuuNVPhong1
Select MaNV,TenNV MaPhong , From NhanVien
Where MaPhong = 'Phòng 1';
Cập nhật dữ liệu
update phong
set diadiem =N'CâGn Thở'
Where Maphong = "P1"
Trang 6Update diadiem = N'CâGn Thở'
Where Maphong = "P1"
Cập nhật lai mã phòng cho nhân viên 1 và nhân viene 2
Cập nhập dữ liệu cho bang phòng
Update Phong
set DiaChi = N'CâGn Thở'
where MaPhong = 'Phòng 1';
Bài 2
Update NhanVien
Set MaPhong ='Phòng 1'
where MaNV = 'NV01';
Tẵng kinh phí thêm 10%
Update Duan
set KinhPhi = 1.1 KinhPhi* ;
Tẵng thêm 10% nưã cho dự án 01
Update Duan
set KinhPhi = 1.1 KinhPhi*
Where MaDA = 'DA01'
Select from Duan
/*Cập nhật dữ liệu
Update nhatkybanhang
set thanhtien = Soluong * dongia
from mathang
where nhatkybanhang.mahang = mahang.mahang */
/* Xóa dữ liệu cua bang
delete from NhanVien
[from danh sách bang]
[where điêGu kiện]
-*/
- Xóa những dự án có sổS giờ nho hởn 5
delete from NVDA
where Sogio <'46';
Xóa nhunbwgx dự án éo có kinh phí
delete from Duan
where KinhPhi = '0'
Xóa những nhân viên phòng tổ chức sự kiện
delete from NhanVien
from Phong
where (TenPhong =N'Phòng Tổ Chức A') and Phong.MaPhong NhanVien= MaPhong);
-Bài tập
-Hiên thị thổng tin ban nhân viên
Trang 7SELECT MaNV,TenNV FROM NhanVien;
Hiên thị thổng tin MaNV , HoLot , TenNV đổi tên trường thành tiêSng việt
Select MaNV ASN'Mã Nhân Viên', HoLot ASN'Họ Lót Cua Nhân Viên', TenNV AS
N'Tên Cua Nhân Viên' from NhanVien;
Có 3 cách đê đổi tên trường
tiêu_đêG_cột tên_trường=
tên_trường tiêu_đêG_cột
tên_trường AS tiêu_đêG_cột
Hiên THị thổng tin Họ và Tên Nhân Viên
Select [HoLot] +' '+[TenNV]+' ' 'Bê Đê'+ AS N'Họ Và Tên Nhân Viên'from NhanVien;
Tính tổng sổS nhân viên
Selectcount(*) asN'Tổng SổS Nhân Viên'from NhanVien;
Hiên thị 2 nhân viên đâGu tiên
Select Top 2 *from NhanVien;
Hiên thị 2 nhân viên đâGu tiên và lưu bang có tên Nhân Viên Top 2
Select Top 2 *into NhanVienTop2 from NhanVien;
select from NhanVienTop2;
Hiên thị 20% nhân viên
select top 30 percent from NhanVien;
Hiên thị nhân viên đã nhận dự án
SELECT * FROM NhanVien
Select DISTINCT MaNV from NVDA;
Hiên thị những nhân viên họ NguyêFn
select from NhanVien where HoLot LIKEN'Lê Vẵn';
select * from NhanVien where HoLot NOT LIKE N'Lê Vẵn'; ( NêSu như phu định) Các điêGu kiện lọc >,<,=
And , or ,like , not like, in , not in , between , not between Hiên thị những nhân viên NV01 , NV07 , NV 04
select from NhanVien where MaNV IN 'NV01' 'NV07' 'NV04', , );
HOẶC where MaNV = 'NV01' OR MaNV = 'NV07' OR MaNV = 'NV 04';
Hiên thị những nhân viên bẵSt đâGu từ chữ L
select from NhanVien where TenNV Like 'L%');
select from NhanVien where TenNV Not Like 'L%'); Hiện những tên ko có
Trang 8- Checkbox là dúng OR , còn Options And
Hiên thị thổng tin MaNV, TenNV , TenPhong, MaPhong
select MaNV , TenNV A MaPhong TenPhong , , from NhanVien A Phong B,
where A.MaPhong B MaPhong = and TenNV Not Like 'L%');
Hiên thị thổng tin MaNV , TenNV , MaDA, TenDA
select A.MaNV TenNV B MaDA TenDA , , , from NhanVien A Duan B NVDA C, , Where ( A MaNV C MaNV = ) And ( B MaDA C= MaDA);
- Bài tập vêG nhà
ViêSt tiêSp 10 câu lệnh select trong DP_PVMS
Bài tập về nhà
Create database DB_PVMS1
Use DB_PVMS1
CREATE table T_CUSTOMER
(
CUSTUMER_ID Char(10) not null,
CUSTUMER_NAME nvarchar(100)not null, tên KHÁCH HÀNG
CUSTUMER_ADDRESS nvarchar(100)not null, địa chỉ
CITY nvarchar(50)not null,
STATE nvarchar (50 ) not null, Tình trạng
POSTAL_CODE nvarchar(50) not null, Mã bưu điện
constraint pk_CUSTMER_ID primary key (CUSTUMER_ID)
);
create table T_ORDER
(
ORDER_ID CHAR(10)NOT NULL,
ORDER_DATE DATE NOT NULL,
CUSTUMER_ID CHAR(10) NOT NULL,
constraint pk_ORDER_ID primary key (ORDER_ID),
constraint fk_CUSTUMER_ID foreign key (CUSTUMER_ID) REFERENCES T_CUSTOMER (CUSTUMER_ID)
);
create table T_ORDER_LINE
(
ORDER_ID CHAR(10)NOT NULL,
PRODUCT_ID CHAR(20) NOT NULL,
ORDERED_QUANTRI INT,
constraint pk_a primary key (ORDER_ID PRODUCT_ID, ),
constraint fk_ORDER_ID foreign key (ORDER_ID)REFERENCES T_ORDER ORDER_ID), constraint fk_PRODUCT_ID foreign key (PRODUCT_ID)REFERENCES T_PRODUCT (PRODUCT_ID),
constraint ch_ORDERED_QUANTRI check (ORDERED_QUANTRI 0> )
);
Trang 9PRODUCT_ID CHAR(20) NOT NULL,
PRODUCT_DESCRIPTION NVARCHAR(100) NOT NULL, MÔ TA SAN PHẨM
PRODUCT_FINISH NVARCHAR(50)NOT NULL,
STANDARD_PRICE int, giá chuân
PRODUCT_LINE_ID NVARCHAR(50), DÒNG SAN PHẨM
constraint pk_PRODUCT_ID primary key (PRODUCT_ID),
constraint ch_STANDARD_PRICE check(STANDARD_PRICE > )0 );
drop table T_CUSTOMER
drop table T_ORDER_LINE
drop table T_ORDER
drop table T_PRODUCT
- BẵSt đâGu nhập dữ liệu
- Nhập dữ liệu cho bang T_CUSTOMER
select from T_CUSTOMER
insert into T_CUSTOMER
values (N'KH01' N'Lê Nhật Đẵng', ,N'5 Ngổ QuyêGn' N'Đà ,
NẵFng' N'Kho, e' N'MBD001001', );
insert into T_CUSTOMER
values (N'KH02' N'Lê Nhật Phong' N'5 Ngổ QuyêG, , n' N'Đà ,
NẵFng' N'Kho, e' N'MBD001002', );
insert into T_CUSTOMER
values (N'KH03' N'Lê Nhật Ngọc' N'5 Ngổ QuyêG, , n' N'Đà ,
NẵFng' N'Kho, e' N'MBD001003', );
insert into T_CUSTOMER
values (N'KH04' N'Lê Nhật HiêS, u' N'5 Ngổ QuyêG, n' N'Đà ,
NẵFng' N', KHỏe' N'MBD001004', );
insert into T_CUSTOMER
values (N'KH05' N'Lê Nhật Khiêm' N'5 Ngổ QuyêG, , n' N'Đà ,
NẵFng' N'ÔS, m' N'MBD001005', );
Nhập dữ liệu cho bang T_ORDER
select from C
insert into T_ORDER
values (N'ORDER1' N'07/31/2021' N'KH01', , );
insert into T_ORDER
values (N'ORDER2' N'08/21/, 2023',N'KH02');
insert into T_ORDER
values (N'ORDER3' N'09/21/, 2022',N'KH03');
insert into T_ORDER
values (N'ORDER4' N'10/21/, 2020',N'KH04');
insert into T_ORDER
values (N'ORDER5' N'11/21/, 2024',N'KH05');
Nhập dữ liệu bang T_ORDER_LINE
select from T_ORDER_LINE
INsert into T_ORDER_LINE
values (N'ORDER1' N'SA, N PHẨM 1',N'1');
INsert into T_ORDER_LINE
values (N'ORDER2' N'SA, N PHẨM 2' N' 2', );
INsert into T_ORDER_LINE
values (N'ORDER3' N'SA, N PHẨM 3',N'3');
INsert into T_ORDER_LINE
N PHẨM 4' N' 4'
Trang 10values (N'ORDER5' N'SA, N PHẨM 5',N'5');
delete T_ORDER_LINE;
delete T_ORDER
delete T_CUSTOMER
delete T_PRODUCT
NHẬP DỮ LIỆU BANG T_PRODUCT
SELECT FROM T_PRODUCT
INSERT INTO T_PRODUCT
VALUES (N'SAN PHẨM 1' N'DÙNG ĐỂ VỢT MUÔFI' N'ĐÃ HOÀN , ,
THIỆN' N'300000' N'ID001', , );
INSERT INTO T_PRODUCT
VALUES (N'SAN PHẨM 2' N'DÙNG ĐỂ CHIỂSU SÁNG ĐƯỜNG ĐỂM' N'ĐÃ HOÀN , ,
THIỆN' N'400000' N'ID002', , );
INSERT INTO T_PRODUCT
VALUES (N'SAN PHẨM 3' N'DÙNG ĐỂ BẨFY CHUỘT' N'ĐÃ HOÀN , ,
THIỆN' N'500000' N'ID003', , );
INSERT INTO T_PRODUCT
VALUES (N'SAN PHẨM 4' N'DÙNG ĐỂ BẮST CÁ' N'ĐÃ HOÀN THIỆN', , ,N'600000' N'ID004', ); INSERT INTO T_PRODUCT
VALUES (N'SAN PHẨM 5' N'DÙNG ĐỂ CHỤP A, NHI',N'ĐÃ HOÀN
THIỆN' N'700000' N'ID005', , );
ViêSt 5 câu lệnh cập nhật dữ liệu
update T_CUSTOMER
Set STATE N'Khoe 'A
WHERE CUSTUMER_ID ='KH01';
update T_CUSTOMER
Set STATE N'Khoe '
WHERE CUSTUMER_ID ='KH04';
update T_PRODUCT
Set PRODUCT_DESCRIPTION = N'AAA'
WHERE PRODUCT_ID ='SAN PHẨM 2';
update T_PRODUCT
Set PRODUCT_DESCRIPTION = N'BBB'
WHERE PRODUCT_ID ='SAN PHẨM 3';
update T_CUSTOMER
Set CUSTUMER_NAME =N'CCC'
WHERE CUSTUMER_ID ='KH05';
ViêSt 5 câu lệnh xóa dữ liệu
select from T_ORDER
delete from T_ORDER
where ORDER_ID = N'ORDER1';
delete from T_ORDER
where ORDER_ID = N'ORDER';
delete from T_ORDER
where ORDER_ID = N'ORDER3';
Trang 11where ORDER_ID = N'ORDER4';
delete from T_ORDER
where ORDER_ID = N'ORDER5';
Truy xuâSt dữ liệu với câu lệnh SELECT
/* Cus pháp chung cua câu lệnh SELECT có dạng
S
Bài
Tập -1 Cho biêt khác hàng có tên bẵSt đâGu từ chữ L
*/
1
T_CUSTOMER CUSTUMER_NAME
2 cHO BIETES c_id c_name C_ADDRES cu, , a những khách hàng ở thành phổS "Đà nẮFNG"
CUSTUMER_ID CUSTUMER_NAME CUSTUMER_ADDRESS T_CUSTOMER
CITY =(N'ĐÀ NẮFNG');
3 Hiên thị thổng tin khách hàng đổi tên trường Mã só Họ Tên Khách Địa : , , Chỉ
CUSTUMER_ID
select AS N'Mã SổS Nhân Viên' CUSTUMER_NAME , as N'Họ Tên Khách', CUSTUMER_ADDRESS N'Địa Chỉ'FROM T_CUSTOMER;
4 Hiên thị C_ID cua những khách hàng đã tham gia mua hàng
select count(distinct (CUSTUMER_ID)) ASN'Các Khách Hàng Đã Mua Hàng'from T_ORDER;
5 Hiên Thị thổng tin 5 khách hàng đàu tiên T_cus_tops
5 T_CUSTOMER
Hiên thị thổng tin C_ID, C_NAME, P_ID,P_NAME, ORDER_Q,S_PRICE_TOTAL
CUSTUMER_ID CUSTUMER_NAME PRODUCT_ID PRODUCT_FINISH
ORDER_QUANTRI, STANDARD_PRICE TOTAL,
T_CUSTOMER A T_ORDER B T_ORDER_LINE C T_PRODUCT D
WHERE ( A = CUSTUMER_ID) AND ( C = PRODUCT_ID);
Hiên thị những mặt hàng có giá từ
Hiên thị những mặt hàng có mã (a , b , c , d)
Hiên thị thổng tin hóa đởn trong tháng 8 nẵm 2020 mua những mặt hàng nào
Trang 12Ví dụ VIDU
Create database VIDU
Use VIDU
CREATE table HOCPHAN
(
MAHP nvarchar (10)not null,
TENHP nvarchar (50) not null,
SISO int,
constraint pk_MAHP primary key (MAHP)
);
CREATE table DANGKI
(
MASV nvarchar (10)not null,
MAHP nvarchar (10)not null,
constraint pk_MASV primary key (MASV MAHP),,
constraint fk_MAHP foreign key (MAHP ) references HOCPHAN MAHP) );
Trang 13insert into HOCPHAN
values ('IS401', 'HQTCSDL','5');
insert into HOCPHAN
values ('IS301', 'CSDL', '3');
insert into HOCPHAN
values ('IS201', 'TINUD', '10');
select from HOCPHAN
IF ELSE
ViêSt lệnh thêm 1 đẵng ký cho SV có mã S1 vào học phâGn 'IS401', nêSu ss đk >
ss
lớp Is401 thì đki thành cổng,ngược lại đki thâSt bại
DECLARE @siso int
DECLARE @sisodk int
select @siso = SISO from HOCPHAN
where MAHP = 'IS401'
select @sisodk = count(*)from DANGKI
where MAHP = 'IS401';
if @siso > @sisodk
begin
INSERT INTO DANGKI VALUES('S5' 'IS401', );
PRINT N'ĐẮNG KÝ THÀNH CÔNG';
end
else
PRINT N'ĐẮNG KÝ KHÔNG THÀNH CÔNG';
Tạo bẵng sinh viên
CREATE table SINHVIEN
(
MASV intnot null,
HOTEN nvarchar (40) not null
constraint pk_MASV1 primary key (MASV)
);
chèn dữ liệu cho sinh viên
select from SINHVIEN
insert into SINHVIEN
values ( ,1N'A');
insert into SINHVIEN
values ( ,2N'B');
insert into SINHVIEN
values ( ,5N'C');
insert into SINHVIEN
values ( ,7N'D');
while
ViêSt 1 đoạn vẵn xác định 1 mã SV mới theo qui định như sau:
Mã SV tẵng dâGn, nêSu còn chổF trổSng thì chèn vào(vd: 1,2,5,7 thì sv mới sẽ là 3)
DECLARE @stt int
SET @stt = 1
while exists(select from SINHVIEN where MASV = @stt)
SET @stt = @stt 1+ ;
insert into SINHVIEN
values(@stt , N'NguyêFn Vẵn A');
select from SINHVIEN
Tạo bang nhân viên
CREATE table NHANVIEN
(