Bài giảng Hệ quản trị cơ sở dữ liệu trong doanh nghiệp

1.1. Tổng quan về doanh nghiệp

1.1.1 Khái niệm

Doanh nghiệp là tổ chức kinh tế có tên riêng, có tài sản, có trụ sở giao dịch ổn

định, được đăng ký kinh doanh theo quy định của pháp luật nhằm mục đích thực

hiện các hoạt động kinh doanh. Doanh nghiệp là một chủ thể kinh tế tiến hành các

hoạt động kinh tế theo một kế hoạch nhất định nhằm mục đích kiếm lợi nhuận. Trên

thực tế doanh nghiệp được gọi bằng nhiều thuật ngữ khác nhau: cửa hàng, nhà máy,

xí nghiệp, hãng,.

Theo định nghĩa của luật doanh nghiệp[1], ban hành ngày 29 tháng 11 năm

2005 của Việt Nam, doanh nghiệp là tổ chức kinh tế riêng, có tài sản, có trụ sở giao

dịch ổn định, được đăng ký kinh doanh theo quy định của pháp luật nhằm mục đích

thực hiện các hoạt động kinh doanh.

Cũng theo quy luật trên, ta có thể phân loại các doanh nghiệp thành:

- Công ty trách nhiệm hữu hạn là doanh nghiệp mà các thành viên trong công

ty (có thể là một tổ chức hay một cá nhân đối với công ty trách nhiệm hữu hạn một

thành viên) chịu trách nhiệm về các khoản nợ và nghĩa vụ tài sản khác của công ty

trong phạm vi số vốn điều lệ của công ty.

Công ty cổ phần là doanh nghiệp mà vốn điều lệ của công ty được chia thành

nhiều phần bằng nhau gọi là cổ phần. Cá nhân hay tổ chức sở hữu cổ phần của

doanh nghiệp được gọi là cổ đông và chịu trách nhiệm về các khoản nợ và các nghĩa

vụ tài sản khác trong phạm vi số vốn đã góp vào doanh nghiệp.

Công ty hợp danh là doanh nghiệp trong đó có ít nhất hai thành viên là chủ sở

hữu của công ty, cùng kinh doanh dưới một cái tên chung (gọi là thành viên hợp

danh). Thành viên hợp doanh phải là cá nhân và chịu trách nhiệm bằng toàn bộ tài

sản của mình về các nghĩa vụ của công ty. Ngoài ra trong công ty hợp danh còn có

các thành viên góp vốn.

Doanh nghiệp tư nhân: doanh nghiệp do một cá nhân làm chủ và tự chịu trách

nhiệm bằng toàn bộ tài sản của mình về mọi hoạt động của doanh nghiệp. Mỗi cá

nhân chỉ được quyền thành lập một doanh nghiệp tư nhân.7

Ngoài ra còn có các thuật ngữ sau:

• Nhóm công ty là tập hợp các công ty có mối quan hệ gắn bó lâu dài với nhau

về lợi ích kinh tế, công nghệ, thị trường và các dịch vụ kinh doanh khác. Nó gồm có

các hình thức sau: công ty mẹ - công ty con, tập đoàn kinh tế.

• Doanh nghiệp nhà nước là doanh nghiệp trong đó nhà nước sở hữu trên 50%

vốn điều lệ.

• Doanh nghiệp có vốn đầu tư nước ngoài là doanh nghiệp do nhà đầu tư nước

ngoài thành lập để thực hiện hoạt động đầu tư tại Việt Nam hoặc doanh nghiệp Việt

Nam do nhà đầu tư nước ngoài mua cổ phần, sát nhập, mua lại.

pdf 88 trang yennguyen 2960
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu trong doanh nghiệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ quản trị cơ sở dữ liệu trong doanh nghiệp

Bài giảng Hệ quản trị cơ sở dữ liệu trong doanh nghiệp
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG 
KHOA HỆ THỐNG THÔNG TIN KINH TẾ 
BÀI GIẢNG 
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU TRONG 
DOANH NGHIỆP 
 Biên soạn: Nguyễn Văn Huân 
 Vũ Xuân Nam 
 Nguyễn Thu Hằng 
TÀI LIỆU LƯU HÀNH NỘI BỘ - 2012 
 1
MỤC LỤC 
MỤC LỤC ......................................................................................................................... 1 
DANH MỤC HÌNH VẼ, BẢNG BIỂU .............................................................................. 4 
LỜI MỞ ĐẦU .................................................................................................................... 5 
Chương 1 ........................................................................................................................... 6 
DOANH NGHIỆP VÀ CƠ SỞ DỮ LIỆU TRONG DOANH NGHIỆP .............................. 6 
1.1. Tổng quan về doanh nghiệp ..................................................................................... 6 
1.1.1 Khái niệm .......................................................................................................... 6 
1.1.2. Mục đích và mục tiêu của doanh nghiệp ............................................................ 7 
1.2. Cơ sở dữ liệu trong doanh nghiệp ............................................................................ 8 
1.3. Quản trị cơ sở dữ liệu doanh nghiệp ....................................................................... 11 
Chương 2 ......................................................................................................................... 13 
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU .................................................................................... 13 
2.1. Tổng quan về cơ sở dữ liệu và Hệ quản trị cơ sở dữ liệu ........................................ 13 
2.1.1. Khái niệm CSDL............................................................................................ 13 
2.1.2. Khái niệm hệ quản trị cơ sở dữ liệu ................................................................. 13 
2.1.3 Các hệ quản trị cơ sở dữ liệu thông dụng .......................................................... 14 
2.2. Tổng quan về SQL server 2005 .............................................................................. 16 
2.2.1. Cài đặt SQL Server 2005 Express Edition ....................................................... 18 
2.2.2. SQL là ngôn ngữ của cơ sở dữ liệu quan hệ ..................................................... 25 
2.2.3. Vai trò của SQL .............................................................................................. 25 
2.2.4. Giới thiệu sơ lược về Transact SQL (T-SQL) ................................................. 26 
2.3. Tạo lập cơ sở dữ liệu trên SQL server .................................................................... 35 
2.3.1. Một số thao tác cơ bản trên SQL Server 2005 Express Edition ................... 35 
2.3.2. Mở một query editor để viết câu lệnh SQL ...................................................... 38 
2.3.3. Các hàm quan trọng trong T- SQL .................................................................. 48 
2.4. Ngôn ngữ thao tác dữ liệu – DML.......................................................................... 55 
2.4.1. Câu lệnh SELECT........................................................................................... 56 
2.4.2. Thêm, cập nhật và xóa dữ liệu ......................................................................... 82 
2.5. View ...................................................................................................................... 87 
2.5.1 Khái niệm ........................................................................................................ 87 
2.5.2. Thêm, cập nhật, xóa dữ liệu trong VIEW ........................................................ 89 
2.5.3. Thay đổi định nghĩa khung nhìn ...................................................................... 89 
2.5.4. Xóa khung nhìn ............................................................................................... 89 
2.6. Thủ tục lưu trữ (Stored procedure) ......................................................................... 90 
2.6.1. Tạo thủ tục lưu trữ .......................................................................................... 91 
2.6.2. Lời gọi thủ tục................................................................................................. 92 
2.6.3. Biến trong thủ tục lưu trữ ................................................................................ 93 
 2
2.6.4. Giá trị trả về trong thủ tục lưu trữ ................................................................... 93 
2.6.5. Tham số với giá trị mặc định ........................................................................... 95 
2.6.6. Sửa đổi thủ tục ................................................................................................ 96 
2.6.7. Xóa thủ tục ..................................................................................................... 96 
2.7. Hàm (Function) ..................................................................................................... 96 
2.7.1. Khái niệm ....................................................................................................... 96 
2.7.2. Hàm vô hướng ................................................................................................ 97 
2.7.3. Hàm nội tuyến................................................................................................. 98 
2.7.4. Hàm bao gồm nhiều câu lệnh bên trong ........................................................... 99 
2.7.5. Thay đổi hàm ................................................................................................ 101 
2.7.6. Xóa hàm ....................................................................................................... 101 
2.8. Trigger ................................................................................................................. 101 
2.8.1. Khái niệm ..................................................................................................... 101 
2.8.2. Các đặc điểm của trigger ............................................................................... 102 
2.8.3. Các trường hợp sử dụng trigger ..................................................................... 102 
2.8.4. Khả năng sau của trigger ............................................................................... 102 
2.8.5. Định nghĩa trigger ......................................................................................... 103 
2.8.6. Kích hoạt trigger dựa trên sự thay đổi dữ liệu trên cột ................................... 107 
2.8.7. Sử dụng trigger và Giao tác ........................................................................... 108 
2.8.8. DDL TRIGGER ............................................................................................ 109 
2.8.9. Enable/ Disable TRIGGER ........................................................................... 111 
2.9. Cursor .................................................................................................................. 112 
2.9.1. Khái niệm ..................................................................................................... 112 
2.9.2. Các thao tác chung trên Cursor ...................................................................... 112 
2.9.3. Truy xuất dữ liệu trên Cursor ........................................................................ 115 
2.10. Sao lưu và phục hồi dữ liệu ................................................................................ 117 
2.10.1. Các lý do phải thực hiện Backup ................................................................. 117 
2.10.2. Các loại Backup .......................................................................................... 117 
2.10.3. Các thao tác thực hiện quá trình Backup và Restore trong SQL Server 
2005 Express Edition .............................................................................................. 119 
2.11. Kết nối Sql server 2005 từ các ngôn ngữ lập trình để xây dựng các ứng dụng .... 121 
2.11.1. Cấu hình Microsoft SQL Server 2005 ......................................................... 122 
2.11.2. Kết nối vào SQL Server trong các ngôn ngữ lập trình .................................. 125 
Chương 3 ....................................................................................................................... 130 
ỨNG DỤNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CHO DOANH NGHIỆP ........................... 130 
3.1. Nhiệm vụ quản trị CSDL của doanh nghiệp ......................................................... 130 
3.2. Quản trị sản xuất và tác nghiệp trong doanh nghiệp ............................................. 130 
3.3. Quản trị hoạt động dịch vụ ................................................................................... 131 
3.4. Quản trị hoạt động marketing ............................................................................... 132 
 3
3.5. Quản trị nhân lực ................................................................................................. 133 
3.6. Quản trị CSDL tài chính ...................................................................................... 134 
3.7. Quản trị hoạt động tiêu thụ................................................................................... 135 
3.8. Bảo vệ và quản lý csdl dữ liệu thông tin khách hàng ............................................ 137 
3.9. Đánh giá hiệu quả sản xuất kinh doanh của doanh nghiệp .................................... 138 
TÀI LIỆU THAM KHẢO .............................................................................................. 140 
 4
DANH MỤC HÌNH VẼ, BẢNG BIỂU 
Hình 2.1: Sự tương tác của hệ QTCSDL với người dùng và với CSDL..........16 
Hình 2.2: Các yêu cầu cho hệ thống 32bit........................................................18 
Hình 2.3: Các bước cài đặt Sql server 2005................................................. .. 22 
Hình 2.4: Thiết lập Sql server 2005................................................................. 23 
Hình 2.5: Cài đặt SQL Server Management Studio Express............................24 
Hình 2.6: Giao diện sau khi đăng nhập thành công..........................................24 
Hình 2.7: Cơ sở dữ liệu quản lý bán hàng........................................................31 
Hình 2.8: Tạo một CSDL mới......................................................................... 36 
Hình 2.9: Đặt tên Database ..............................................................................36 
Hình 2.10: Tạo bảng mới .................................................................................37 
Hình 2.11: Đặt tên bảng ...................................................................................38 
Hình 2.12: Mở query editor để viết câu lệnh SQL..........................................38 
Hình 2.13: Cơ sở dữ liệu quản lý ngân hàng....................................................57 
Hình 2.14: Quá trình Backup..........................................................................121 
Hình 2.15: Quá trình phục hồi........................................................................121 
Hình 3.1: Cơ sở dữ liệu quản lý kho vật tư.....................................................129 
Hình 3.2: Cơ sở dữ liệu về việc cung cấp các mặt hàng.................................130 
Hình 3.3: Cơ sở dữ liệu về khách hàng ......................................................... 131 
Hình 3.4: Dữ liệu về hồ sơ nhân viên của 1 doanh nghiệp.............................132 
Hình 3.5: Dữ liệu về quản lý lương nhân viên............................................... 133 
Hình 3.6: Dữ liệu về quản lý bán hàng...........................................................135 
Bảng 2.1: Một số kiểu dữ liệu thông dụng trong SQL.....................................32 
Bảng 2.2: Các toán tử và mức độ ưu tiên ....................................................... 34 
 5
LỜI MỞ ĐẦU 
Hệ quản trị cơ sở dữ liệu là phần mềm hay hệ thống được thiết kế để quản trị 
một cơ sở dữ liệu. Có rất nhiều hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy 
trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều 
siêu máy tính. Đa số hệ quản trị CSDL trên thị trường đều có một đặc điểm chung 
là sử dụng ngôn ngữ truy vấn theo cấu trúc(SQL). Ngôn ngữ SQL (Structured 
Query Language) được sử dụng trong hầu hết các hệ quản trị cơ sở dữ liệu để truy 
vấn và sửa đổi cơ sở dữ liệu. Ngôn ngữ SQL hỗ trợ các truy vấn dựa trên các phép 
toán đại số quan hệ, đồng thời cũng chứa các lệnh sửa đổi cơ sở dữ liệu và mô tả 
lược đồ cơ sở dữ liệu. Như vậy, SQL vừa là một ngôn ngữ thao tác dữ liệu, vừa là 
một ngôn ngữ định nghĩa dữ liệu. Ngoài ra SQL cũng tiêu chuẩn hoá nhiều lệnh cơ 
sở dữ liệu khác. Hiện nay, SQL đã được sử dụng phổ biến trong các hệ quản trị cơ 
sở dữ liệu thương mại và có vai trò quan trọng trong những hệ thống này. 
Bài giảng cung cấp các kiến thức cơ bản và tương đối đầy đủ về các câu lệnh 
thường được sử dụng trong SQL và các ứng dụng quan trọng của hệ quản trị cơ sở 
dữ liệu Sql server của Microfoft. Bài giảng được chia thành 3 chương với nội dung 
chính như sau: 
Chương 1 Doanh nghiệp và cơ sở dữ liệu trong doanh nghiệp. 
Chương 2 Hệ quản trị cơ sở dữ liệu 
Chương 3 Ứng dụng quản trị CSDL cho các doanh nghiệp 
Do hạn chế về thời gian và kinh nghiệm, chắc chắn bài giảng còn nhiều thiếu 
sót. Mong các bạn góp ý và phê bình. Chúng tôi sẽ tiếp thu ý kiến để bài giảng ngày 
càng hoàn thiện hơn. Xin chân thành cảm ơn! 
 6
Chương 1 
DOANH NGHIỆP VÀ CƠ SỞ DỮ LIỆU TRONG DOANH 
NGHIỆP 
1.1. Tổng quan về doanh nghiệp 
1.1.1 Khái niệm 
Doanh nghiệp là tổ chức kinh tế có tên riêng, có tài sản, có trụ sở giao dịch ổn 
định, được đăng ký kinh doanh theo quy định của pháp luật nhằm mục đích thực 
hiện các hoạt động kinh doanh. Doanh nghiệp là một chủ thể kinh tế tiến hành các 
hoạt động kinh tế theo một kế hoạch nhất định nhằm mục đích kiếm lợi nhuận. Trên 
thực tế doanh nghiệp được gọi bằng nhiều thuật ngữ khác nhau: cửa hàng, nhà máy, 
xí nghiệp, hãng,... 
Theo định nghĩa của luật doanh nghiệp[1], ban hành ngày 29 tháng 11 năm 
2005 của Việt Nam, doanh nghiệp là tổ chức kinh tế riêng, có tài sản, có trụ sở giao 
dịch ổn định, được đăng ký kinh doanh theo quy định của pháp luật nhằm mục đích 
thực hiện các hoạt động kinh doanh. 
Cũng theo quy luật trên, ta có thể phân loại các doanh nghiệp thành: 
- Công ty trách nhiệm hữu hạn là doanh nghiệp mà các thành viên trong công 
ty (có thể là một tổ chức hay một cá nhân đối với công ty trách nhiệm hữu hạn một 
thành viên) chịu trách nhiệm về các khoản nợ và nghĩa vụ tài sản khác của công ty 
trong phạm vi số vốn điều lệ của công ty. 
Công ty cổ phần là doanh nghiệp mà vốn điều lệ của công ty được chia thành 
nhiều phần bằng nhau gọi là cổ phần. Cá nhân hay tổ chức sở hữu cổ phần của 
doanh nghiệp được gọi là cổ đông và chịu trách nhiệm về các khoản nợ và ... y đủ cho kết quả 
như sau: 
Phép nối ngoài trái: 
select * 
from faculty f left join class c 
on f.facultyid = c.facultyid 
Phép nối ngoài phải: 
select * 
from faculty f right join class c 
on f.facultyid = c.facultyid 
 77
Phép nối ngoài đầy đủ: 
select * 
from faculty f full join class c 
on f.facultyid = c.facultyid 
Một đặc điểm nổi bật của SQL2 là cho phép biểu diễn phép nối trên 
nhiều bảng dữ liệu một cách rõ ràng. Thứ tự thực hiện phép nối giữa các bảng được 
xác định theo nghĩa kết quả của phép nối này được sử dụng trong một phép nối 
khác. 
Ví dụ: Liệt kê tên các mặt hàng có trong đơn đạt hàng có mã là 1. 
select i.ITEMNAME, o.ORDERDATE 
from (orders o inner join orderdetail od on o.orderid = od.orderid) 
inner join items i on od.itemid = i.itemid 
where o.orderid = 1 
h. Mệnh đề GROUP BY 
Ngoài khả năng thực hiện các yêu cầu truy vấn dữ liệu thông thường 
(chiếu, chọn, nối,) như đã đề cập như ở các phần trước, câu lệnh SELECT còn 
cho phép thực hiện các thao tác truy vấn và tính toán thống kê trên dữ liệu. 
Mệnh đề GROUP BY sử dụng trong câu lệnh SELECT nhằm phân hoạch 
các dòng dữ liệu trong bảng thành các nhóm dữ liệu, và trên mỗi nhóm dữ liệu thực 
hiện tính toán các giá trị thống kê như tính tổng, tính giá trị trung bình,... 
Các hàm gộp (aggregate functions) được sử dụng để tính giá trị thống kê cho 
toàn bảng hoặc trên mỗi nhóm dữ liệu. Chúng có thể được sử dụng như là các cột 
trong danh sách chọn của câu lệnh SELECT hoặc xuất hiện trong mệnh đề 
HAVING, nhưng không được phép xuất hiện trong mệnh đề WHERE 
 78
SQL cung cấp các hàm gộp dưới đây: 
Hàm gộp Chức năng 
SUM([ALL| DISTINCT] biểu_thức) Tính tổng các giá trị. 
AVG([ALL| DISTINCT] biểu_thức) Tính trung bình của các giá trị 
COUNT([ALL|DISTINCT] biểu_thức) Đếm số các giá trị trong biểu thức. 
COUNT(*) Đếm số các dòng được chọn. 
MAX(biểu_thức) Tính giá trị lớn nhất 
MIN(biểu_thức) Tính giá trị nhỏ nhất 
Hàm SUM và AVG chỉ làm việc với các biểu thức số. 
Hàm SUM, AVG, COUNT, MIN và MAX bỏ qua các giá trị NULL khi tính 
toán. 
Hàm COUNT(*) không bỏ qua các giá trị NULL. 
Mặc định, các hàm gộp thực hiện tính toán thống kê trên toàn bộ dữ liệu. 
Trong trường hợp cần loại bỏ bớt các giá trị trùng nhau (chỉ giữ lại một giá 
trị), ta chỉ định thêm từ khoá 
DISTINCT ở trước biểu thức là đối số của hàm. 
Thống kê trên toàn bộ dữ liệu 
Khi cần tính toán giá trị thống kê trên toàn bộ dữ liệu, ta sử dụng các hàm gộp 
trong danh sách chọn của câu lệnh SELECT. Trong trường hợp này, trong danh 
sách chọn không được sử dụng bất kỳ một tên cột hay biểu thức nào ngoài các hàm 
gộp. 
Ví dụ: Tính tuổi trung bình, tuổi nhỏ nhất và lớn nhất của các khách hàng 
select min(year(getdate())-year(BIRTHDAY)) as MINAGE, 
max(year(getdate())-year(BIRTHDAY)) as MAXAGE, 
avg(year(getdate())-year(BIRTHDAY)) as AVGAGE 
from customers 
 79
Thống kê trên nhóm 
Trong trường hợp cần thực hiện tính toán các giá trị thống kê trên các nhóm dữ 
liệu, ta sử dụng mệnh đề GROUP BY để phân hoạch dữ liệu vào trong các nhóm. 
Các hàm gộp được sử dụng sẽ thực hiện thao tác tính toán trên mỗi nhóm và cho 
biết giá trị thống kê theo các nhóm dữ liệu. 
Ví dụ: Câu truy vấn sau cho biết số tổng số tiển khách hàng phải trả cho tất cả 
các lần đặt hàng 
select c.CUSTOMERID, c.CUSTOMERNAME, 
convert(varchar(20),cast(SUM(i.UNITPRICE*od.QUANTITY) as money),1) 
as SUMTOTAL 
from customers c inner join orders o on o.customerid = c.customerid 
inner join orderdetail od on o.orderid = od.orderid 
inner join items i on i.itemid = od.itemid 
group by c.customerid, c.customername 
Nếu muốn hiện số tiền khách hàng phải trả cho từng đơn đặt hàng, chỉ cần 
thêm trường ORDERID vào mệnh đề group by. 
select c.CUSTOMERID, c.CUSTOMERNAME, 
convert(varchar(20),cast(SUM(i.UNITPRICE*od.QUANTITY)as money),1) 
as SUMTOTAL 
from customers c inner join orders o on o.customerid = c.customerid 
inner join orderdetail od on o.orderid = od.orderid 
inner join items i on i.itemid = od.itemid 
group by c.customerid, c.customername, o.orderid 
 80
Lưu ý: Trong trường hợp danh sách chọn của câu lệnh SELECT có cả các hàm 
gộp và những biểu thức không phải là hàm gộp thì những biểu thức này 
phải có mặt đầy đủ trong mệnh đề GROUP BY, nếu không câu lệnh sẽ không 
hợp lệ. 
Mệnh đề HAVING chỉ định điều kiện trong hàm gộp 
Mệnh đề HAVING được sử dụng nhằm chỉ định điều kiện đối với các giá trị 
thống kê được sản sinh từ các hàm gộp tương tự như cách thức mệnh đề WHERE 
thiết lập các điều kiện cho câu lệnh SELECT. Mệnh đề HAVING thường không 
thực sự có nghĩa nếu như không sử dụng kết hợp với mệnh đề GROUP BY. Một 
điểm khác biệt giữa HAVING và WHERE là trong điều kiện của WHERE không 
được có các hàm gộp trong khi HAVING lại cho phép sử dụng các hàm gộp trong 
điều kiện của mình. 
Ví dụ: Tìm ra các khách hàng có tổng số tiền phải thanh toán cho tất cả các lần 
đặt hàng lớn hơn 100 triệu. 
select c.CUSTOMERID, c.CUSTOMERNAME, 
convert(varchar(20),cast(SUM(i.UNITPRICE*od.QUANTITY)as money),1) 
as 
SUMTOTAL 
from customers c inner join orders o on o.customerid = c.customerid 
inner join orderdetail od on o.orderid = od.orderid 
inner join items i on i.itemid = od.itemid 
group by c.customerid, c.customername 
having sum(i.UNITPRICE*od.QUANTITY) > 100000000 
i. Truy vấn con 
Truy vấn con là một câu lệnh SELECT được lồng vào bên trong một câu lệnh 
SELECT, INSERT, UPDATE, DELETE hoặc bên trong một truy vấn con 
khác. Loại truy vấn này được sử dụng để biểu diễn cho những truy vấn trong đó 
điều kiện truy vấn dữ liệu cần phải sử dụng đến kết quả của một truy vấn khác. 
 81
Cú pháp của truy vấn con như sau: 
(SELECT [ALL | DISTINCT] danh_sách_chọn 
FROM danh_sách_bảng 
[WHERE điều_kiện] 
[GROUP BY danh_sách_cột] 
[HAVING điều_kiện]) 
Khi sử dụng truy vấn con cần lưu ý một số quy tắc sau: 
Một truy vấn con phải được viết trong cặp dấu ngoặc. Trong hầu hết 
các trường hợp, một truy vấn con thường phải có kết quả là một cột (tức là chỉ có 
duy nhất một cột trong danh sách chọn). 
Mệnh đề COMPUTE và ORDER BY không được phép sử dụng trong truy vấn 
con. Các tên cột xuất hiện trong truy vấn con có thể là các cột của các bảng trong 
truy vấn ngoài. 
Một truy vấn con thường được sử dụng làm điều kiện trong mệnh đề 
WHERE hoặc HAVING của một truy vấn khác. 
Nếu truy vấn con trả về đúng một giá trị, nó có thể sử dụng như là một thành 
phần bên trong một biểu thức (chẳng hạn xuất hiện trong một phép so sánh bằng) 
Phép so sánh đối với với kết quả truy vấn con 
Kết quả của truy vấn con có thể được sử dụng đề thực hiện phép so sánh số 
học với một biểu thức của truy vấn cha. Trong trường hợp này, truy vấn con được 
sử dụng dưới dạng: 
WHERE biểu_thức phép_toán_số_học [ANY|ALL] (truy_vấn_con) 
Trong đó phép toán số học có thể sử dụng bao gồm: =, , >, =, <=; Và 
truy vấn con phải có kết quả bao gồm đúng một cột. 
Ví dụ: Câu truy vấn sau đây tìm tên khách hàng có tuổi lớn nhất 
select c.tenk, c.dc 
from khachhang c 
where year(getdate()) - year(ngaysinh) = 
(select max(year(getdate()) - year(ngaysinh)) 
from khachhang) 
 82
Nếu truy vấn con trả về nhiều hơn một giá trị, việc sử dụng phép so sánh như 
trên sẽ không hợp lệ. Trong trường hợp này, sau phép toán so sánh phải sử dụng 
thêm lượng từ ALL hoặc ANY. Lượng từ ALL được sử dụng khi cần so sánh giá trị 
của biểu thức với tất cả các giá trị trả về trong kết quả của truy vấn con; ngược lai, 
phép so sánh với lượng từ ANY có kết quả đúng khi chỉ cần một giá trị bất kỳ nào 
đó trong kết quả của truy vấn con thoả mãn điều kiện 
Ví dụ: 
Toán tử IN/NOT IN 
Khi cần thực hiện phép kiểm tra giá trị của một biểu thức có xuất hiện (không 
xuất hiện) trong tập các giá trị của truy vấn con hay không, ta có thể sử dụng toán tử 
IN (NOT IN) như sau: 
WHERE biểu_thức [NOT] IN (truy_vấn_con) 
Ví dụ: 
Truy vấn con với EXISTS 
Lượng từ EXISTS được sử dụng kết hợp với truy vấn con dưới dạng: 
WHERE [NOT] EXISTS (truy_vấn_con) 
Lượng từ EXISTS (tương ứng NOT EXISTS) trả về giá trị True (tương ứng 
False) nếu kết quả của truy vấn con có ít nhất một dòng (tương ứng không có dòng 
nào). Điều khác biệt của việc sử dụng EXISTS với hai cách đã nêu ở trên là trong 
danh sách chọn của truy vấn con có thể có nhiều hơn hai cột. 
Ví dụ: 
Truy vấn con và mệnh đề HAVING 
Một truy vấn con có thể được sử dụng trong mệnh đề HAVING của một truy 
vấn khác. 
Trong trường hơp này, kết quả của truy vấn con được sử dụng để tạo nên điều 
kiện đối với các hàm gộp. 
2.4.2. Thêm, cập nhật và xóa dữ liệu 
Các câu lệnh thao tác dữ liệu trong SQL không những chỉ sử dụng để truy vấn 
dữ liệu mà còn để thay đổi và cập nhật dữ liệu trong cơ sở dữ liệu. So với câu lệnh 
 83
SELECT, việc sử dụng các câu lệnh để bổ sung, cập nhật hay xoá dữ liệu đơn giản 
hơn nhiều. Trong phần còn lại của chương này sẽ đề cập đến 3 câu lệnh: 
Lệnh INSERT 
Lệnh UPDATE 
Lệnh DELETE 
a. Thêm dữ liệu 
Dữ liệu trong các bảng được thể hiện dưới dạng các dòng (bản ghi). Để bổ 
sung thêm các dòng dữ liệu vào một bảng, ta sử dụng câu lệnh INSERT. Hầu hết 
các hệ quản trị CSDL dựa trên SQL cung cấp các cách dưới đây để thực hiện thao 
tác thêm dữ liệu cho bảng: 
Thêm từng dòng dữ liệu với mỗi câu lệnh INSERT. Đây là các sử dụng thường 
gặp nhất trong giao tác SQL. 
Thêm nhiều dòng dữ liệu bằng cách truy xuất dữ liệu từ các bảng dữ liệu khác. 
Thêm từng dòng dữ liệu 
Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh INSERT với 
cú pháp như sau: 
INSERT INTO tên_bảng[(danh_sách_cột)] VALUES(danh_sách_trị) 
Trong câu lệnh INSERT, danh sách cột ngay sau tên bảng không cần 
thiết phải chỉ định nếu giá trị các trường của bản ghi mới được chỉ định đầy đủ 
trong danh sách trị. Trong trường hợp này, thứ tự các giá trị trong danh sách trị phải 
bằng với số lượng các trường của bảng cần bổ sung dữ liệu cũng như phải 
tuân theo đúng thứ tự của các trường như khi bảng được định nghĩa 
Ví dụ: Thêm thông tin một khách hàng mới vào bảng Customer 
insert into khachhang (tenk, ngaysinh, gioitinh, diachi) 
values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat') 
hoặc 
insert into khachhang 
values('Nguyen Van An', '4/2/1976', 'True', '14 Thong Nhat') 
Lưu ý: Trường CUSTOMERID được thiết lập identity là “YES” nên ta không 
cần thêm giá trị trường này mà SQL sẽ tự động tạo ra một giá trị cho trường này. 
 84
Chi tiết về identity sẽ nói trong chương 4. 
Trong trường hợp chỉ nhập giá trị cho một số cột trong bảng, ta phải chỉ định 
danh sách các cột cần nhập dữ liệu ngay sau tên bảng. Khi đó, các cột 
không được nhập dữ liệu sẽ nhận giá trị mặc định (nếu có) hoặc nhận giá trị NULL 
(nếu cột cho phép chấp nhận giá trị NULL). Nếu một cột không có giá trị mặc định 
và không chấp nhận giá trị NULL mà không đuợc nhập dữ liệu, câu lệnh sẽ bị lỗi. 
Thêm một tập các dòng dữ liệu vào bảng 
Một cách sử dụng khác của câu lệnh INSERT được sử dụng để bổ sung nhiều 
dòng dữ liệu vào một bảng, các dòng dữ liệu này được lấy từ một bảng khác 
thông qua câu lệnh SELECT. Ở cách này, các giá trị dữ liệu được bổ sung vào 
bảng không được chỉ định tường minh mà thay vào đó là một câu lệnh SELECT 
truy vấn dữ liệu từ bảng khác. 
Cú pháp câu lệnh INSERT có dạng như sau: 
INSERT INTO tên_bảng[(danh_sách_cột)] câu_lệnh_SELECT 
Ví dụ: 
insert into Customers_Backup 
select * from khachhang 
Lưu ý: Kết quả của câu lệnh SELECT phải có số cột bằng với số cột được chỉ 
định trong bảng đích và phải tương thích về kiểu dữ liệu. 
b. Cập nhật dữ liệu 
Câu lệnh UPDATE trong SQL được sử dụng để cập nhật dữ liệu trong các 
bảng. Câu lệnh này có cú pháp như sau: 
UPDATE tên_bảng 
SET tên_cột = biểu_thức 
[, ..., tên_cột_k = biểu_thức_k] 
[FROM danh_sách_bảng] 
[WHERE điều_kiện] 
Sau UPDATE là tên của bảng cần cập nhật dữ liệu. Một câu lệnh UPDATE 
có thể cập nhật dữ liệu cho nhiều cột bằng cách chỉ định các danh sách tên cột và 
biểu thức tương ứng sau từ khoá SET. Mệnh đề WHERE trong câu lệnh 
UPDATE được sử dụng để chỉ định các dòng dữ liệu chịu tác động của câu lệnh 
 85
(nếu không chỉ định, phạm vi tác động của câu lệnh được hiểu là toàn bộ các dòng 
trong bảng) 
Ví dụ: 
update khachhang 
set tenk = 'Cao Van Chung' 
where mak = 9 
Trong câu lệnh UPDATE có thể sử dụng CASEWHEN. 
Ví dụ: 
select * 
into tmp1 
from khachhang 
update tmp1 
set dc = case when mak < 2 then 'Nguyen Trung Truc' 
else 'Nguyen Thi Minh Khai' 
 end 
c. Xóa dữ liệu 
Để xoá dữ liệu trong một bảng, ta sử dụng câu lệnh DELETE. Cú pháp của câu 
lệnh này như sau: 
DELETE FROM tên_bảng 
[FROM danh_sách_bảng] 
[WHERE điều_kiện] 
Trong câu lệnh này, tên của bảng cần xoá dữ liệu được chỉ định sau DELETE 
FROM. 
Mệnh đề WHERE trong câu lệnh được sử dụng để chỉ định điều kiện đối với 
các dòng dữ liệu cần xoá. Nếu câu lệnh DELETE không có mệnh đề WHERE thì 
toàn bộ các dòng dữ liệu trong bảng đều bị xoá. 
Ví dụ: CSDL quản lý bán hàng 
 86
delete from DMHang 
where MaH = 3 
Xoá dữ liệu khi điều kiện liên quan đến nhiều bảng 
Nếu điều kiện trong câu lệnh DELETE liên quan đến các bảng không phải là 
bảng cần xóa dữ liệu, ta phải sử dụng thêm mệnh đề FROM và sau đó là danh sách 
tên các bảng đó. 
Trong trường hợp này, trong mệnh đề WHERE ta chỉ định thêm điều kiện nối 
giữa các bảng 
Ví dụ: 
delete 
from CTHD 
from DMHang 
where DMHang.MaH = CTHD.MaH 
and DMHang.MaH = 'LAPTOP' 
Sử dụng truy vấn con trong câu lệnh DELETE 
Một câu lệnh SELECT có thể được lồng vào trong mệnh đề WHERE 
trong câu lệnh DELETE để làm điều kiện cho câu lệnh tương tự như câu lệnh 
UPDATE. 
Ví dụ: 
delete 
from CTHD 
from DMHang 
where DMHang.MaH = (select i.MaH 
 87
from DMHang i inner join CTHD od 
on i.MaH = od.MaH 
WHERE TenH = 'LAPTOP') 
Xoá toàn bộ dữ liệu trong bảng 
Câu lệnh DELETE không chỉ định điều kiện đối với các dòng dữ liệu cần xoá 
trong mệnh đề WHERE sẽ xoá toàn bộ dữ liệu trong bảng. Thay vì sử dụng câu lệnh 
DELETE trong trường hợp này, ta có thể sử dụng câu lệnh TRUNCATE có cú pháp 
như sau: 
TRUNCATE TABLE tên_bảng 
Ví dụ: 
truncate table tmp1 
2.5. View 
2.5.1 Khái niệm 
Khung nhìn là một bảng tạm thời, có cấu trúc như một bảng, khung nhìn 
không lưu trữ dữ liệu mà nó được tạo ra khi sử dụng, khung nhìn là đối tượng thuộc 
CSDL. 
Khung nhìn được tạo ra từ câu lệnh truy vấn dữ liệu (lệnh SELECT), truy vấn 
từ một hoặc nhiều bảng dữ liệu. 
Khung nhìn được sử dụng khai thác dữ liệu như một bảng dữ liệu, chia sẻ 
nhiều người dùng, an toàn trong khai thác, không ảnh hưởng dữ liệu gốc. 
Có thể thực hiện truy vấn dữ liệu trên cấu trúc của khung nhìn. 
Như vậy, một khung nhìn trông giống như một bảng với một tên khung nhìn 
và là một tập bao gồm các dòng và các cột. Điểm khác biệt giữa khung nhìn và bảng 
là khung nhìn không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở dữ 
liệu. Thực chất dữ liệu quan sát được trong khung nhìn được lấy từ các bảng thông 
qua câu lệnh truy vấn dữ liệu. 
Câu lệnh CREATE VIEW được sử dụng để tạo ra khung nhìn và có cú pháp 
như sau: 
CREATE VIEW tên_khung_nhìn[(danh_sách_tên_cột)] AS 
câu_lệnh_SELECT 

File đính kèm:

  • pdfbai_giang_he_quan_tri_co_so_du_lieu_trong_doanh_nghiep.pdf