Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (912.45 KB, 28 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>Hướng dẫn:</b>
Bài tập thực hành được chia làm nhiều Module
Mỗi Module được thiết kế cho thời lượng là 3 tiết thực hành tại
lớp với sự hướng dẫn của giảng viên.
Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều
Module.
Nội dung kiến thức thực hành:
+Thực hành ngôn ngữ SQL:
- ngôn ngữ định nghĩa dữ liệu: CREATE TABLE
- ngôn ngữ thao tác dữ liệu: INSERT, UPDATE, DELETE...
+Thông qua việc cài đặt cơ sở dữ liệu trên DBMS,SV hiểu rõ hơn về
mơ hình ER, mơ hình quan hệ
<b>Mục đích: </b>
Xác định quan hệ giữa các thực thể, khóa chính, khóa ngoại
<b>Mơ tả: </b>
Cho lược đồ CSDL sau, xác định quan hệ giữa các thực thể, khóa
chính, khóa
ngoại.
<b>G</b>
<b>GGợi ý: </b>
SV xác định và gạch dưới các thuộc tính làm khóa chính.
<b>Mục đích: </b>
Sử dụng ngơn ngữ định nghĩa dữ liệu: CREATE TABLE để cài đặt cấu
trúc bảng vào ngôn ngữ SQL
<b>Mô tả: </b>
Thực hiện lệnh CREATE TABLE với các ràng buộc về khóa chính,
khóa ngoại để tạo các bảng tương ứng với các thực thể đã cho ở Bài
1.
<b>Gợi ý: </b>
SV tự chọn kiểu dữ liệu phù hợp cho từng thuộc tính
<b>Ví dụ tạo bảng SINHVIEN</b>
CREATE TABLE SINHVIEN
( HOTEN VARCHAR(30) NOT NULL,
MASV INT <i><b>PRIMARY KEY</b></i>,
NAM INT NOT NULL,
KHOA VARCHAR(10) NOT NULL
)
<b>Mục đích: </b>
Thực hiện lệnh <i><b>Alter Table... add constraint</b></i> để kiểm tra các ràng
buộc về khóa chính, khóa ngoại (nếu chưa cài đặt ở Bài 2) và các
ràng buộc về dữ liệu được mô tả bên dưới.
<b>Mô tả: </b>
1. Tạo ràng buộc cho thuộc tính năm(Nam) của bảng SINHVIEN:
nam>=1 va nam<=6
2. Tạo ràng buộc về điểm(diem) cho bảng KETQUA: Diem>=0 va
Diem<=10
<b>Gợi ý: </b>
<b>Ví dụ 1: ràng buộc khóa ngoại cho bảng DIEUKIEN</b>
Alter table DIEUKIEN
add constraint fk_dkien foreign key(MAMH)
references MONHOC(MAMH)
<b>Ví dụ 2: ràng buộc về Diem cho bảng KETQUA</b>
Alter table KETQUA
add constraint ck_kqua check(DIEM>=0 and DIEM<=10)
<i>CREATE DATABASE QLSV</i>
<i>USE QLSV</i>
<i>--Table SinhVien</i>
<i>CREATE TABLE SINHVIEN</i>
<i>(</i>
<i>HOTEN VARCHAR(50),</i>
<i>MASV CHAR(7) NOT NULL,</i>
<i>NAM INT,</i>
<i>KHOA CHAR(10)</i>
<i>)</i>
<i>ALTER TABLE SINHVIEN</i>
<i>ADD CONSTRAINT KC_SINHVIEN PRIMARY KEY (MASV)</i>
<i>ALTER TABLE SINHVIEN</i>
<i>ADD CONSTRAINT NAM_RB</i>
<i>CHECK (NAM >=1 AND NAM<=5)</i>
<i>TENMH VARCHAR(30),</i>
<i>MAMH CHAR(8) NOT NULL,</i>
<i>TINCHI INT,</i>
<i>KHOA CHAR(10)</i>
<i>)</i>
<i>ALTER TABLE MONHOC</i>
<i>ADD CONSTRAINT KC_MONHOC PRIMARY KEY(MAMH)</i>
<i>--Table DieuKien</i>
<i>CREATE TABLE DIEUKIEN</i>
<i>(</i>
<i>MAMH CHAR(8) NOT NULL,</i>
<i>MAMH_TRUOC CHAR(8) NOT NULL</i>
<i>)</i>
<i>ALTER TABLE DIEUKIEN</i>
<i>ADD CONSTRAINT KC_DIEUKIEN PRIMARY KEY(MAMH,MAMH_TRUOC)</i>
<i>ALTER TABLE DIEUKIEN</i>
<i>ADD CONSTRAINT KN_DIEUKIEN FOREIGN KEY(MAMH)</i>
<i>REFERENCES MONHOC(MAMH)</i>
<i>--Table KhoaHoc</i>
<i>CREATE TABLE KHOAHOC</i>
<i>(</i>
<i>MAKH INT NOT NULL,</i>
<i>MAMH CHAR(8) NOT NULL,</i>
<i>HOCKY INT,</i>
<i>GIAOVIEN CHAR(10)</i>
<i>)</i>
<i>ALTER TABLE KHOAHOC</i>
<i>ADD CONSTRAINT KC_KHOAHOC PRIMARY KEY(MAKH)</i>
<i>ALTER TABLE KHOAHOC</i>
<i>ADD CONSTRAINT KN_KHOAHOC FOREIGN KEY(MAMH)</i>
<i>REFERENCES MONHOC(MAMH)</i>
<i>--Bang KetQua</i>
<i>CREATE TABLE KETQUA</i>
<i>(</i>
<i>MASV CHAR(7) NOT NULL,</i>
<i>MAKH INT NOT NULL,</i>
<i>DIEM INT</i>
<i>)</i>
<i>ALTER TABLE KETQUA</i>
<i>ADD CONSTRAINT KC_KETQUA PRIMARY KEY(MASV, MAKH)</i>
<i>ALTER TABLE KETQUA</i>
<i>ADD CONSTRAINT KN_KETQUA FOREIGN KEY(MASV)</i>
<i>REFERENCES SINHVIEN(MASV)</i>
<i>ALTER TABLE KETQUA</i>
<i>ADD CONSTRAINT KN2_KETQUA FOREIGN KEY(MAKH)</i>
<i>REFERENCES KHOAHOC(MAKH)</i>
<i>--Nhap</i>
Nội dung kiến thức thực hành:
+Ngôn ngữ thao tác dữ liệu: INSERT, UPDATE, DELETE, SELECT..
<b>Mục đích: </b>
Thực hiện lệnh INSERT để đưa dữ liệu vào các bảng.
<b>Mô tả: </b>
<i>SINHVIEN</i>
HOTEN MASV NA
M
KHOA
Lê An 691007
8
1 CNTT
Hồ Thúy
Hoa
690002
3
2 CNTT
<i>MONHOC</i>
TENMH MAMH TINCH
I
KHOA
Nhập mơn tin
học
COSC131
0
4 CNTT
Tốn rời rạc MATH241
0
3 TOAN
Cấu trúc dữ
liệu
COSC332
0
4 CNTT
Cơ sở dữ liệu COSC338
0
3 CNTT
<i>DIEUKIEN</i>
MaMH MaMH_truo
c
COSC338
0
COSC3320
COSC338
0
MAMH HOCKY GIAOVIEN
85 MATH241
0
0
102 COSC332
0
2 Hoa
112 MATH241
0
1 Lan
119 COSC131
0
1 Chi
135 COSC338
0
1 Nhi
<i>KETQUA</i>
MASV MAK
H
DIE
<b>Ví dụ: Thêm 1 record vào table SINHVIEN</b>
insert SINHVIEN
values('Lê An',’6910078’,2,'CNTT')
<b>Mục đích: </b>
Thực hiện lệnh UPDATE, DELETE, SELECT
1. Sửa bộ <690023,102,8> thành <690023,102,10>
2. Sửa bộ <690023,85,10> thành <690023,85,8>
3. Xóa bộ <690023,85135,10>
4. Lệnh SELECT:
- Thực hiện câu lệnh SELECT đơn giản để xem dữ liệu từ các
bảng đã nhập liệu
- Viết câu lệnh cho phép xem tên của sinh viên
- In ra tên các môn học và số tín chỉ
1. UPDATE KETQUA
SET DIEM=10
WHERE MASV=690023 AND MAKH=102 AND DIEM=8
2. Xem dữ liệu của bảng SINHVIEN:
Nội dung kiến thức thực hành:
+Ngôn ngữ định nghĩa và thao tác dữ liệu: SELECT..
<b>Mục đích: </b>
<b>Mơ tả:</b> Cơ sở dữ liệu dưới đây được sử dụng để quản lý công tác giao hàng trong một công
Trong đó:
Bảng NHACUNGCAP lưu trữ dữ liệu về các đối tác cung cấp hàng cho công ty
Bảng MATHANG lưu trữ các dữ liệu về các mặt hàng hiện có trong cơng ty
Bảng LOAIHANG phân loại các mặt hàng hiện có
Bảng NHANVIEN lưu trữ thơng tin về các nhân viên làm việc trong công ty
Bảng KHACHANG lưu trữ thông tin các khách hàng của công ty
Khách hàng đặt hàng thông qua các đơn đặt hàng(DONDATHANG) .Mỗi đơn đặt
hàng phải do một nhân viên nào đó lập và do đó phải có quan hệ với bảng
Thông tin chi tiết của các đơn đặt hàng được lưu trữ trong bảng chi tiết đơn đặt hàng.
Bảng này có quan hệ với hai bảng DONDATHANG và MAHANG.
<b>1.</b> Sinh viên hãy xây dựng cơ sở dữ liệu trên bằng lệnh định nghĩa dữ liệu
(CREATE TABLE) với các ràng buộc khóa chính, khóa ngoại. Lưu ý:
<b>sinh viên xem dữ liệu mẫu bên dưới để chọn kiểu dữ liệu cho </b>
<b>phù hợp.</b>
<b>2.</b> Sinh viên nhập liệu cho các bảng theo dữ liệu sau.
Lưu ý: những cột để trống sinh viên tự cho dữ liệu.
<b>Table KHÁCH HÀNG</b>
<b>MÃ KH</b> <b>TÊN KH</b> <b><sub>GIAODỊCH</sub>TÊN</b> <b>ĐỊA CHỈ</b> <b>EMAIL</b> <b>ĐIỆN THOAI</b> <b>FAX</b>
CINOTEC ĐIỆN TỐN SÀI GỊN 43 Yết kiêu P 6 Q3 ( )7931752
HUNSAN HỪNG SÁNG 175 Lý Thường Kiệt ( )5465487
LIXCO BỘT GIẶT LIX 79 Bàn Cờ P3 Q5 ( )8952187
SAFICO THUYÛ SẢN XUẤT KHẨU 47 Bải sậy P1 Q11
SJC VÀNG BẠC ĐÁ QUÝ TPHCM 350 CMT8 P12 Q3 ( )8543543
TAFACO THƯƠNG MẠI TẤN PHÁT 4 Trần PhũP Q5 ( )8754875
THADACO XÂY DỰNG THÀNH ĐẠT 6E An Bình Q5 ( )5465454
TRACODI ĐẦU TƯ PHÁT TRIỂN GTVT 343 Nhật Tảo Q10 ( )5321321
TRANACO DỊCH VỤ VẬN TẢI Q 3 156 Lê Đại HànhP7 Q10 ( )8654635
VIETTIEN CTY DỆT MAY VIỆT TIẾN 24 KhuA – CN Tân Tạo ( )4565670
<b>Table NHÂNVIÊN</b>
<b>MÃ</b>
<b>NV</b> <b>HỌ NV</b> <b>TÊN NV</b>
<b>NGÀY</b>
<b>SINH</b>
<b>NGÀY</b>
<b>LÀM VIỆC</b> <b>ĐỊA CHỈ</b>
<b>ĐIỆN</b>
<b>THOẠI</b> <b>LCB</b>
<b>PHỤ</b>
<b>CẤP</b>
1 NGUYỄN LỆ NGA 10/12/64 10/12/94 13Hùng Vương P4 Q5 ( )5465465
<b>Table NHÂNVIÊN</b>
<b>MÃ</b>
<b>NV</b> <b>HỌ NV</b> <b>TÊN NV</b>
<b>NGÀY</b>
<b>SINH</b>
<b>NGÀY</b>
<b>LÀM VIỆC</b> <b>ĐỊA CHỈ</b>
<b>ĐIỆN</b>
<b>THOẠI</b> <b>LCB</b>
<b>PHỤ</b>
<b>CẤP</b>
7 LÂM SƠN HOÀNG 02/03/78 10/10/01 45 Ký Con Q1 ( )8231231
8 NGUYỄN MINH HỒNG 30/10/68 30/10/98 22 Lạc Long Quân Q10 ( )7845138
9 VƯƠNG NGỌC LAN 10/12/67 10/12/97 227 Hai Bà Trưng Q1 ( )7784184
10 NGUYỄ THỊ MAI 10/11/67 10/11/97 12Nguỹên Chí Thanh Q3 ( )3451365
<b>Table DONDATHANG</b>
<b>MÃ</b>
<b>HĐ</b> <b>MÃ KH</b> <b>MÃ NV NGÀY ĐH NGÀY GN HÀNG</b>
<b>NGÀY</b>
<b>CHUYỂN</b>
<b>HÀNG</b>
<b>NƠI GIAO</b>
<b>HÀNG</b>
<b>Table DONDATHANG</b>
<b>MÃ</b>
<b>HĐ</b>
<b>MÃ KH</b> <b>MÃ NV NGÀY ĐH</b>
<b>NGÀY GN HÀNG</b>
<b>NGÀY</b>
<b>CHUYỂN</b>
<b>HÀNG</b>
<b>NƠI GIAO</b>
<b>HAØNG</b>
10221 TRACODI 11 02/08/04 30/09/04
10223 SJC 8 01/02/04 30/01/04
10224 SAFICO 7 02/05/04 28/05/04
10225 COMECO 2 10/05/04 20/05/04
10226 FAHASA 3 11/09/04 30/09/04
10227 SAFICO 8 10/01/04 12/02/04
10228 HUNSAN 2 05/02/04 12/03/04
10230 HUNSAN 2 19/08/04 22/09/04
10238 LIXCO 7 02/08/04 30/08/04
10252 TRACODI 3 15/02/04 11/03/04
<b>Table NHACUNGCAP</b>
MACTY TENCTY TEN
GIAODICH DIACHI THOAIDIEN FAX EMAIL
VIETTIEN Coâng ty may
Việt Tiến VIETEC Khu A- CN Tân Tạo 4574789
DOM Cơng ty Thực
phẩm
DOMEC 23- Nguyễn
Trọng Tuyển
3456678
<b>Table LOAIHANG</b>
<b>MÃ</b>
<b>LOẠI HÀNG</b>
<b>TÊN</b>
<b>LOẠI HAØNG</b>
BK Bánh Kẹo
TP Thực phẩm
TC Trái cây
AQ Aùo quần
<b>Table MATHANG</b>
<b>MAHANG TENHANG</b> <b><sub>CTY</sub>MÃ</b> <b><sub>LHANG</sub>MÃ</b> <b>SL TỒN ĐVỊ TÍNH ĐƠN GIÁ</b>
1 RƯỢU DOM BK 4 CHAI 230.50
2 GIA VÒ HEC TP 2 THÙNG 40.00
3 BÁNH KEM HEC BK 15 CÁI 2.00
4 BƠ HEC BK 5 KG 15.00
5 BÁNH MÌ HEC BK 20 CAÙI 1.00
6 NEM DOM TP 20 KG 10.00
7 TAÙO DOM TC 28 KG 5.00
8 CÁ HỘP HEC TP 5 THÙNG 62.50
9 KẸO DOM BK 10 THÙNG 12.00
10 GẠO DOM TP 50 KG 2.00
11 NEÁP DOM TP 60 KG 3.00
Lan Hà Sơn
<b>Table CHITIETDATHANG</b>
<b>MÃ HĐ MÃ HÀNG ĐƠN GIÁ SỐ LƯỢNG</b>
<b>MỨC</b>
<b>GIẢM</b>
<b>GIÁ</b>
10148 3 2.20 20.00
10148 4 16.50 30.00
10148 9 13.20 20.00
10150 2 44.00 22.00
10150 4 16.50 10.00
10156 8 68.75 20.00
10157 3 2.20 4.00
10157 4 16.50 50.00
10159 1 253.55 30.00
10159 7 5.50 2.00
10162 1 253.55 5.00
10162 2 44.00 10.00
10162 7 5.50 12.00
10172 5 1.10 25.00
10175 8 68.75 20.00
10183 4 16.50 12.00
10183 5 1.10 20.00
10183 6 11.00 12.00
10196 4 16.50 12.00
10196 9 13.20 50.00
10207 5 1.10 15.00
10208 7 5.50 20.00
10224 9 13.20 22.00
10225 1 253.55 10.00
10225 4 16.50 7.00
10225 10 1.10 55.00
10228 5 1.10 15.00
10228 7 5.50 28.00
10230 12 11.00 30.00
10238 1 253.55 4.00
10238 2 44.00 10.00
10238 11 2.20 12.00
10238 9 13.20 20.00
10252 2 44.00 100.00
10252 12 2.20 40.00
Nội dung kiến thức thực hành:
+Ngôn ngữ định nghĩa và thao tác dữ liệu: SELECT với các hàm tính
tốn, gộp nhóm, SELECT lồng nhau.
<b>Sinh viên dùng lệnh SELECT thực hiện các truy vấn sau:</b>
1. 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
<b>SELECT</b> MAHANG,TENHANG,SOLUONG
<b>FROM</b> MATHANG
2. Họ tên và địa chỉ và năm bắt đầu làm việc của các nhân viên
<b>SELECT</b> HO,TEN,DIACHI,NGAYLAMVIEC
<b>FROM </b>NHANVIEN
3. Địa chỉ và điện thoại của nhà cung cấp có tên giao dịch VIETEC là gi?
<b>SELECT </b> DIACHI, DIENTHOAI
<b>FROM</b> NHACUNGCAP
<b>WHERE</b> TENGIAODICH='VIETEC'
4. Cho biết mã và tên của các mặt hàng có giá lớn hơn 50000 và số lượng hiện
ít hơn 50.
<b>SELECT</b> MAHANG,TENHANG
<b>FROM</b> MATHANG
<b>WHERE</b> DONGIA>50 AND SOLUONG<50
5. Cho biết mỗi mặt hàng trong công ty do ai cung cấp.
<b>SELECT</b> TENHANG,NHACUNGCAP.TENCONGTY
<b>FROM </b>MATHANG,NHACUNGCAP
<b>WHERE</b> MATHANG.MACONGTY=NHACUNGCAP.MACONGTY
6. Loại hàng thực phẩm do những công ty nào cung cấp
<b>SELECT </b>
LOAIHANG.TENLOAIHANG,TENHANG,
NHACUNGCAP.TENCONGTY
<b>FROM</b> LOAIHANG,MATHANG,NHACUNGCAP
<b>WHERE</b> LOAIHANG.MALOAIHANG=MATHANG.MALOAIHANG
AND MATHANG.MACONGTY=NHACUNGCAP.MACONGTY
AND LOAIHANG.MALOAIHANG='TP'
7. Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng Sữa hộp của công ty?
<b>SELECT </b>KHACHHANG.TENCONGTY,MATHANG.TENHANG
<b>FROM </b>
<b>WHERE </b>CHITIETDATHANG.MAHANG=MATHANG.MAHANG
AND
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
AND
KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG
AND TENHANG='CA HOP'
8. Đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thời gian và địa điểm giao hàng
là ở đâu?
<b>SELECT </b>
KHACHHANG.TENCONGTY,NHANVIEN.TEN,DONDATHANG.NOI
<b>FROM </b>NHANVIEN,DONDATHANG,KHACHHANG
<b>WHERE</b> NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN
AND
DONDATHANG.MAKHACHHANG=KHACHHANG.MAKHACHHANG
AND DONDATHANG.MANHANVIEN=1
9. Hãy cho biết số tiền lương mà công ty phải trả cho mỗi nhân viên là bao nhiêu (lương
= lương cơ bản + phụ cấp)
<b>SELECT </b>MANHANVIEN,HO,TEN,LUONGCANBAN+PHUCAP AS LUONG
<b>FROM </b>NHANVIEN
<b>Sinh viên dùng lệnh DELETE để thực hiện các yêu cầu sau:</b>
10. Xóa những nhân viên đã làm việc trong công ty quá 30 năm
<b>DELETE FROM</b> NHANVIEN
<b>WHERE</b> ( 2010-Year(ngaylamviec))>30
CÁCH KHÁC:
<b>DELETE FROM </b>NHANVIEN
<b>WHERE</b> (YEAR (GETDATE())-YEAR(NGAYLAMVIEC))>30
11. Xóa khỏi bảng khách hàng hiện khơng có đơn đặt hàng nào
<b>DELETE FROM</b> khachhang
<b>WHERE </b>makh in (select makh,count(sohd)
<b>FROM</b> khachhang inner join dondathang
on khachhang.makh=dondathang.makh
group by makh
+ Nội dung kiến thức thực hành:
+Quản lý tài khoản cho người sử dụng
sp_helpsrvrolemember: liệt kê danh sách tài khoản đã gán nhóm quyền
sp_helpsrvrole : liệt kê danh sách nhóm quyền SQL Server 2008
sp_srvrolepermission
1. Tạo tài khoản từ hệ điều hành Windows(Windows Authentication)
Nếu chọn đặt Windows authentication thì tài khoản khai báo phải tồn tại trong hệ
điều hành
Trong hệ điều hành Windows, tạo tài khoản tên QUANGHIEP
Để tạo mới tài khoản trong hệ điều hành Windows chọn vào Start \ Setting \ Control
Panel \ Performance and Maintenance\ Administrative Tools\ Computer
Management\ System Tools\ Local Users and Groups và right click User\ New User
Cửa sổ kế tiếp xuất hiện
Nhấn vào nút Advanced, tiếp tục nhấn nút Find Now, danh sách tài khoản của hệ điều
hành liệt kê như hình:
Chọn vào tài khoản QUANGHIEP rồi nhấn nút OK.
Nhấn nút OK, tài khoản trong cửa sổ tên sẽ khai báo trong phần login name.
2. Tạo tài khoản trong SQL Server (SQL Server Authentication)
(Bỏ chọn User must change password at next login, nếu không sẽ gây ra lỗi)
3. Sinh viên tự tạo 10 tài khoản
4. Server Roles
Gán quyền cho tài khoản vừa tạo
Gán quyền cho tài khoản <b>thuysoftware</b>
5. Trạng thái của tài khoản
6. Sinh viên cấp quyền cho 10 tài khoản vừa tạo.
7. Tài khoản của người sử dụng trên cơ sở dữ liệu
Tạo thư mục SQLData trong đĩa F:\
Tạo cơ sở dữ liệu :
CREATE DATABASE SmallWorks ON PRIMARY
(NAME = 'SmallWorksPrimary',
FILENAME = 'F:\SQLData\SmallWorks.mdf',
SIZE = 10MB,
FILEGROWTH = 20%,
MAXSIZE = 50MB),
FILEGROUP SWUserData1
(NAME = 'SmallWorksData1' ,
FILENAME = 'F:\SQLData\SmallWorksData1.ndf',
SIZE = 10MB,
FILEGROWTH = 20%,
MAXSIZE = 50MB),
FILEGROUP SWUserData2
(NAME = 'SmallWorksData2',
FILENAME = 'F:\SQLData\SmallWorksData2.ndf',
SIZE = 10MB ,
FILEGROWTH = 20% ,
MAXSIZE = 50MB)
LOG ON
FILENAME = 'C:\SQLData\SmallWorks_log.ldf' ,
SIZE = 10MB ,
FILEGROWTH = 10% ,
MAXSIZE = 20MB)
GO
USE SmallWorks
GO
CREATE TABLE dbo.Person(
PersonID int NOT NULL,
FirstName varchar(50)NOT NULL,
MiddleName varchar(50)NULL,
LastName varchar(50)NOT NULL,
EmailAddress nvarchar(50)NULL )
CREATE TABLE dbo.Product(
ProductID int NOT NULL
ProductName varchar(75) NOT NULL
ProductNumber nvarchar(25)NOT NULL
StandardCost money NOT NULL
ListPrice money NOT NULL )
7.1 Cách 1
7.2 Cách 2
Khai báo tài khoản truy cập vào cơ sở dữ liệu SmallWorks.
Chọn cơ sở dữ liệu SmallWorks \ Security \ right click Users \ New User
Xuất hiện hộp thoại Database User , gõ tên của user name.
nhấn chọn OK
+ Nội dung kiến thức thực hành:
+ Tạo CSDL Quản Lý Bán Sữa.
+ Quản lý tài khoản cho người sử dụng
+ Cấp quyền truy cập CSDL Quản Lý Bán Sữa
CSDL Quản Lý Bán Sữa:
HangSua(MaHangSua,TenHangSua,DiaChi,DienThoai,Email)
Sua(MaSua,TenSua,MaHangSua,MaLoaiSua,TrongLuong,DonGia,TP_ddinhduong,Loiich)
KhachHang(MaKH,TenKH,Phai,DiaChi,DienThoai,Email)
HoaDon(SoHoaDon,NgayHD,MaKH,Trigia)
CT_HoaDon(SoHD,MaSua,SoLuong,Dongia)
1. Sinh viên hãy xây dựng cơ sở dữ liệu trên bằng lệnh định nghĩa dữ liệu
(CREATE TABLE) với các ràng buộc khóa chính, khóa ngoại.
2. Sinh viên nhập liệu cho các bảng
3. Sinh viên dùng lệnh SELECT thực hiện các truy vấn sau:
<b>a.</b> Liệt kê danh sách các <b>sữa của hãng Abbott</b> có tên sữa, trọng lượng,
lợi ích trong đó <b>trọng lượng sắp tăng dần</b>
<b>SELECT</b> TENSUA,TRONGLUONG,LOIICH
<b>FROM</b> SUA, HANGSUA
<b>WHERE</b> SUA.MAHANGSUA=HANGSUA.MAHANGSUA
AND TENHANGSUA=’Abbott’
<b>ORDER BY</b> TRONGLUONG
<b>b.</b> Cho biết 3 sản phẩm sữa của hãng Vinamilk có trọng lượng nặng nhất, gồm
các thông tin: tên sữa, trọng lượng
SELECT TENSUA, TRONGLUONG
FROM SUA,HANGSUA
WHERE SUA.MAHANGSUA=HANGSUA.MAHANGSUA
AND TENHANGSUA=’vinamilk’
<b>c.</b> Cho biết giá trị TB của các hóa đơn được làm trịn đến hàng nghìn.
SELECT ROUND(AVG(SOLUONG*DONGIA),-3) AS GIATRITB
FROM CT_HOADON
<b>d.</b> Liệt kê danh sách các hóa đơn trong tháng 9 năm 2009
SELECT *
FROM HOADON
WHERE MONTH(NGAYHD)=9 AND
YEAR(NGAYHD)=2009
<b>e.</b> Liệt kê danh sách các hãng sữa có tên hãng sữa, địa chỉ, điện thoại, trong đó
tên hãng sữa in Hoa
SELECT UPPER(TENHANGSUA),DIACHI,DIENTHOAI
FROM HANGSUA
<b>f.</b> Liệt kê danh sách sữa đã bán được trong tháng 9 năm 2007 có tên sữa, trọng
lượng, đơn giá, trong đó: trọng lượng có them ‘gr’, dơn giá có định dạng tiền
tệ và có them ‘VNĐ’.
SELECT TENSUA,concat(TRONGLUONG,’gr’),
Concat(format(c.DONGIA,0),’VND’)
WHERE c.SOHD=h.SOHOADON AND s.MASUA=C.MASUA
AND MONTH(NGAYHD)=9 and year(NGAYHD)=2007
<b>g.</b> Thống kê tổng số sản phẩm theo hãng sữa, gồm các thong tin: tên hãng sữa,
tổng số sản phẩm. Sắp xếp tăng dựa theo tổng số sản phẩm.
SELECT TENHANGSUA, COUNT(*) AS TONGSO SP
FROM SUA, HANGSUA
WHERE SUA.MAHANGSUA=HANGSUA.MAHANGSUA
GROUP BY TENHANGSUA
<b>h.</b> Thống kê số sản phẩm bán được trong tháng 9 năm 2009 của mỗi sữa.
SELECT MASUA, SUM(SOLUONG) AS SOSP
FROM CT_HOADON c, HOADON h
WHERE c.SoHD=h.SoHD AND month(NgayHD)=9 and
Year(NgayHD)=2009
GROUP BY MaSua
<b>i.</b> Hãy tìm những hóa đơn mua hàng có tổng trị giá lớn hơn 2.000.000 VNĐ
SELECT SOHD, SUM(SOLUONG*DONGIA) AS TONGTRIGIA
FROM CT_HOADON
GROUP BY SOHD
HAVING SUM(SOLUONG*DONGIA) > 2000000
<b>j.</b> Liệt kê các khách hàng chưa mua hàng.
SELECT *
FROM KHACHHANG
WHERE MAKH NOT IN ( SELECT MAKHACHHANG
FROM HOADON)
4. Sinh viên tạo 10 tài khoản từ hệ điều hành Windows(Windows Authentication) và cấp
quyền cho 10 tài khoản vừa tạo.