CREATE PROCEDURE [dbo].[usp_DmDtPrint] AS BEGIN SET NOCOUNT ON; DECLARE @_Ma_Dt NVARCHAR40, @_Ten_Dt NVARCHAR20s DECLARE DmDtCursor CURSOR FOR SELECT Ma_Dt, Ten_Dt FROM DmDt OPEN DmDtCur[r]
Trang 1TRƯ NG Đ I H C PH M VĂN Đ NG KHOA CÔNG NGH THÔNG TIN
BÀI GI NG:
H QU N TR CƠ S D LI U 2
SQL SERVER (Dùng cho b c Cao ñ ng)
Gi ng viên: Th.S Nguy n Trí Nhân
Qu ng Ngãi, Spring-2014
Trang 2Gi ng viên: Th.S Nguy n Trí Nhân 1 Khoa Công ngh Thông tin
M C L C
L I NÓI Đ U 5
Chương 1 T NG QUAN V SQL SERVER 2000 7
1.1 GI I THI U SQL SERVER 7
1.1.1 Gi i thi u chung v h qu n tr cơ s d li u 7
1.1.2 Gi i thi u v phiên b n SQL Server 7
1.2 Các thành ph n trong SQL Server 8
1.3 CÀI Đ T SQL SERVER 9
1.4 CÁC CSDL H TH NG TRONG SQL SERVER 17
1.5 CÁC CÔNG C TRONG SQL SERVER 19
1.5.1 Ti n ích Book Online 20
1.5.2 Ti n ích Client NetWork Utility 20
1.5.3 Ti n ích Enterprise Manager 21
1.5.4 Ti n ích Import and Export Data 22
1.5.5 Ti n ích Profiler 22
1.5.6 Ti n ích Query Analyzer 23
1.5.7 Ti n ích Server Network Utility 25
1.5.8 Ti n ích Service Manager 25
Chương 2 GI I THI U NGÔN NG TRANSACT – SQL 27
2.1 GI I THI U 27
2.2 KI U D LI U 27
2.3 TRUY XU T D LI U (DATA QUERY LANGUAGE) 28
2.3.1 Truy v n d li u ñơn gi n v i SELECT 28
2.3.2 Tìm hi u các trư ng tính toán 31
2.3.3 L c d li u v i m nh ñ WHERE 33
2.3.4 S p x p d li u v i ORDER BY 38
2.3.5 Nhóm d li u v i m nh ñ GROUP BY 40
2.3.6 Query con 44
2.3.7 Các phép n i 46
2.3.8 K t h p các query 52
2.4 C P NH T D LI U (DATA MANIPULATION LANGUAGE) 53
Trang 3Gi ng viên: Th.S Nguy n Trí Nhân 2 Khoa Công ngh Thông tin
2.4.1 Chèn d li u 53
2.4.2 C p nh t, xóa d li u 55
2.5 BÀI T P TH C HÀNH 56
Chương 3 T O CƠ S D LI U TRÊN SQL SERVER 57
3.1 CÁC LO I FILE LƯU TR CƠ S D LI U 57
3.1.1 Các t p tin v t lý lưu tr cơ s d li u 57
3.1.2 T p tin d li u chính (Primary Data File) 57
3.1.3 T p tin d li u th y u (Secondary Data Files) 58
3.1.4 T p tin lưu v t (Log Files) 58
3.2 T O CƠ S D LI U 58
3.2.1 S d ng ti n ích Enterprise Manager: 58
3.2.2 S d ng câu l nh Transaction - SQL: 61
3.3 XÓA, S A, Đ I TÊN, XEM THÔNG TIN CƠ S D LI U 62
3.3.1 Xóa cơ s d li u 62
3.3.2 Đ i tên Database (Rename) 64
Chương 4 T O VÀ QU N LÝ B NG (TABLE) 65
4.1 T O B NG (TABLE) 65
4.1.1 Khái ni m v b ng 65
4.1.2 T o c u trúc b ng d li u 65
4.2 THAY Đ I C U TRÚC B NG (TABLE) 69
4.2.1 Thêm m t c t m i trong b ng: 69
4.2.2 H y b c t hi n có bên trong b ng: 70
4.2.3 S a ñ i ki u d li u c a c t: 70
4.2.4 T t b quy t c ki m tra toàn v!n d li u: 71
4.2.5 B t l i quy t c ki m tra toàn v!n d li u: 71
4.2.6 Đ i tên c t, tên b ng d li u: 72
4.3 XÓA B NG (TABLE) 73
4.4 QU N LÝ B NG 73
4.4.1 Tính toàn v!n d li u trong cơ s d li u 73
4.5 T O M!T DATABASE DIAGRAM 88
4.5.1 Khái ni m v mô hình quan h d li u: 88
Trang 4Gi ng viên: Th.S Nguy n Trí Nhân 3 Khoa Công ngh Thông tin
4.5.2 T o m i mô hình quan h d li u: 88
4.6 BÀI T P TH C HÀNH 92
Chương 5 T O VIEW (B NG O) 97
5.1 KHÁI NI M VIEW 97
5.2 S D NG T – SQL 97
5.3 S D NG ENTERPRISE MANAGER 102
5.4 BÀI T P TH C HÀNH 105
Chương 6 STORE PROCEDURE 106
6.1 KHÁI NI M STORE PROCEDURE 106
6.1.1 Th t c n i là gì ? 106
6.1.2 Các Procdure Store h th ng: 106
6.1.3 Các l i ích khi s d ng Procdure Store: 107
6.2 T O STORE PROCEDURE B"NG L NH CREATE 107
6.3 THI HÀNH STORE PROCEDURE 110
6.4 CÁC PHÁT BI U ĐI U KHI N 110
6.4.1 Bi u th c Case 110
6.4.2 C u trúc r" nhánh IF ELSE 114
6.4.3 C u trúc l#p WHILE 117
6.5 S A, XÓA, Đ I TÊN TH# T C (STORE PROCEDURE) 121
6.5.1 H y b Procdure Store: 121
6.5.2 Thay ñ i n i dung c a Procdure Store: 121
6.6 X LÝ L$I TRONG STORE PROCEDURE (SP) 123
6.6.1 Mã tr v 123
6.6.2 Câu l nh RAISERROR 124
6.7 BÀI T P TH C HÀNH 125
Chương 7 CHUY N TÁC, B%Y L$I VÀ KI U CON TR& TRONG SQL SERVER 126
7.1 CHUY N TÁC (TRANSACTION) 126
7.1.1 Khái ni m 126
7.1.2 Cách t o và ng d ng 126
7.2 B%Y L$I (TRIGGER) 133
Trang 5Gi ng viên: Th.S Nguy n Trí Nhân 4 Khoa Công ngh Thông tin
7.2.1 Khái ni m 133
7.2.2 Cách t o và ng d ng 133
7.3 KI U CON TR& (SQL CURSOR) 134
7.3.1 Khái ni m 134
7.3.2 Cách t o và ng d ng 134
7.4 BÀI T P TH C HÀNH 136
Chương 8 QU N LÝ B O M T VÀ NGƯ I DÙNG TRONG SQL SERVER 137
8.1 KHÁI NI M 137
8.2 T O VÀ QU N LÝ NGƯ I DÙNG ĐĂNG NH P 137
8.2.1 S d ng Enterprise Manager 137
8.2.2 S d ng Query Analyzer: 139
8.3 C P PHÁT QUY N CHO NGƯ I DÙNG 139
8.3.1 S d ng Enterprise Manager 139
8.3.2 S d ng Query Analyzer 140
8.4 THU H I QUY N ĐÃ C P PHÁT CHO NGƯ I DÙNG 142
8.4.1 Xóa quy n truy xu t CSDL hi n hành: 142
8.4.2 Xóa b quy n th$c thi ñã c p ho#c t% ch i trên CSDL: 142
8.4.3 Xóa b quy n t o ñ i tư ng ñã c p ho#c t% ch i trên CSDL: 143
TÀI LI&U THAM KH O 144
Trang 6Gi ng viên: Th.S Nguy n Trí Nhân 5 Khoa Công ngh Thông tin
LLLLỜ Ờ ỜI NÓI Đ I NÓI Đ I NÓI ĐẦ ẦẦ ẦU U U Ngôn ng h i có c u trúc (SQL), có ti n thân là SEQUEL, là m t ngôn ng ñư c IBM phát tri n và s d ng trong h cơ s d li u th nghi m có tên là System/R vào năm
1974, chính th c ñư c ANSI/ISO công nh n là m t chu'n ngôn ng s d ng trong cơ s
d li u quan h vào năm 1986 Cho ñ n 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
Đư c s$ ñ ng viên c a các ñ ng nghi p trong Khoa Công ngh Thông tin, Trưòng
Đ i h c Ph m Văn Đ ng, chúng tôi m nh d n vi t và gi i thi u Bài gi ng H qu n tr cơ
s d li u 2 SQL Server cho sinh viên b c Cao ñ ng ngành Công ngh thông tin ñ n b n
ñ c Trong bài gi ng này, chúng tôi không có tham v ng ñ c p ñ n m i khía c nh c a SQL mà ch( mong mu n r)ng ñây s" là tài li u tham kh o tương ñ i ñ*y ñ v các câu l nh thư ng ñư c s d ng trong SQL Bài gi ng ñư c chia thành tám chương v i n i dung như sau:
- Chương 1 T+NG QUAN V, SQL SERVER 2000
- Chương 2 GI-I THI&U NGÔN NG TRANSACT – SQL
- Chương 3 T/O CƠ S1 D LI&U TRÊN SQL SERVER
- Chương 4 T/O VÀ QU N LÝ B NG (TABLE)
- Chương 5 T/O VIEW (B NG O)
- Chương 6 STORE PROCEDURE
- Chương 7 CHUY2N TÁC, B3Y L4I VÀ KI2U CON TR5 TRONG SQL SERVER
- Chương 8 QU N LÝ B O M6T VÀ NGƯ8I DÙNG TRONG SQL SERVER
So v i chu'n SQL do ANSI/ISO ñ xu t, b n thân các h qu n tr cơ s d li u quan
h thương m i l i có th có m t s thay ñ i nào ñó; Đi u này ñôi khi d9n ñ n s$ khác bi t, m#c dù không ñáng k , gi a SQL chu'n và SQL ñư c s d ng trong các h qu n tr cơ s
d li u c th Trong bài gi ng này, chúng tôi ch n h qu n tr cơ s d li u SQL Server
2000 c a hãng Microsoft ñ s d ng cho các ví d minh ho cũng như l i gi i c a các bài
t p
Chúng tôi hi v ng r)ng bài gi ng này s" th$c s$ có ích ñ i v i b n ñ c Chúng tôi
r t mong nh n ñư c s$ c vũ và nh ng ý ki n ñóng góp th ng th n c a các b n Cu i cùng, xin g i l i c m ơn ñ n các th*y cô, ñ ng nghi p và các b n sinh viên ñã ñ ng viên và giúp ñ; chúng tôi hoàn thành bài gi ng này
Trang 7Gi ng viên: Th.S Nguy n Trí Nhân 6 Khoa Công ngh Thông tin
Qu ng Ngãi, 2014 Nguy n Trí Nhân
Trang 8
Gi ng viên: Th.S Nguy n Trí Nhân 7 Khoa Công ngh Thông tin
Chương 1
Chương 1 TTTTỔ Ổ ỔNG QUAN V NG QUAN V NG QUAN VỀỀỀỀ SQL SERVER 2000 SQL SERVER 2000 SQL SERVER 2000
1.1
1.1 GIGIGIỚỚỚI THII THII THIỆỆỆỆU SQL SERVERU SQL SERVERU SQL SERVER
1.1.1 Giới thiệu chung về hệ quản trị cơ sở dữ liệu
H qu n tr cơ s d li u (ti ng Anh: Database Management System - DBMS), là ph*n m m hay h th ng ñư c thi t k ñ qu n tr m t cơ s d li u C th , các chương trình thu c lo i này h< tr kh năng lưu tr , s a ch a, xóa và tìm ki m thông tin trong m t
cơ s d li u (CSDL) Có r t nhi u lo i 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
Tuy nhiên, ñ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 mà ti ng Anh g i là Structured Query Language (SQL) Các h qu n tr CSDL ph bi n ñư c nhi u ngư i bi t ñ n là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix, v.v Ph*n l n các h qu n tr CSDL k trên ho t
ñ ng t t trên nhi u h ñi u hành khác nhau như Linux, Unix và MacOS ngo i tr% SQL Server c a Microsoft ch( ch y trên h ñi u hành Windows
- Ưu ñi'm c(a HQTCSDL:
+ Qu n lý ñư c d li u dư th%a
+ Đ m báo tính nh t quán cho d li u
+ T o kh năng chia s= d li u nhi u hơn
+ C i ti n tính toàn v!n cho d li u
- Như)c ñi'm:
+ HQTCSDL t t thì khá ph c t p
+ HQTCSDL t t thư ng r t l n chi m nhi u dung lư ng b nh
+ Giá c khác nhau tùy theo môi trư ng và ch c năng
+ HQTCSDL ñư c vi t t ng quát cho nhi u ngư i dùng thì thư ng ch m 1.1.2 Giới thiệu về phiên bản SQL Server
Microsoft SQL Server là m t h qu n tr cơ s d li u quan h (relational database management system – RDBMS) do Microsoft phát tri n
SQL Server là m t h qu n tr cơ s d li u quan h m ng máy tính ho t ñ ng theo
mô hình khách ch cho phép ñ ng th i cùng lúc có nhi u ngư i dùng truy xu t ñ n d li u,
qu n lý vi c truy nh p h p l và các quy n h n c a t%ng ngư i dùng trên m ng
Ngôn ng truy v n quan tr ng c a Microsoft SQL server là Transact-SQL
L*n lư t các phiên b n c a Microsoft SQL Server ñã ra ñ i sau s$ ki n này, t% 4.2 sau ñó ñư c nâng c p thành 4.21, 6.0, 6.5, 7.0 và hi n gi là Microsoft SQL Server 2000,
2005 và m i nh t là Microsoft SQL Server 2008, Microsoft SQL Server 2012, Microsoft SQL Server 2013
- SQL Server 2005: SQL Server 2005, ñư c phát hành vào tháng 11 năm 2005, là phiên b n ti p theo c a SQL Server 2000 S d ng trên n n Net Framework 2.0
Trang 9Gi ng viên: Th.S Nguy n Trí Nhân 8 Khoa Cơng ngh Thơng tin
- SQL Server 2008: Đây là phiên b n m i nh t c a SQl Server Ngày 27/02/2008, s
d ng trên n n Net Framework 3.0
- SQL Server 2012: Ngày 6/3/2012, t p đồn Microsoft tuyên b phiên b n m i nh t Microsoft SQL Server 2012, n n t ng d li u đư c s d ng nhi u nh t trên th gi i, s>n SQL Server 2012 giúp gi i quy t các thách th c liên quan đ n s$ gia tăng kh i lư ng d
li u b)ng cách chuy n các d li u này thành các t*m nhìn mang tính quy t đ nh nhanh chĩng, giúp khách hàng qu n lý b t kì d li u nào, v i b t kì kích thư c nào, t i c cơ s
và trên đi n tốn đám mây SQL Server 2012 đưa đ n m t n n t ng v i các cơng c quen thu c đ qu n lý d li u dù đ nh d ng nào, kích thư c l n t i đâu
1.2
1.2 Các thành phCác thành phCác thành phầầầần trong SQL Server n trong SQL Server n trong SQL Server
SQL Server đư c c u thành b i nhi u thành ph*n khác nhau, các thành ph*n cĩ m i quan h trong m t h th ng, ph i h p v i nhau đ t o thành m t gi i pháp hồn ch(nh, nâng cao hi u qu qu n tr , phân tích, lưu tr d li u:
- SQL Server Database: Là c< máy cơ s d li u bao g m Database Engine, lõi d ch
v cho vi c lưu tr , x lý và b o m t d li u, sao lưu và đ ng b (Replication), tìm ki m tồn văn (Full-Text Search) và các cơng c cho vi c qu n tr d li u quan h và XML
- Analysis services: Bao g m các cơng c cho vi c t o và qu n lý ti n trình phân tích
tr$c tuy n (online analytical processing – OLAP) và các ng d ng khai thác d li u
- Reporting Services: Bao g m các thành ph*n server và client cho vi c t o, qu n lý
và tri n khai các báo cáo Reporting Services cũng là n n t ng cho vi c phát tri n và xây d$ng các ng d ng báo cáo
- Notification Services: Là n n t ng cho s$ phát tri n và tri n khai các ng d ng t o
và g i thơng báo Notification Services cĩ th g i thơng báo theo đ ch th i đ n hàng ngàn ngư i đăng ký s d ng nhi u lo i thi t b
- Integration Services: Là m t t p h p các cơng c đ h a và các đ i tư ng l p trình
cho vi c di chuy n, sao chép và chuy n đ i d li u
- Connectivity Components: Là các thành ph*n cho vi c truy n thơng gi a client và
server, và các thư vi n m ng như DB-Library, ODBC và OLEDB
- SQL Server Management Studio (SSMS): Là mơi trư ng đư c tích h p cho vi c
truy xu t, c u hành, qu n tr và phát tri n t t c các thành ph*n c a SQL Server SSMS k t
h p t t c các tính năng c a Enterprise Manager, Query Analyzer và Analysis Manager,
đư c bao hàm trong các phiên b n trư c c a SQL Server, thành m t mơi trư ng đơn mà cung c p truy xu t SQL Server đ phát tri n và qu n tr t t c các m c k? năng trên
- Server SQL Configuration Manager: Cung c p các qu n tr c u hình cơ s cho các
d ch v SQL Server (SQL Server services), các giao th c server (server protocols), các giao th c client (client protocols) và các bí danh client (client aliases)
- SQL Server Profiler: Cung c p giao di n ngư i dùng đ h a cho vi c giám sát th
hi n c a Database Engine ho#c th hi n c a Analysis Services
- Database Engine Tuning Advisor: giúp t o các t p t i ưu ch( s (indexes),
indexed views và các phân vùng (partitions)
Trang 10Gi ng viên: Th.S Nguy n Trí Nhân 9 Khoa Công ngh Thông tin
1.3
1.3 CÀI ĐCÀI ĐCÀI ĐẶẶẶẶT SQL SERVERT SQL SERVERT SQL SERVER
Khác v i m t s ph*n m m khác như Microsoft Office, Visual Studio, Delphi, vi c cài ñ#t Microsoft SQL Server không ñơn gi n Do ñó, s" hư ng d9n b n các bư c ñ t$ cài ñ#t cơ s d li u Microsoft SQL Server Personal
Đây là phiên b n làm vi c trong môi trư ng Windows Me, Windows 98, Windows
NT Workstation 4.0 ho#c Windows 2000 Professional B n có th cài ñ#t và s d ng Microsoft SQL Server trên máy tính ñơn (Stand-Alone) mà không c*n ph i cài ñ#t Windows NT Server ho#c không c*n trang b m t h th ng m ng máy tính
* C u hình máy t i thi u ñ cài ñ t SQL Server 2000:
- CPU: Pentium 166 Mhz ho#c Pentium Pro
- RAM: 64MB cho Windows 2000 Professional (128MB thì t t hơn)
- Dung lư)ng ñĩa tr+ng: 95MB – 270MB v i phiên b n ñ*y ñ (Full); 50MB v i
phiên b n t i thi u (Minimun); 130MB v i phiên b n thư ng dùng (Typical)
- H, ñi-u hành: Windows Me, Windows 98, Windows NT Workstation 4.0,
Windows 2000 Professional
- Màn hình: VGA v i ñ phân gi i 800 x 600 ho#c cao hơn
- Internet Browser: Microsoft Internet Explorer 5.0 tr lên
* Các bư.c th/c hi,n vi,c cài ñ0t:
Bư c 1: Đưa ñĩa Microsoft SQL Server Personal vào ñĩa CDROM N u ñĩa không
t$ ñ ng ch y, b n double click chu t vào t p tin autorun.exe ñ kh i ñ ng chương trình
cài ñ#t
Bư c 2: Trong màn hình kh i ñ ng cài ñ#t Microsoft SQL Server Personal, b n ch n
m c SQL Server 2000 Components ñ b t ñ*u vi c cài ñ#t
Hình 1.1 Màn hình kh i ñ ng cài ñ#t SQL
Bư c 3: B n ch n ch c năng Install Database Server ñ cài ñ#t cơ s d li u Microsoft
SQL Server Personal
Trang 11Gi ng viên: Th.S Nguy n Trí Nhân 10 Khoa Công ngh Thông tin
Hình 1.2 Màn hình ch n thành ph*n cài ñ#t SQL
Đ i v i hai thành ph*n còn l i, ñư c dùng ñ cài ñ#t các thành ph*n liên quan ñ n
vi c x lý phân tích d li u tr$c tuy n (OLAP – Online Analytical Processing) và x lý
truy v n d li u b)ng ngôn ng ti ng Anh Hai thành ph*n này không nh t thi t ph i ñư c
cài ñ#t chung v i cơ s d li u Microsoft SQL Server Personal
Hình 1.3 Trình cài ñ#t ti n hành sao chép m t s file c*n thi t
Hình 1.4 Ch n Next ñ ti p t c cài ñ#t
Bư c 4: Trong màn hình Welcome, nh n nút Next ñ ti p t c vi c cài ñ#t Ch n Local
Computer ñ cài ñ#t cơ s d li u ngay trên máy tính hi n hành, nh n Next ñ ti p t c
Trang 12Gi ng viên: Th.S Nguy n Trí Nhân 11 Khoa Công ngh Thông tin
Hình 1.5 Màn hình ch n cách th c cài ñ#t SQL
Trong trư ng h p b n mu n th$c hi n vi c cài ñ#t cơ s d li u cho m t máy ch t%
xa bên trong m t h th ng m ng c c b , b n ch n ch c năng Remote Computer Khi ñó,
b n s" cung c p thêm tài kho n ngư i dùng, m t kh'u và domain c a ngư i dùng thu c
nhóm ngư i qu n tr ñ chương trình cài ñ#t có th truy xu t vào máy ch trong quá trình cài ñ#t
Bư c 5: Trong màn hình l$a ch n cài ñ#t (Installation Selection), b n ch n ch c năng
Create a new instance of SQL Server ñ ñơn gi n trong quá trình cài ñ#t, nh n nút Next
ñ t p t c
Hình 1.6 Màn hình l$a ch n cài ñ#t SQL
Bư c 6: Trong màn hình thông tin ngư i dùng (User Information), b n nh p vào tên c a
mình và tên cơ quan Có th b tr ng tên cơ quan Nh n nút Next ñ ti p t c
Trang 13Gi ng viên: Th.S Nguy n Trí Nhân 12 Khoa Công ngh Thông tin
Hình 1.7 Màn hình nh p thông tin ngư i dùng
Bư c 7: Trong màn hình th a ư c b n quy n ph*n m m (Software License Agreement),
Microsoft ñưa ra m t s th a ư c cho ngư i dùng khi s d ng ph*n m m Nh n Yes ñ
ñ ng ý các th a ư c này và ti p t c quá trình cài ñ#t
Hình 1.8 Màn hình th a ư c b n quy n ph*n m m
Trang 14Gi ng viên: Th.S Nguy n Trí Nhân 13 Khoa Công ngh Thông tin
Hình 1.9 Màn hình nh p s CDKey ph*n m m
Ch n Next ñ ti p t c cài ñ#t
Bư c 8: Trong màn hình ñ nh nghĩa lo i cài ñ#t (Installation Definition), ch n Server
and Client Tools ñ ch( ñ nh vi c cài ñ#t cơ s d li u và các ti n ích khác Nh n nút Next
ñ ti p t c
Hình 1.10 Màn hình ñ nh nghĩa lo i cài ñ#t SQL
Bư c 9: Trong màn hình ñ nh nghĩa tên th hi n (Instance Name), ch n ô ki m tra Default
n u mu n tên th hi n c a Microsoft SQL Server Personal trùng v i tên c a máy tính
b n ñang cài ñ#t Nh n nút Next ñ ti p t c
Trang 15Gi ng viên: Th.S Nguy n Trí Nhân 14 Khoa Công ngh Thông tin
Hình 1.11 Màn hình nh p tên th hi n
Trong trư ng h p b n mu n ñ#t tên khác thì b ch n ô ki m tra Default, nh p vào tên th hi n t i m c Instance Name
Bư c 10: Trong màn hình ch n lo i cài ñ#t (Setup Type) b n nên ch n lo i thư ng dùng
là Typical n u dung lư ng ñĩa c ng còn tr ng l n hơn 130MB, ngư c l i n u dung lư ng ñĩa c ng còn tr ng l n hơn 50MB thì nên ch n lo i t i thi u (Minimum) Nh n nút Next
ñ ti p t c cài ñ#t
Hình 1.12 Màn hình ch n lo i cài ñ#t SQL
M#c ñ nh thư m c C:\Programs\Microsoft SQL Server s" ch a các t p tin sau khi
cài ñ#t, bao g m các t p tin chương trình và t p tin d li u B n nên ch n m t thư m c khác ñ lưu tr các t p tin cơ s d li u v i m c ñích an toàn hơn B n có th nh n nút
Browser ñ thay ñ i các thư m c khác n u mu n
Trang 16Gi ng viên: Th.S Nguy n Trí Nhân 15 Khoa Công ngh Thông tin
Bư c 11: Trong màn hình ch n tài kho n ngư i dùng kh i ñ ng d ch v (Services
Accounts), cho phép b n ch( ñ nh tên tài kho n ngư i dùng ñ có th kh i ñ ng hai d ch
v chính y u c a Micorsoft SQL Server khi ho t ñ ng là: SQL Server và SQL Server Agent trong trư ng h p Microsoft SQL Server ch y trong môi trư ng Windows NT
Nh n nút Next ñ ti p t c
Hình 1.13 Màn hình ch n tài kho n ngư i dùng
N u h ñi u hành máy tính b n cài ñ#t là Windows 98 thì màn hình này s" không xu t hi n
B n nên ch n s d ng tài kho n ngư i dùng h th ng c c b (Use the Local System Account) ñ kh i ñ ng cùng lúc c 2 d ch v (Use the same Account for each service)
ñ i v i phiên b n Microsoft SQL Server Personal
Bư c 12: Trong màn hình ch( ñ nh cơ ch xác th$c ñăng nh p (Authentication Mode),
b n ch n Mixed Mode ñ ch( ñ nh vi c ñăng nh p (Login) vào Microsoft SQL Server Personal b)ng 2 cách: tài kho n ngư i dùng c a Windows ho#c tài kho n ngư i dùng trong Microsoft SQL Server B n nh p tài kho n SA cho tài kho n ngư i dùng SA trong Microsoft SQL Server Nh n nút Next ñ ti p t c
Hình 1.14 Màn hình cơ ch xác th$c ñăng nh p
Trang 17Gi ng viên: Th.S Nguy n Trí Nhân 16 Khoa Công ngh Thông tin
M#c ñ nh luôn luôn có m t tài kho n ngư i dùng có tên là sa (system administrator), ngư i qu n tr cơ s d li u trong Microsoft SQL Server ñư c t o sau khi k t thúc quá trình cài ñ#t cơ s d li u Microsoft SQL Server
Hình 1.15 Màn hình chu'n b sao chép các t p tin
Bư c 13: Trong màn hình b t ñ*u sao chép t p tin (Start Copying Files), h th ng thông
báo cho bi t các thông tin cài ñ#t ñã ñư c cung c p ñ*y ñ Nh n nút Next ñ b t ñ*u quá trình sao chép t p tin t% CDRom vào ñĩa c ng máy tính
Hình 1.16 Chu'n b ti n trình sao chép các t p tin
Trang 18Gi ng viên: Th.S Nguy n Trí Nhân 17 Khoa Công ngh Thông tin
Hình 1.17 Ti n hành sao chép các t p tin
Bư c 14: B n ph i ch trong m t th i gian ñ quá trình cài ñ#t th$c hi n Cu i cùng khi
xu t hi n màn hình hoàn thành cài ñ#t (Setup Complete), b n nh n nút Finish ñ k t thúc quá trình cài ñ#t cơ s d li u Microsoft SQL Server Personal
Hình 1.18 Màn hình hoàn thành cài ñ#t SQL
1.4
1.4 CÁC CSDL HCÁC CSDL HCÁC CSDL HỆỆỆỆ THTHTHỐỐỐNG TRONG SQL SERVERNG TRONG SQL SERVERNG TRONG SQL SERVER
Các CSDL ch a các d li u c a ngư i dùng ñư c g i là CSDL c a ngư i dùng (user database) Ngoài ra, các ho t ñ ng c a SQL Server tùy thu c vào b n CSDL h th ng (system Database): master, model, Tempdb, và msdb Các CSDL này t n t i trong m<i th
hi n c a SQL Server
Trang 19Gi ng viên: Th.S Nguy n Trí Nhân 18 Khoa Công ngh Thông tin
CSDL h, th+ng và CSDL ngư1i dùng:
CSDL Master: ñu c dùng ñ ñi u khi n các thao tác và thông tin m c h th ng c a
SQL Server Lưu tr thông tin h th ng trong 16 b ng h th ng, g i là system catalog System catalog lưu tr các thông tin tài kho n ngư i dùng, bao g m các m c như là b o
m t, ID, m t kh'u, các CSDL lưu trên server, các bi n môi trư ng, các thông ñi p l<i h
th ng, và các th t c h th ng
CSDL Model: ñư c dùng như là m t CSDL m9u cho t t c các CSDL m i ñư c t o
ra trong h th ng CSDL Model có th ñư c tùy bi n ñ t o m t c u trúc CSDL m#c ñ nh
m i cho CSDL m i Ví d , n u m t b ng c*n ph i t n t i trong CSDL m i sau này thì các
b ng ñó nên ñư c t o trong CSDL model Các CSDL m i v%a ñư c t o s" có kích c; ít
nh t b)ng kích c; CSDL model
CSDL Tempdb: ñư c dùng như là vùng lưu ch a t m th i ñ i v i các b ng và các
th t c t m SQL Server 2008 h< tr hai lo i b ng t m: b ng t m toàn c c (global temporary table) và b ng t m c c b (local temporary table) Tên c a b ng t m toàn c c
ñư c b t ñ*u ##, có th ñư c truy xu t ñ i v i t t c các client, trong khi tên b ng t m c c
b b t ñ*u #, ch( có th truy xu t ñ i v i nh ng client mà t o chúng Làm vi c trong Tempdb r t nhanh vì các ho t ñ ng không ñư c ghi nh n l i Tuy nhiên, khi client k t thúc
k t n i ñ n Server thì toàn b các b ng và th t c trong TempDB s" b xóa
CSDL Msdb: SQL Server Agent dùng CSDL msdb cho các tác v khác nhau, như
l p bi u, c nh báo và ghi nh n các thao tác D li u ñư c lưu trong các b ng h th ng trong CSDL msdb Các b ng h th ng ñư c dùng b i SQL Server Agent là sysalerts, syscategories, sysdownloadlist, sysjobhistory, sysjobs, sysjobschedules, sysjobservers, sysjobsteps, sysnotifications, sysoperators, systargetservergroupmembers, systargetservergroups, systargetservers và systaskids Ngoài ra, CSDL msdb có 7 b ng dùng cho thao tác d$ phòng và ph c h i d li u: backupfile, backupmediafamily, backupmediaset, backupset, restorefile, restorefilegroup, và restorehistory SQL Server có
th t$ ñ ng tăng ho#c gi m kích c; c a CSDL khi các dòng ñư c thêm vào ho#c xóa ñi
CSDL Pubs, Northwind: là hai CSDL ví d ñư c dùng trong các tài li u c a SQL
Trang 20Gi ng viên: Th.S Nguy n Trí Nhân 19 Khoa Công ngh Thông tin
D li u trong m t RDBMS như SQL Server 2000 ñư c s p x p trong m t s ñ i
tư ng, dA th y nh t là b ng (table) D li u ñư c lưu trong các Table theo dòng và c t
D li u liên quan ñ n các m c th$c t như các nhân viên, các s n ph'm, vi c g i hàng, ngư i tham gia… ñư c lưu trong các table riêng bi t Ví d , h th ng qu n lý nhân viên c a m t công ty có th có m t b ng g i là nhân viên, b ng này dùng ñ lưu chi ti t t t
c c a các nhân viên trong công ty Chi ti t c a nhân viên bao g m H nhân viên, Tên nhân viên, Đ a ch(, S ch ng minh nhân dân… Th(nh tho ng c*n 'n các thông tin riêng tư t% ngư i dùng b)ng cách dùng m t truy v n Các truy v n là các câu l nh SQL lưu trong CSDL và có th ñư c tham chi u ñ n các câu l nh SQL theo cách như các table SQL Server cũng s d ng các ki u d li u, m<i c t có th có các ki u khác nhau
T t c các ki u khác nhau này c a các ñ i tư ng, gi ng như b ng, truy v n và ki u
d li u ñư c lưu trong m t CSDL Trong môi trư ng SQL Server, m t lư c ñ CSDL (database schema) là t p h p các ñ i tư ng CSDL có liên quan ñ n vi c s d ng m t tên duy nh t và nó thu c v m t ngư i dùng ñơn l=
1.5
1.5 CÁC CÔNG CCÁC CÔNG CCÁC CÔNG CỤỤỤ TRONG SQL SERVER TRONG SQL SERVER TRONG SQL SERVER
Sau khi cài ñ#t xong Microsoft SQL Server công vi c k ti p mà chúng ta s" làm là tìm hi u v các ti n ích bên trong Microsoft SQL Server nh)m ñ s d ng m t cách ñúng
ñ n và có hi u qu cao Các ti n ích này ñã ñư c cài ñ#t chung v i Microsoft SQL Server
Đ kích ho t các ti n ích này, chúng ta s" ch n nh ng bi u tư ng n)m trong ñư ng d9n như sau:
Start → Programs → Microsoft SQL Server
Hình 1.20 Các ti n ích bên trong Microsoft SQL Server
Trang 21Gi ng viên: Th.S Nguy n Trí Nhân 20 Khoa Công ngh Thông tin
1.5.1 Tiện ích Book Online
Bng d ng này cho phép chúng ta có th tra c3u tr/c tuy4n t t c các thông tin liên
quan ñ n Microsoft SQL Server m t cách ñ*y ñ v i các tính năng tìm ki m dA dàng và
m t giao di n dA s d ng
N i dung ñư c trình bày theo t%ng ph*n dA dàng xem trong trang Contents Ngoài
ra còn các trang Index và Search cho phép các b n tra c u nhanh theo ch( m c ñã ñư c s p
x p trư c ñó ho#c gõ vào các t% khóa c*n tìm
Khi c*n tham kh o cú pháp các l nh, hàm, bi n h th ng m t cách ñ*y ñ nh t thì chúng ta vào ñây xem là hoàn toàn chính xác Tuy nhiên n i dung trình bày hoàn toàn là b)ng ti ng Anh
Hình 1.21 Ti n ích Book Online
1.5.2 Tiện ích Client NetWork Utility
Ti n ích này cho phép chúng ta thay ñ i, t o m i và lưu l i các nghi th3c n+i k4t m5ng (network protocol) m#c ñ nh c a máy tr m khi th$c hi n n i k t vào Microsoft SQL Server t i các máy ch
Trang 22Gi ng viên: Th.S Nguy n Trí Nhân 21 Khoa Công ngh Thông tin
Hình 1.22 Ti n ích Client NetWork Utility
1.5.3 Tiện ích Enterprise Manager
Ti n ích này cho phép chúng ta kh i ñ ng ho#c t m ngưng các d ch v c a Microsoft SQL Server Trong ph*n cài ñ#t bư c 9 chúng tôi ñã gi i thi u các d ch v c a Microsoft SQL Server ph i ñư c kh i ñ ng trư c thì các b n m i có th làm vi c ñư c v i Microsoft SQL Server
Hình 1.23 Ti n ích Enterprise Manager
Ngoài ra ti n ích này còn giúp chúng ta qu n tr6 m t ho#c nhi u Microsoft SQL
Server khác nhau, v i giao di n ñ h a thân thi n (user friendly) ti n ích này s" giúp cho các b n có th t o l p cơ s d li u và các thành ph*n bên trong Microsoft SQL Server m t cách dA dàng hơn
Trang 23Gi ng viên: Th.S Nguy n Trí Nhân 22 Khoa Công ngh Thông tin
Tuy nhiên mu n qu n tr Microsoft SQL Server thì chúng ta ph i ñăng ký (register)
máy ch vào ti n ích này, vi c ñăng ký như th nào chúng tôi s" trình bày trong nh ng ph*n ti p theo
1.5.4 Tiện ích Import and Export Data
Ti n ích này cho phép chúng ta th$c hi n các tính năng trong vi c nh p (import),
xu t (export) và chuy'n ñ8i d9 li,u qua l i gi a Microsoft SQL Server và nh ng lo i cơ
s d li u khác thư ng dùng như: Microsoft Access, Visual FoxPro, Microsoft Excel, t p tin văn b n ASCII
Hình 1.24 Ti n ích Import and Export Data
Trong ph*n bài gi ng này chúng tôi ch( trình bày cách s d ng Microsoft SQL Server nên không gi i thi u nhi u v ti n ích này, tuy nhiên n u các b n mu n tr thành ngư i qu n tr Microsoft SQL Server thì ch c r)ng công c này là r t c*n thi t cho ngư i
qu n tr
1.5.5 Tiện ích Profiler
Ti n ích này cho phép chúng ta phát hi n ra nh ng bi4n c+ ñã x y ra c a Microsoft
SQL Server khi ñang th$c hi n m t x lý nào ñó trên máy ch Các bi n c này có th
ñư c ghi l i trong m t t p tin lưu v t (trace file) ñ sau này s d ng l i cho vi c phân tích nh)m phát hi n ra nh ng v n ñ khi th$c hi n các câu l nh truy v n trong x lý ñó
Trang 24Gi ng viên: Th.S Nguy n Trí Nhân 23 Khoa Công ngh Thông tin
Hình 1.25 Ti n ích Profiler
Ho t ñ ng c a ti n ích này có ph*n g*n gi ng công c tìm l<i trong các ngôn ng
l p trình, có nghĩa là các b n s" cho th$c hi n tu*n t$ các câu l nh trong m t x lý lô (batch) ñ có th phát hi n ra l<i c a m t câu l nh nào ñó (n u có)
1.5.6 Tiện ích Query Analyzer
Ti n ích này cho phép chúng ta so5n th o các t p tin k ch b n (script file) – là t p
tin văn b n ASCII ch a các câu l nh SQL giao tác trên cơ s d li u Microsoft SQL Server
ho#c có th th/c hi,n các truy v:n tr$c ti p trên cơ s d li u Microsoft SQL Server và
nh n ñư c k t qu tr$c ti p ngay sau khi th$c hi n truy v n ñó
Trang 25Gi ng viên: Th.S Nguy n Trí Nhân 24 Khoa Công ngh Thông tin
Hình 1.26 Ti n ích Query Analyzer
Tuy nhiên trư c khi vào ñư c màn hình 1-19 h th ng Microsoft SQL Server s" yêu c*u các b n ñăng nh p (login) vào h th ng v i tên tài kho n ngư i dùng và m t kh'u h p
l b i vì Microsoft SQL Server là m t h qu n tr cơ s d li u m ng máy tính
Trong ñó tên tài kho n ngư i dùng và m t kh'u này s" do ngư i qu n tr Microsoft SQL Server t o ra trư c ñó, trong trư ng h p làm vi c trên Microsoft SQL Server Desktop thì chúng ta có th nh p vào v i tên là SA (System Administrator – ngư i qu n tr h th ng
cơ s d li u Microsoft SQL Server) và m t kh'u ñ tr ng
Hình 1.27 Đăng nh p ñ n Server
Câu l nh truy v n gõ t i ñây
Nút th$c hi n truy v n
Trang 26Gi ng viên: Th.S Nguy n Trí Nhân 25 Khoa Công ngh Thông tin
Trong các chương còn l i chúng ta ch y u làm vi c v i ti n ích này ñ t o ra các
ñ i tư ng lưu tr d li u bên trong Microsoft SQL Server
1.5.7 Tiện ích Server Network Utility
Ti n ích này cho phép chúng ta qu n lý các thư vi,n nghi th3c n+i k4t m5ng c a
máy ch dùng ñ l ng nghe các yêu c*u t% các máy tr m – có nghĩa các nghi th c n i k t
m ng gi a máy ch và máy tr m ph i ăn kh p nhau ñ chúng có th giao ti p qua l i
Hình 1.28 Ti n ích Server Network Utility
1.5.8 Tiện ích Service Manager
Ti n ích này cho phép chúng ta qu n lý các d6ch v; liên quan ñ n Microsoft SQL
Server Có th th$c hi n vi c: kh i ñ ng (start), t m d%ng (pause) và ngưng l i (stop) các
d ch v ñó Các d ch v (services) này ñư c xem như là các ng d ng ch y ng*m ñ nh bên
dư i h th ng trong môi trư ng Windows
Trang 27Gi ng viên: Th.S Nguy n Trí Nhân 26 Khoa Công ngh Thông tin
Hình 1.29 Ti n ích Service Manager
Đ i v i d ch v MSSQLSever b t bu c ph i ñư c kh i ñ ng ñ ngư i dùng m i có
th làm vi c v i cơ s d li u trong Microsoft SQL Server Do ñó sau khi cài ñ#t hoàn thành Microsoft SQL Server các b n ph i t$ kh i ñ ng d ch v này ñ chúng ta có th làm
vi c v i Microsoft SQL Server
Tuy nhiên k t% các l*n b t máy tính sau ñó các d ch v này s" ñư c t$ kh i ñ ng
n u chúng ta ñã ch n vào ô ki m tra Auto-start như hình phía trên
Thông thư ng ti n ích Service Manager s" xu t hi n bên dư i thanh tác v (task tray) c a Windows Đ kích ho t ti n ích này, chúng ta có nh n ñúp vào bi u tư ng Service Manager
Hình 1.30 Ti n ích Service Manager xu t hi n trên thanh công c
Trang 28Gi ng viên: Th.S Nguy n Trí Nhân 27 Khoa Công ngh Thông tin
Chương 2
Chương 2 GI GI GIỚ Ớ ỚI THI I THI I THIỆỆỆỆU U U NGÔN NG NGÔN NG NGÔN NGỮ Ữ Ữ TRANSACT TRANSACT TRANSACT –––– SQL SQL SQL
2.1 GI
2.1 GIỚỚỚI THII THII THIỆỆỆỆU U U
- Structured Query Language (SQL) là ngôn ng do IBM phát tri n t% năm 1970, dùng ñ giao ti p v i cơ s d li u Các h th ng cơ s d li u có cách vi t và thi hành câu
l nh SQL riêng như: ANSI SQL (SQL chu'n), T-SQL (SQL Server, Sybase), PL/SQL (Oracle), Access SQL
- Transact-SQL là ngôn ng SQL m r ng d$a trên SQL chu'n c a ISO (International Organization for Standardization) và ANSI (American National Standards Institute) ñư c
s d ng trong SQL Server khác v i P-SQL (Procedural-SQL) dùng trong Oracle
Các l nh T-SQL ñư c chia làm 3 nhóm:
+ Data Definition Language (DDL): Ðây là nh ng l nh dùng ñ qu n lý các thu c
tính c a m t Database như ñ nh nghĩa các hàng ho#c c t c a m t table, hay v trí data file
c a m t database như Create, Alter, Drop
+ Data Control Language (DCL): Ðây là nh ng l nh qu n lý các quy n truy c p
lên t%ng object (table, view, stored procedure ) như Grant, Revoke, Deny
+ Data Manipulation Language (DML): Ðây là nh ng l nh ph bi n dùng ñ x lý
data như Select, Update, Insert, Delete
Trong ph*n này chúng ta ch y u nghiên c u nhóm l nh Data Manipulation Language (DML)
Bit Nh n giá tr 0 (False), 1 (True) ho#c
NULL Tinyint T% 0 ñ n 255 1 byte
Smallint T% -215 (-32,768) ñ n 215-1 (32,767) 2 bytes
Int T% -231 (-2,147,483,648) ñ n 231-1
(2,147,483,647)
4 bytes Bigint T% -263 (-9,223,372,036,854,775,808)
ñ n 263-1 (9,223,372,036,854,775,807) 8 bytes
Trang 29Gi ng viên: Th.S Nguy n Trí Nhân 28 Khoa Công ngh Thông tin
1.18E - 38 ñ n 3.40E + 38
4 bytes
Float T% -1.79E+308 ñ n -2.23E-308, 0 và t%
2.23E-308 to 1.79E+308 T i ña 8 bytes Smallmoney T% -214.748,3648 ñ n 214.748,3647 4 bytes
Char Cú pháp: char(n), n t% 0 ñ n 8.000 n bytes
Varchar Cú pháp: varchar(n), n t% 0 ñ n 8.000 T i ña n bytes
Text Lưu tr t i ña 2.147.483.647 kí t$ T i ña 2,147,483,647
bytes nChar Cú pháp: nchar(n), n t% 0 ñ n 4.000 2*n bytes
nVarchar Cú pháp: nvarchar(n), n t% 0 ñ n 4.000 2*n bytes
nText Lưu tr t i ña 1,073,741,823 ký t$ T i ña 2,147,483,647
bytes 2.3 TRUY XU
2.3 TRUY XUẤẤẤẤT DT DT DỮỮỮ LILILIỆỆỆỆU (DATA QUERY LANGUAGE)U (DATA QUERY LANGUAGE)U (DATA QUERY LANGUAGE)
2.3.1 Truy vấn dữ liệu đơn giản với SELECT
Trong th$c t chúng ta thư ng xuyên ph i th$c hi n các công vi c như l p danh sách sinh viên trong l p hay l p danh sách các nhà cung c p hàng hóa cho công ty… Đ th$c
Trang 30Gi ng viên: Th.S Nguy n Trí Nhân 29 Khoa Công ngh Thông tin
- So_Ban_Ghi: S b n ghi tr v trong k t qu truy v n
L ưu ý: N u danh sách k t qu không ñư c s p x p, k t qu s" hi n th theo th t$
d li u ñư c thêm vào b ng
- Danh_Sach_Truong: Trư ng hi n th trong danh sách k t qu truy v n, danh sách trư ng
có th là tên các trư ng ho#c các bi u th c ñư c ngăn cách v i nhau b)ng d u ph'y dư i
“,” S lư ng t i ña các trư ng, bi u th c trong danh sách này là 4096
L ưu ý: S d ng ký t$ “*” khi c*n l y t t c các trư ng trong b ng g c vào danh
sách k t qu truy v n
- Ten_Bang: Tên b ng c*n truy v n d li u
Ví d :
Cho các b ng cơ s d li u sau:
- B ng danh sách nhà cung c:p, khách hàng (DMDT) bao g m các trư ng: Id, Ma_Dt,
Ten_Dt, Dia_Chi, So_Dt, Fax, Email, Ghi_Chu
4 N003 Cty liên doanh Vi t Pháp H i Phòng 033 6534 391
5 N004 Cty TNHH m t thành viên c p nư c Yên Bái Yên Bái 02183 543 443
6 N005 Cty C ph*n L c H ng B c Ninh 0240 362 552
7 N006 Cty XNK Á Châu H i Dương 0320 3111 411
Trang 31Gi ng viên: Th.S Nguy n Trí Nhân 30 Khoa Công ngh Thông tin
6 TP003 Bánh kem bơ Gói Gói 150 gram
7 TP004 Bánh Socola Vinasun H p H p 6 cái
8 VT004 Socola nguyên li u Kg
9 VT005 S a Ông Th Thùng
- B ng ch3ng t< (CT) bao g m các trư ng: Id, Ma_Ct, Nhom_Ct, So_Ct, Ngay_Ct,
Ma_Dt, Ong_Ba, Dia_Chi, Dien_Giai
Stt_Ct Ma_Ct Nhom_Ct So_Ct Ngay_Ct Ma_Dt Ong_Ba Dia_Chi Dien_Giai
- B ng chi ti4t ch3ng t< (CTCT) bao g m các trư ng: Id, Id_Ct, Ma_Vt, Ma_Kho,
Trang 32Gi ng viên: Th.S Nguy n Trí Nhân 31 Khoa Công ngh Thông tin
- L p danh sách 5 v t tư xu t hi n ñ*u tiên trong b ng DMVT
SELECT TOP 5 Id, Ma_Vt, Ten_Vt, Quy_Cach, Ghi_Chu
FROM DmVt
- L p b ng kê ch ng t% nh p xu t bao g m các thông tin Ngày ch ng t%, s ch ng t%, DiAn gi i, mã ñ i tư ng, ngư i nh p xu t (h c viên t$ vi t)
2.3.2 Tìm hiểu các trường tính toán
Các trư ng tính toán không t n t i trong cơ s d li u ñã ñư c chu'n hóa, nó ch(
ñư c xác ñ nh trong quá trình x lý, tính toán Ví d trong b ng DMDT (như gi i thi u ph*n trư c) b n mu n l y danh sách nhà cung c p v i tên nhà cung c p kèm theo s ñi n tho i ñ ti n liên l c như minh h a dư i ñây:
Trang 33Gi ng viên: Th.S Nguy n Trí Nhân 32 Khoa Công ngh Thông tin
Mã v t tư Mã kho S+ lư)ng Đơn giá Thành ti-n
TP001 KTP 120.000 120,00 14.400.000 TP002 KTP 23.500 45,00 1.075.500
- Mô hình quan h gi a các b ng trong h th ng
Trong ví d này c t “Thành ti n” ñư c t o ra t% phép nhân gi a hai trư ng Don_Gia
Có th vi t l i hai câu truy v n trên như sau:
SELECT Ma_Dt, Ten_Dt + ‘ (’ + So_Dt + ‘)’ AS Ten_Dt_Moi, Dia_Chi
FROM DmDt
Và
SELECT Ma_Vt, Ma_Kho, So_Luong,
Trang 34Gi ng viên: Th.S Nguy n Trí Nhân 33 Khoa Công ngh Thông tin
Don_Gia, Don_Gia * So_Luong AS Thanh_Tien
FROM DmDt
Trong hai câu l nh m i tên trư ng “Thanh_Tien” và “Ten_Dt_Moi” g i là tên bí danh
- Các toán t trong bi u th c trư ng tính toán: Có th s d ng các toán t +, -, *, / trong
GetDate() L y th i gian hi n th i t i Client
GetUtcDate() L y th i gian hi n th i t i Server
Day() Tr v giá tr ngày c a ñ i s
Month() Tr v giá tr tháng c a ñ i s
Year() Tr v giá tr năm c a ñ i s
ABS() Tr v giá tr tuy t ñ i c a ñ i s
LEFT() L y các ký t$ bên trái c a ñ i s
vi t thư ng
2.3.3 Lọc dữ liệu với mệnh đề WHERE
Trong th$c t b ng thư ng ch a m t lư ng l n d li u và ít khi chúng ta l y toàn b các b n ghi trong b ng d li u ñó Chúng ta thư ng truy xu t m t t p con d li u c a b ng
ng v i các ho t ñ ng c th Vi c truy v n như v y ñòi h i ph i ch( ñ nh m t vùng ñi u
ki n tìm ki m hay còn g i là ñi u ki n l c Ví d l y danh sách các nhà cung c p t i Hà
N i ho#c l y b ng kê các m#t hàng nh p xu t trong năm 2013,…
Cú pháp:
SELECT [DISTINCT] [TOP So_Ban_Ghi]
<Danh_Sach_Truong>
Trang 35Gi ng viên: Th.S Nguy n Trí Nhân 34 Khoa Công ngh Thông tin
Trang 36Gi ng viên: Th.S Nguy n Trí Nhân 35 Khoa Công ngh Thông tin
Tìm hi'u m>t s+ toán t? cao c:p:
- Toán t AND và OR: S d ng các toán t này ñ k t h p nhi u ñi u ki n l c + L p danh sách ch ng t% xu t hàng cho công ty Cty TNHH m t thành viên c p
nư c Yên Bái vào ngày 01/06/2013
SELECT Ngay_Ct, So_Ct, Dien_Giai, Ong_Ba
FROM Ct
WHERE Ma_Dt = ‘N004‘ AND Ngay_Ct = ‘01/06/2013‘
K t qu :
01/06/2013 PX003 Xu t bán hàng hóa Phan Th Anh
Lưu ý: Cty TNHH m t thành viên c p nư c Yên Bái có mã là “N004”
+ L p b ng kê xu t hàng chi ti t m#t hàng “Bánh tr ng Custas (TP001)” ho#c “Bánh kem bơ (TP003)”
SELECT Ma_Vt, So_Luong, Don_Gia,
So_Luong * Don_Gia AS Thanh_Tien
SELECT Ngay_Ct, So_Ct, Dien_Giai, Ma_Dt
Trang 37Gi ng viên: Th.S Nguy n Trí Nhân 36 Khoa Công ngh Thông tin
- Toán t IN: S d ng toán t này ñ ch( ñ nh m t dãy ñi u ki n v i b t kỳ giá tr nào trong dãy th a mãn IN s d ng m t danh sách các giá tr ñư c tách b i d u ph'y dư i
“,”, t t c ñư c ñ#t trong d u ngo#c ñơn
Ví d :
L p b ng kê xu t hàng chi ti t m#t hàng “Bánh tr ng Custas (TP001)” ho#c “Bánh kem bơ (TP003)” s d ng t% khóa IN
SELECT Ma_Vt, So_Luong, Don_Gia,
So_Luong * Don_Gia AS Thanh_Tien
FROM CtCt
WHERE Ma_Vt IN(‘TP001‘, ‘TP003’)
- Toán t NOT: Ph ñ nh bi u th c ñ ng ngay sau nó
Ví d :
+ L p b ng kê ch ng t% xu t hàng cho Cty TNHH ABC (N001) ho#c các ch ng t% không ph i cho công ty này nhưng ñư c th$c hi n vào ngày 05/06/2013 s d ng t% khóa NOT
SELECT Ngay_Ct, So_Ct, Dien_Giai, Ma_Dt
FROM CT
WHERE Ma_Dt = ‘N001’
OR (NOT(Ma_Dt = ‘N001’) AND Ngay_Ct = ‘05/06/2013’)
- Toán t LIKE và các ký t ñ i di n: S d ng toán t này ñ tìm d li u g*n ñúng
v i giá tr tìm ki m b)ng cách k t h p v i các ký t$ ñ i di n Ch( có th áp d ng toán t LIKE và các ký t$ ñ i di n cho d li u ki u chu<i
+ Ví d v ký t$ ñ i di n “%”: Ký t$ ñ i di n này ñ i di n cho ph*n còn l i c a chu<i
L p danh sách các khách hàng là lo i hình doanh nghi p “C ph*n” trên ñ a bàn Hà
N i
SELECT RTRIM(Ten_Dt) + ' (' + RTRIM(Ma_Dt) + ')' AS Ten_Dt, So_Dt, Email
FROM DmDt
Trang 38Gi ng viên: Th.S Nguy n Trí Nhân 37 Khoa Công ngh Thông tin
gram TP003 Bánh kem bơ Gói Gói 150
gram TP004 Bánh Socola Vinasun H p H p 6 cái + Ví d v ký t$ ñ i di n “[ ]”: S d ng ñ ch( ñ nh m t t p h p các ký t$, m t ký t$ trong t p h p ph i th a mãn m t ký t$ t i m t v trí xác ñ nh trư c (v trí c a ký t$ ñ i
di n)
L p danh sách các công ty “TNHH” ho#c “C ph*n” ñóng trên ñ a bàn “Hà N i” SELECT RTRIM(Ten_Dt) + ' (' + RTRIM(Ma_Dt) + ')' AS Ten_Dt, So_Dt, Email
Lưu ý: Không th ph nh n kh năng linh ho t khi tìm ki m v i các ký t$ ñ i di n,
tuy nhiên vi c tìm ki m v i chúng m t nhi u th i gian hơn c so v i nh ng cách tìm ki m
ñã gi i thi u sau ñây là m t s th thu t c*n ghi nh khi s d ng tìm ki m b)ng các ký t$
ñ i di n:
Trang 39Gi ng viên: Th.S Nguy n Trí Nhân 38 Khoa Công ngh Thông tin
ñư c k t qu như mong mu n
2.3.4 Sắp xếp dữ liệu với ORDER BY
Trong nh ng ví d các ph*n ñã h c k t qu truy v n chưa ñư c s p x p, chúng thư ng ñư c hi n th theo th t$ trong b ng, ñây có th là tr t t$ d li u ñư c thêm vào
b ng ban ñ*u Tuy nhiên tr t t$ này có th thay ñ i n u như b ng thư ng xuyên ñư c c p
nh t ho#c xóa, chúng ta có th s d ng câu truy v n v i ORDER BY ñ s p x p l i d li u
TP003 Bánh kem bơ Gói Gói 150 gram TP002 Bánh kem x p Gói Gói 200 gram TP004 Bánh Socola Vinasun H p H p 6 cái TP001 Bánh tr ng Custas H p H p 20 cái Xem l i k t qu khi không s d ng ORDER BY
Trang 40Gi ng viên: Th.S Nguy n Trí Nhân 39 Khoa Công ngh Thông tin
TP001 Bánh tr ng Custas H p H p 20 cái TP002 Bánh kem x p Gói Gói 200 gram TP003 Bánh kem bơ Gói Gói 150 gram TP004 Bánh Socola Vinasun H p H p 6 cái
- L p b ng kê ch ng t% nh p xu t trong tháng 06 năm 2013, s p x p theo Ma_Dt và Ngay_Ct tăng d*n
SELECT Ngay_Ct, So_Ct, Ma_Dt, Dien_Giai
FROM Ct
WHERE MONTH(Ngay_Ct) = 6 AND YEAR(Ngay_Ct) = 2013
ORDER BY Ma_Dt, Ngay_Ct
K t qu :
01/06/2013 PX002 N001 Xu t hàng hóa bán ñ i lý 01/06/2013 PN001 N002 Nh p v t tư ph c v s n xu t 01/06/2013 PX003 N004 Xu t bán hàng hóa
05/06/2013 PX004 N004 Xu t bán hàng hóa 02/06/2013 PN002 N005 Nh p nguyên li u
- L p b ng kê ch ng t% xu t bán thành ph'm, s p x p theo Ma_Vt và So_Luong
gi m d*n
SELECT Ma_Vt, So_Luong, Don_Gia,
So_Luong * Don_Gia AS Thanh_Tien
FROM CtCt
WHERE Ma_Vt LIKE 'TP%'
ORDER BY Ma_Vt, So_Luong DESC
K t qu :
Ma_Vt So_Luong Don_Gia Thanh_Tien
TP001 120 120.000 14.400.000 TP001 78 13.000 1.014.000 TP001 75 110.000 8.250.000 TP001 35 11.500 402.500 TP002 45 23.500 1.057.500