module 10 - cdth7lt.files.wordpress.com€¦  · web viewhướng dẫn: bài tập thực hành...

32
Hướng Dẫn Thực Hành Hướng Dẫn Thực Hành Hướng dẫn: 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. Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng. Những sinh viên chưa hoànn tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà. 1

Upload: others

Post on 30-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Hướng Dẫn Thực HànhHướng Dẫn Thực Hành

Hướng dẫn:

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. Sinh viên phải làm tất cả các bài tập trong các Module ở tuần

tương ứng. Những sinh viên chưa hoànn tất phần bài tập tại lớp có trách nhiệm tự làm tiếp tục ở nhà.

1

Page 2: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 1

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ài 1. Mục đích: Xác định quan hệ giữa các thực thể, khóa chính, khóa ngoạiMô tả: 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.

G

GGợi ý: SV xác định và gạch dưới các thuộc tính làm khóa chính.

Bài 2: Mục đích: 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ữ SQLMô tả: 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. Gợi ý: SV tự chọn kiểu dữ liệu phù hợp cho từng thuộc tính Ví dụ tạo bảng SINHVIEN

2

MONHOCTenMHMaMHTinchiKhoa

SINHVIENHoTenMasvNamKhoa

DIEUKIENMamhMamh_truoc

KHOAHOCMakhoahocMamhHockyGiaovien

KETQUAMasvMakhDiem

Page 3: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

CREATE TABLE SINHVIEN( HOTEN VARCHAR(30) NOT NULL, MASV INT PRIMARY KEY, NAM INT NOT NULL, KHOA VARCHAR(10) NOT NULL)

Bài 3:Mục đích: Thực hiện lệnh Alter Table... add constraint để 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.Mô tả: 1. Tạo ràng buộc cho thuộc tính năm(Nam) của bảng SINHVIEN:

nam>=1 va nam<=62. Tạo ràng buộc về điểm(diem) cho bảng KETQUA: Diem>=0 va

Diem<=10Gợi ý: Ví dụ 1: ràng buộc khóa ngoại cho bảng DIEUKIENAlter table DIEUKIEN

add constraint fk_dkien foreign key(MAMH)references MONHOC(MAMH)

Ví dụ 2: ràng buộc về Diem cho bảng KETQUAAlter table KETQUAadd constraint ck_kqua check(DIEM>=0 and DIEM<=10)

CREATE DATABASE QLSVUSE QLSV--Table SinhVienCREATE TABLE SINHVIEN(

HOTEN VARCHAR(50),MASV CHAR(7) NOT NULL,NAM INT,KHOA CHAR(10)

)ALTER TABLE SINHVIENADD CONSTRAINT KC_SINHVIEN PRIMARY KEY (MASV)

ALTER TABLE SINHVIENADD CONSTRAINT NAM_RBCHECK (NAM >=1 AND NAM<=5)--Table MonHocCREATE TABLE MONHOC(

3

Page 4: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

TENMH VARCHAR(30),MAMH CHAR(8) NOT NULL,TINCHI INT,KHOA CHAR(10)

)ALTER TABLE MONHOCADD CONSTRAINT KC_MONHOC PRIMARY KEY(MAMH)--Table DieuKienCREATE TABLE DIEUKIEN(

MAMH CHAR(8) NOT NULL,MAMH_TRUOC CHAR(8) NOT NULL

)ALTER TABLE DIEUKIENADD CONSTRAINT KC_DIEUKIEN PRIMARY KEY(MAMH,MAMH_TRUOC)

ALTER TABLE DIEUKIENADD CONSTRAINT KN_DIEUKIEN FOREIGN KEY(MAMH)REFERENCES MONHOC(MAMH)

--Table KhoaHocCREATE TABLE KHOAHOC(

MAKH INT NOT NULL,MAMH CHAR(8) NOT NULL,HOCKY INT,GIAOVIEN CHAR(10)

)ALTER TABLE KHOAHOCADD CONSTRAINT KC_KHOAHOC PRIMARY KEY(MAKH)

ALTER TABLE KHOAHOCADD CONSTRAINT KN_KHOAHOC FOREIGN KEY(MAMH)REFERENCES MONHOC(MAMH)

--Bang KetQuaCREATE TABLE KETQUA(

MASV CHAR(7) NOT NULL,MAKH INT NOT NULL,DIEM INT

)ALTER TABLE KETQUAADD CONSTRAINT KC_KETQUA PRIMARY KEY(MASV, MAKH)

ALTER TABLE KETQUAADD CONSTRAINT KN_KETQUA FOREIGN KEY(MASV)REFERENCES SINHVIEN(MASV)

ALTER TABLE KETQUAADD CONSTRAINT KN2_KETQUA FOREIGN KEY(MAKH)REFERENCES KHOAHOC(MAKH)

--NhapINSERT SINHVIEN

4

Page 5: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

VALUES ('VAN PHU TOAN','0733031',2,'CNTT')

5

Page 6: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 2

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ài 1: Mục đích: Thực hiện lệnh INSERT để đưa dữ liệu vào các bảng.Mô tả:

SINHVIENHOTEN MASV NA

MKHOA

Lê An 6910078

1 CNTT

Hồ Thúy Hoa

6900023

2 CNTT

MONHOCTENMH MAMH TINCH

IKHOA

Nhập môn tin học

COSC1310

4 CNTT

Toán rời rạc MATH2410

3 TOAN

Cấu trúc dữ liệu

COSC3320

4 CNTT

Cơ sở dữ liệu COSC3380

3 CNTT

DIEUKIENMaMH MaMH_truo

cCOSC3380

COSC3320

COSC3380

MATH2410

COSC3320

COSC1310

KHOAHOCMAKH

MAMH HOCKY GIAOVIEN

85 MATH241 1 Lan

6

Page 7: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

092 COSC131

01 Chi

102 COSC3320

2 Hoa

112 MATH2410

1 Lan

119 COSC1310

1 Chi

135 COSC3380

1 Nhi

KETQUAMASV MAK

HDIEM

6910078

119 8

6910078

112 6

6900023

85 10

6900023

92 9

6900023

102 8

6900023

135 10

Gợi ý: Ví dụ: Thêm 1 record vào table SINHVIENinsert SINHVIENvalues('Lê An',’6910078’,2,'CNTT')

Bài 2: Mục đích: Thực hiện lệnh UPDATE, DELETE, SELECTMô tả: 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ỉ

7

Page 8: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

5. In ra tên sinh viên

Gợi ý: 1. UPDATE KETQUA

SET DIEM=10WHERE MASV=690023 AND MAKH=102 AND DIEM=8

2. Xem dữ liệu của bảng SINHVIEN: SELECT * FROM SINHVIEN

8

Page 9: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 3

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ài 1: Mục đích: Mô tả: 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 ty kinh doanh. Các bảng trong cơ sở dữ liệu này được biểu diễn trong sơ đồ dưới đây.

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 NHANVIEN

9

Page 10: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

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.

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. Lưu ý: sinh viên xem dữ liệu mẫu bên dưới để chọn kiểu dữ liệu cho phù hợp.

2. 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.

Table KHAÙCH HAØNG

MAÕ KH TEÂN KH TEÂNGIAODÒCH ÑÒA CHÆ EMAIL ÑIEÄN

THOAI FAX

CINOTEC ÑIEÄN TOAÙN SAØI GOØN 43 Yeát kieâu P 6 Q3 ( )7931752COMECO VAÄT TÖ THIEÁT BÒ GTVT 226 Thuaän Kieàu

Q11( )8456781

FAHASA PHAÙT HAØNH SAÙCH SAØI GOØN

12 Thuaän kieàu Q5 ( )8452792

FISC DÒCH VUÏ ÑAÀU TÖ NÖÔÙC NGOAØI

31 Tröông Ñònh P6 Q1

HUNSAN HÖØNG SAÙNG 175 Lyù Thöôøng Kieät

( )5465487

LIXCO BOÄT GIAËT LIX 79 Baøn Côø P3 Q5 ( )8952187SAFICO THUYÛ SAÛN XUAÁT

KHAÅU47 Baûi saäy P1 Q11

SJC VAØNG BAÏC ÑAÙ QUYÙ TPHCM

350 CMT8 P12 Q3 ( )8543543

TAFACO THÖÔNG MAÏI TAÁN PHAÙT

4 Traàn PhuõP Q5 ( )8754875

THADACO XAÂY DÖÏNG THAØNH ÑAÏT

6E An Bình Q5 ( )5465454

TRACODI ÑAÀU TÖ PHAÙT TRIEÅN GTVT

343 Nhaät Taûo Q10 ( )5321321

TRANACO DÒCH VUÏ VAÄN TAÛI Q 3 156 Leâ Ñaïi HaønhP7 Q10

( )8654635

VIETTIEN CTY DEÄT MAY VIEÄT TIEÁN

24 KhuA – CN Taân Taïo

( )4565670

Table NHAÂNVIEÂN

10

Page 11: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

MAÕ

NVHOÏ NV TEÂN

NVNGAØY SINH

NGAØYLAØM VIEÄC

ÑÒA CHÆ ÑIEÄN THOAÏI LCB PHUÏ

CAÁP

1 NGUYEÃN LEÄ NGA 10/12/64 10/12/94 13Huøng Vöông P4 Q5

( )5465465

2 HAØ VÓNH PHAÙT 07/12/79 02/03/02 89 Ñoàng Khôûi Q1 ( )8767461

3 TRAÀN TUYEÁT

OANH 27/02/67 30/10/97 45Leâ Quí Ñoân Q3 ( )5465465

4 NGUYEÃN KIM NGOÏC 25/12/80 10/12/07 187 Haäu Giang P5Q6

( )5654654

5 TRÖÔNG DUY HUØNG 10/10/82 10/11/07 77 Tröông ÑònhQ1 ( )5871544

6 LÖÔNG BAÙ THAÉNG 10/12/68 06/03/98 92 Leâ ThaùnhToânQ1

( )8754165

7 LAÂM SÔN HOAØNG

02/03/78 10/10/01 45 Kyù Con Q1 ( )8231231

8 NGUYEÃN MINH

HOÀNG 30/10/68 30/10/98 22 Laïc Long Quaân Q10

( )7845138

9 VÖÔNG NGOÏC LAN 10/12/67 10/12/97 227 Hai Baø Tröng Q1

( )7784184

10 NGUYEÃ THÒ MAI 10/11/67 10/11/97 12Nguyõeân Chí Thanh Q3

( )3451365

11 LEÂ VAÊN HUØNG 06/03/57 06/03/90 56Nguyeãn TraõiQ1 ( )5745785

12 NGUYEÃN THÒ HOA 10/10/66 10/10/96 12Nguyeãn Traõi Q1 ( )6465465

Table DONDATHANG

MAÕ HÑ MAÕ KH MAÕ

NVNGAØY

ÑHNGAØY GN

HAØNGNGAØY

CHUYEÅN HAØNG

NÔI GIAO HAØNG

10148

FISC 1 10/01/04 20/02/04

10150

HUNSAN 4 03/05/04 29/06/04

10156

FISC 4 12/01/04 05/09/04

10157

SAFICO 2 10/01/04 20/05/04

10158

HUNSAN 5 11/02/04 05/03/04

10159

COMECO 8 04/01/04 06/07/04

11

Page 12: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Table DONDATHANG

MAÕ HÑ MAÕ KH MAÕ

NVNGAØY

ÑHNGAØY GN

HAØNGNGAØY

CHUYEÅN HAØNG

NÔI GIAO HAØNG

10160

THADACO 11 13/01/04 30/06/04

10162

TRANACO 7 25/01/04 10/07/04

10163

TRACODI 3 02/05/04 06/07/04

10166

SJC 9 21/01/04 12/09/04

10172

TAFACO 9 12/08/04 17/09/04

10175

TRANACO 9 03/05/04 07/08/04

10177

COMECO 2 29/01/04 05/07/04

10183

SAFICO 2 01/01/04 02/06/04

10186

TRACODI 11 15/04/04 30/04/04

10196

SJC 1 28/06/04 01/07/04

10202

COMECO 4 18/05/04 22/08/04

10207

SJC 2 12/05/04 10/06/04

10208

TRACODI 8 10/02/04 17/05/04

10210

SJC 1 25/05/04 01/09/04

10214

HUNSAN 6 11/07/04 12/08/04

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

12

Page 13: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Table DONDATHANG

MAÕ HÑ MAÕ KH MAÕ

NVNGAØY

ÑHNGAØY GN

HAØNGNGAØY

CHUYEÅN HAØNG

NÔI GIAO HAØNG

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

Table NHACUNGCAP

MACTY TENCTY TENGIAODICH DIACHI DIEN

THOAI FAX EMAILVIETTIEN Coâng ty

may Vieät Tieán

VIETEC Khu A- CN Taân Taïo

4574789

DOM Coâng ty Thöïc phaåm

DOMEC 23- Nguyeãn Troïng Tuyeån

3456678

HEC Coâng ty TNHH Lan Haø

HECCO 12 Nguyeãn Thaùi Sôn

4554678

Table LOAIHANGMAÕLOAÏI HAØNG

TEÂNLOAÏI HAØNG

BK Baùnh KeïoTP Thöïc

phaåmTC Traùi caâyAQ Aùo quaàn

Table MATHANG

MAHANG TENHANG

MAÕCTY

MAÕLHAN

GSL

TOÀNÑVÒ TÍNH

ÑÔN GIAÙ

1 RÖÔÏU DOM BK 4 CHAI 230.502 GIA VÒ HEC TP 2 THUØNG 40.003 BAÙNH

KEMHEC BK 15 CAÙI 2.00

4 BÔ HEC BK 5 KG 15.005 BAÙNH MÌ HEC BK 20 CAÙI 1.006 NEM DOM TP 20 KG 10.007 TAÙO DOM TC 28 KG 5.008 CAÙ HOÄP HEC TP 5 THUØNG 62.509 KEÏO DOM BK 10 THUØNG 12.00

10 GAÏO DOM TP 50 KG 2.0011 NEÁP DOM TP 60 KG 3.0012 AÙO SÔ MI VIETTIEN AQ 12 CAÙI 50

Table CHITIETDATHANG

MAÕ HÑ

MAÕ HAØNG

ÑÔN GIAÙ

SOÁ LÖÔÏNG

MÖÙC GIAÛM GIAÙ

10148 3 2.20 20.0010148 4 16.50 30.0010148 9 13.20 20.0010150 2 44.00 22.0010150 4 16.50 10.0010156 8 68.75 20.0010157 3 2.20 4.0010157 4 16.50 50.0010159 1 253.55 30.0010159 7 5.50 2.0010162 1 253.55 5.0010162 2 44.00 10.0010162 7 5.50 12.0010172 5 1.10 25.0010175 8 68.75 20.0010183 4 16.50 12.0010183 5 1.10 20.0010183 6 11.00 12.0010196 4 16.50 12.0010196 9 13.20 50.0010207 5 1.10 15.0010208 7 5.50 20.0010224 9 13.20 22.0010225 1 253.55 10.0010225 4 16.50 7.0010225 10 1.10 55.0010226 4 16.50 21.0010226 6 11.00 110.0010227 12 44.00 15.0010228 4 16.50 45.0010228 5 1.10 15.0010228 7 5.50 28.0010230 12 11.00 30.0010238 1 253.55 4.0010238 2 44.00 10.0010238 11 2.20 12.0010238 9 13.20 20.0010252 2 44.00 100.0010252 12 2.20 40.0010252 4 16.50 25.00

13

Page 14: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

14

Page 15: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 4

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 toán, gộp nhóm, SELECT lồng nhau.

Sinh viên dùng lệnh SELECT thực hiện các truy vấn sau: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

SELECT MAHANG,TENHANG,SOLUONGFROM 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ênSELECT HO,TEN,DIACHI,NGAYLAMVIECFROM NHANVIEN

3. Địa chỉ và điện thoại của nhà cung cấp có tên giao dịch VIETEC là gi?SELECT DIACHI, DIENTHOAIFROM NHACUNGCAPWHERE 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.

SELECT MAHANG,TENHANGFROM MATHANGWHERE DONGIA>50 AND SOLUONG<50

5. Cho biết mỗi mặt hàng trong công ty do ai cung cấp. SELECT TENHANG,NHACUNGCAP.TENCONGTYFROM MATHANG,NHACUNGCAPWHERE MATHANG.MACONGTY=NHACUNGCAP.MACONGTY

6. Loại hàng thực phẩm do những công ty nào cung cấpSELECT

LOAIHANG.TENLOAIHANG,TENHANG, NHACUNGCAP.TENCONGTY

FROM LOAIHANG,MATHANG,NHACUNGCAPWHERE LOAIHANG.MALOAIHANG=MATHANG.MALOAIHANG

AND MATHANG.MACONGTY=NHACUNGCAP.MACONGTYAND 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? SELECT KHACHHANG.TENCONGTY,MATHANG.TENHANGFROM

KHACHHANG,DONDATHANG,CHITIETDATHANG,MATHANG

15

Page 16: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

WHERE CHITIETDATHANG.MAHANG=MATHANG.MAHANGAND

DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADONAND

KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANGAND 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?SELECT KHACHHANG.TENCONGTY,NHANVIEN.TEN,DONDATHANG.NOIGIAOHANG,DONDATHANG.NGAYGIAOHANGFROM NHANVIEN,DONDATHANG,KHACHHANGWHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIENAND DONDATHANG.MAKHACHHANG=KHACHHANG.MAKHACHHANGAND 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)SELECT MANHANVIEN,HO,TEN,LUONGCANBAN+PHUCAP AS LUONGFROM NHANVIEN

Sinh viên dùng lệnh DELETE để thực hiện các yêu cầu sau:

10. Xóa những nhân viên đã làm việc trong công ty quá 30 nămDELETE FROM NHANVIENWHERE ( 2010-Year(ngaylamviec))>30

CÁCH KHÁC:DELETE FROM NHANVIENWHERE (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àoDELETE FROM khachhangWHERE makh in (select makh,count(sohd)FROM khachhang inner join dondathang

on khachhang.makh=dondathang.makhgroup by makhhaving count(sohd)=0)

16

Page 17: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 5+ 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

Khai báo tài khoản mới trong SQL Server 2005 bằng cách chọn vào Security \ Login \

Right Click \ New Login

17

Page 18: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Chọn vào nút Search

18

Page 19: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

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)

Tạo tài khoản của SQL Server 2005, chọn Security\ right click Login\ New Login

19

Page 20: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

(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

Security\ Login \ right click thuysoftware ( tài khoản vừa tạo) \ Properties \ Select a

page \ Server Role

20

Page 21: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Gán quyền cho tài khoản thuysoftware

5. Trạng thái của tài khoản

Để ngăn cấm tài khoản thuysoftware đăng nhập vào Database Engine của SQL Server

2005 thì chọn Security\ Login \ right click thuysoftware ( tài khoản vừa tạo) \ Properties

\ Select a page \ Status rồi chọn Deny trong Pemission to connect to database engine

21

Page 22: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

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(NAME = 'SmallWorks_log' ,

22

Page 23: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

FILENAME = 'C:\SQLData\SmallWorks_log.ldf' , SIZE = 10MB , FILEGROWTH = 10% ,MAXSIZE = 20MB)GOUSE SmallWorksGO

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 NULLProductName varchar(75) NOT NULLProductNumber nvarchar(25)NOT NULLStandardCost money NOT NULLListPrice money NOT NULL )

7.1 Cách 1

Cấp quyền truy cập cơ sở dữ liệu SmallWorks cho tài khoản thuysoftware: chọn

Security\ Login \ right click thuysoftware ( tài khoản vừa tạo) \ Properties \ Select a

page \ User Mapping

23

Page 24: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Tài khoản thuysoftware nằm trong danh sách người sử dụng của cơ sở dữ liệu

SmallWorks.

24

Page 25: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

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.

Chọn button , chọn tiếp Browse và chọn một tài khoản có quyền truy cập cơ sở

dữ liệu này.

25

Page 26: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

nhấn chọn OK

8. Sinh viên tự tạo 2 cơ sở dữ liệu và gán quyền truy cập cho 10 tài khoản vừa tạo

26

Page 27: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

Module 6+ 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)

LoaiSua(MaLoaiSua,TenLoai)

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:

a. Liệt kê danh sách các sữa của hãng Abbott có tên sữa, trọng lượng,

lợi ích trong đó trọng lượng sắp tăng dần

SELECT TENSUA,TRONGLUONG,LOIICH

FROM SUA, HANGSUA

WHERE SUA.MAHANGSUA=HANGSUA.MAHANGSUA

AND TENHANGSUA=’Abbott’

ORDER BY TRONGLUONG

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’

ORDER BY TRONGLUONG

LIMIT 0,3

27

Page 28: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

c. 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

d. 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

e. 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

f. 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’)

FROM CT_HOADON c, HOADON h, SUA s

WHERE c.SOHD=h.SOHOADON AND s.MASUA=C.MASUA

AND MONTH(NGAYHD)=9 and year(NGAYHD)=2007

g. 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

ORDER BY COUNT(*)

28

Page 29: Module 10 - cdth7lt.files.wordpress.com€¦  · Web viewHướng dẫn: 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

h. 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

i. 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

j. 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.

5. Cấp quyền truy cập cơ sở dữ liệu quản lý hãng sữa cho 10 tài khoản

29