Bài 3: Design and Implement a SQL Server Database 3.1... CREATE TABLE Table1 Col1 INT PRIMARY KEY, Col2 INT, CONSTRAINT col2_fk FOREIGN KEY Col2 REFERENCES Employees EmployeeID.
Trang 1Bài 1: Gi i Thi u SQL Server 2000
, ! < W ! & C $; Z 0
! +: $; < e 7 , ! " # 3 $ / 6 P! 0 g " ! < ! $ $ % & '% I! (
C + $ " 6 &( @ a gD o : , 5 C + $ " 6 < P! :0 D "
Trang 2K " " 8> ! 8> 5 a "` W ! " ] + ! " !" m "8> ; " 8> ) * 0 g p! 7 $; +89 ?/ 6 ! ! ( 7C
" " ! ] $; : &_ & 6/ ! ! !( " 0 D & < ! < e % L
" M0 $8@ & e 0 : +Q Z P! M0 7 = 8 Z @ "T0j0 D " 7 +: [ A " M0 < " c0 ( ] C P &C
3 Z H _ ` $ " +3 6& 0
% + , +Q $ +3 8 " ) 0 g: " m , $; :, ! " @ 3 " 8@ 7 = O / ! F 0 g p! $; : ,
;& " " " T0j "Q M0 @ " < 5 3& + _ & 7 = , L & ! @
Trang 31.3.1 Relational Database EngineE 3 t P! N
dY& : 7 H 4! ! ! 3 & = 7 3 ! 8@ ; !$
//" ? 3 7 , 7C ! ! " " ( = * P! % " "I 8 W k #! !u$v W#u(2 u B #'2 ! u/ #! !$! " & u#'.(0 g " ! : s : 7 H w+ _ h /( Z * 8 ) * < 3 &< " ( P! 3& 7 O ;
&< " + _ 7 " "II0
1.3.2 ReplicationE C ;" $ !" / !(N
V ) $; : ! !$! 5 +, 4! +89 3 4 * 8> L &< 6/
6 0 % & +x/ > $; : 3 ! !$! & 8 C < 7 3+, ;& $3" 3" /" ! !$! ( 3 & 8> 5 +, 3 8 +C
/ I" ! P! Z (0 A? +_ /" P! $; o O / +89 6/ 68> L &< +, + $ " Z Z L3 P! 3 $3" 3"0 '; 7 = , 5 C $! 7 /
! " " 8> 9/ &0 D C ] $; / !"y F +: C / ! " P!
f +89 ) * +, $ " + " ! !$! +89 +1 $ & " z (0 / ! " f +89 $ 7{ " $ |
1.3.4 Analysis Service -% X * / Y Z ? !& P! % " "I
# #! !( 4! " ! !$! f ~ : p! ] _ C 8 $; 7 = ,
?& +89 = J I" ! " ( $- Z [ +:0 #" +: % " "I ?/ " $; =
* ? ; F/ " / Y Z < m $q 3 5 7 3] 7 _ _ E " $ ( 7{ 6 G+ " \ G ! ! ( f +89
Trang 5Bài 2: Gi i Thi u S L c V Transact SQL (T-SQL)
D ! ! E = w! < l P! J u J ! " ! u ! z! "I" ! ! z! " ( Wg J W ! g! " ! ! ! J ( +89 ) * " 7 3
@ KE K " ! E ( 5 " u ! 0
D " $ & F ! f ] , ! _ DE 0 F +89 ! R : N
2.1 Data Definition Language (DDL):
dY& 5 +, 3 Z P! ! !$! 8 +X p! 3 "QP! !$ 2 !& X Z ! ! I P! ! !$! 000 8> : ;
CREATE TABLE Importers(
CompanyID int NOT NULL,
CompanyName varchar(40) NOT NULL,
Contact varchar(40) NOT NULL
)
W ! +Y& " / ƒ/ ! !& +- +X p! P! !$ 8 < !& $@ ( !&
." ! 000D " Z * & ! f < " ! D " !$ J /"
USE Northwind
ALTER TABLE Importers
ADD ContactTitle varchar(20) NULL
# "/ ! +Y& f " " L:! !$ 7 \ ! !$! 2 3 # '% 2 4 3 5'6 7 " 7 3 @ # h L:! ! ! 8 !$ „ 1 ; (0
USE Northwind
DROP TABLE Importers
2.2 Data Control Language (DCL):
dY& 3 &_ & 6/ < [ "$v !$ 2 `2 " / " 000(0 D 8> :
; ! N
• V !
• "7
• # &
Trang 7WHERE TerritoryID = 98101
A] / O & 7 3 H $ < F = C p 7 = O Z _ 0 F " # $;: , : … " !& 7 = +_ +89 0
i &." 2 # / " I
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description NVARCHAR(80))
.: ! "; J I "; = 8> 8 ( "; e
2 "; & O : ? GG !& ? †‡ +, H 3 0 "; # +89 5 + @ 3 5
@ [ 7 :! P! 7 &`" ( !& 3 : 7 " 0
Trang 8SELECT * FROM Employees
WHERE EmployeeID = @EmpIDVar + 1
• G N "; & o _ 3 X + $q Y BDS g 0
• G N "; & _ !$
Trang 9+ 4! L " / ! +r +89 $ < X " / ( " $ @ ! +: C : <+89 e ; O ! ] 7 = O $ < X : , w !& + _ & F/ "
$! ;& ! 0
K Q
& h 5 +, Z " $ C +r 7C F $! v"$ &< O w 0g: 7 = / " DE 0
Trang 11K ˆ
b0 S E- T " A'0gBD " L ‘W g `u ’ " / "
| 0 S * T L " / " " ! ! L/‚ ‘ Š "’(
Trang 12Bài 3: Design and Implement a SQL Server Database
3.1 C u Trúc C a SQL Server
g 8 +r ] $ & 3 $ 8@ " +Q + , P! )
< 7 : +C ( " +: ! : +C J ! P! 2 =8> +: # I! J ! 0 % J ! P! : U & ! !$! !& _
! !$! 0 3 & ! !$! $!" 1 N
• ) N 4! ? = ?/ & E I" ! " ( $!" 1 =_ 3 ! !$! 7 3 " 8 X Z P! 3 ! ! I 2 3 " ! " 3 C +Q
Trang 133.3 Nguyên T c Ho t Ð ng C a Transaction Log Trong SQL Server
D ! ! " " I " 5 +, ; 3 !& +- L & ! " ! !$! 0 3 ] & m
Trang 14g " 7 K" K " &E/! s +89 +8! " p! $ 0/ I 0 dY&
! Y O h 4 ? ƒ ! / O ! ! ! " 7• ? +X !+: ; P &< > O ƒ @ 0
k Z < F _ 7 3 ! ! " " ! !$! 0 % ! ! " !&
!" X "; 3 "; + L & ! +89 L 8 = + "I `" 7( p! "Q
= " $ "Q 7 = ] ! " " (0 ! +Y& Z * - + , _ ! ! " N F ! &, _ ”j [ ! " W !
D C ] 7 K" K " "; + 8 C " +, : , + $ " ! ! " +89 w
7 = G G ! !$! 0
Trang 15D " ] f < 2 ! ! " +89 $ , m $q o < 0 D * q ! * >
! 0 V ) 7 K" +89 +3 ? " > + , ! ! ! " R 8 ] f ! +:
w Lr& ! 8@ 7 Q/ 7 /" 7C C/0 g 8 6& 7 +89 ! : f w! <] " ! ! " " I +, / * 1 ! ! L ] f(0
d _ +: : p! f 7 = O ] + @ ! ! " | ] ; > + , 7/" ! ! +r +89 8 " p! 1 0 D " 7 +: ! ! " U f +89 " I" `! ] & +r +89
" 8 " w L & ! 8@ > + , 7 /" 7C C/ < ! ! 8! 7X/ 8 " p!0 D4w! < = +89 < " I " " : +O& +P +, C " p! 4 0.s ! ! " R j ] 8! +89 " " $X "` $? >( " < f " $! 7 !
/‚ " " " $ C + $6 P!
/‚ /! †‹"$v ‹2 ?/ = _ 3 7 " +r +89 ) * "
Trang 16g" ` R0bU %' ! T W T ! •ug JgB2 S/ ! !$ &• BW#‚a JDB2 00000
Trang 17: VD
Trang 18i ;" ! ! !$! F ! o / 8 + , ! N d @ 3 \ +:
? +_ + P! 7 = "; ;& ] F ! 8> e 3 3 X Q +X I! (
" 0 2 ( / I 0 g 8 < / " " P! 3 @7Z 8@ P! ! !$! / +89 8> #'W 8@ 89 8@ 5& " O — P! $ 2 =8> 8> ! 7 = e W " "` w + H 8 ( W " 7 w + ƒ (0 Y \ +89+Q ! +Y& ] !" ! 7 = +, e 3 X 7 +O " ! !I ! +: 7 O ] :
f w + @ ! ; / 8@ 89 8@ y g &< Y C e W " "` !& W " 7(] F ! : , f Q/ ? +_ ! N
0
D " 3 @ 8> ! : , w +"3 8@ 7Z 8@ P! ! !$! $q 3 Z "37Z 8@ P! 3 !$ 2 +Y& o h 7Z 8@ 8@ +"3 = L L GB ! z "I !
! !$! G " '""7 u +, $ C < _ 3 Z ( ! +: 8> L &< 5 Y
8> 5 3 Y $} +O $q - 0K O & f +89 $ ! " 3 $ ! (
7 , ! L : +P 7 " !& 7 = C 7 = +P ! : , e > + , Z
$6 ? 8 $! +< !& ! > ( +, @ ! ! I 8 C f 7 = 8 @/ I" ! P! 0
F ) ! ™ V' " ! !I 2 7 5 a "` BL/ " +, L ! f ?& 7Z 8@ P! IV' 8 ! ! w C : , h C * %' = 0
3.6 Nh ng Ði m C n L u Ý Khi Thi t K M t Database
D " / ; $ & F ! 7 = , : Y _ &C C 7C ! !$! h +8! !
> 7 &< $; < Y " 7 C 7C0
D 8@ C $; / } _ 3 "; / 0 AZ * $; / $ C t w 7 3 $ !FWX,2 FWX, FWX,2 FWX,0 "; ! "; : 7Z 8@+X p! " Z * < C ! ! +8! " GD ! ! & " ! ! G @ | 7 w( ]
f w + } / O + = ! h s GD !G0 D8 w C +8! " \ | ]
f < 7 " " / Z! ! " +P | 7 w0 g 89 ; "; ! ! f 7 = < 3 7 "/ Z! ! 7 +8! " Z | 0 s "; ! ! $} +O $q 4! ; " 0
% 8 7 3 " ! : 3 "; J 8 N / 2 2 2 0
D " +: 7Z 8@ [ "; 8 4 |2 2U2c $& 0 g p! "; 8 +8 @
"; 8 +8 @ " A'0
Trang 19| J % " "I K W ' 7 & S W
a "` g ` %W '" " S W
T0 a "L .W ' 7 & S WD! < 3 ! !$ '""7 !$ K $ 8 ! N
Trang 20D & < 6/ + 6/ ; W " f ;" _ ? +_ ! &0 ~ ; 8 C 3: _ R 3 ] F ! f Q/ / _ / 4 !&0000D " Z * & ! < Q ! R !$
Trang 21Bài 4: Backup And Restore SQL Server
$! 7 / +89 ! ! " " I ] ! : , / * 1 ! !$! +C > + , ! ! " O
? +89 " 0
Trang 22• - 8 / ) N n " & 3 "; + ! Z "; 8 ' 7
J 2 $ /2 ! J L2 a D L 2 S/ ! D L h +89 " " ! ! " " I +P+, " $ C 3 "; + & : m ! 7 = " " $ C 8 " … " &
%" 0 3 "; + 7 3 8 J 2 S/ ! 2 # „ +89 " +O& +P +, 5 " / *
1 ! &0
• 8 / ) N n " & ] D ! ! " " … +89 ! 8> L &<
7 = O $! 7 /0 A@ " & $; h : , / * 1 @ > + , $! 7 / O ? 7 =, / * 1 @ > + , " 3 7 40
Trang 23.: , $; f \ C "y K O & f +89 : t " $ ! _ #! !
J &0 g 8 o L 5 Z * + +, Z 0 D " Z * _ C " ! ! "
$ R N V ) _ ”j +89 [ 7 \ ! " W 8 ; 7 = +89 " ! " ' C
! !$! 7 = +89 3 ] 7 = / * w + ! " ! " & / " ( P! " $! 7 ]: f ; 3 " 0 gC ! !$! ; 3 8 8@ 7 [ _ "Q ! 7 +r
i = f h : , e " ! "/ " < = !& !"y i = " " 8 6&
! : , e "/ " 6/ "/ " aJDŠ DWg#'‰ 4 "/ " R G
/ G " B / %! ! (0 A@ "/ " & ! f: = +Q Z P! ! "/ " < N 3 " / ! ! " f +89 " $! 7 +, + $ " ! !$!
Trang 24'! 7 / % ! # 7 !& !/ +89 ) * +, 4! $! 7 / 0 '! 7 / ! : , 4! _ $! 7 / Z * 8
$! 7 / [ _ a "` $! 7 / (0'! 7 / % $ $! 7 / [ O $! 7 / + +89 4! < $! 7 / !0
Trang 25! +: w! 5& " &< O P! ! !$! e 3 "/ " Z 9/0 D! : , "
$! 7 / +X 7•0
4.5 Restore Database
D 8@ 7 " ! !$! ! / L3 +X +89 4 w I O " 0 3 = & +894! " ! !$! f " ! $ C $! 7 / "2 ! $! 7 / " > + , "0
! +: ! C " 0 d, " $; 8 Y( Y8 UUU f ?&
` "` 8 ] f ! N
Trang 26gC $; " [ ! 7 3 P! !& [ 7 3 $; : e G
"/ " e $! 7 / I $! 7 /( 8 4 0
8 C $; " ` ! !$! : ™ @ ! ! +89 $! 7 / $; : , e "/ "
Trang 27'; : , e ! ! !$! "/ ! " ! !& " "/ ! " ! 5& " 8> 9/ 8 +r
Z < 0
Trang 28Bài 5: Data Integrity and Advanced Query Technique
g: +C #! ! J & ! : +C Z " x P! ! !$! !& : 3 7 3 ! !4! " ! !$! / Z L3 +3 6&0 gC ! ! 4! " ! !$! 7 = Z L3 ! :
! !$! ? Z " x " ! ! &(0 D " $ & F ! f $ ! 3 / 8 / 3/ +,
" ! !$! +89 " x 0
5 3 +, + $ " #! ! J &0 % 3 8 D !& J L f +89 $+C " 3 $ ! & < " / ; $ & F ! o : ! 3 3 < 0
• / N #! ! &/ o : , + $ " Z " x P! ! ! Z * $; 7 ! $3" ! ! &/P! J ] $; 7 = , +8! 3 X ; " +89 0
• + + N g "; 3 X +Q $ 2 : 7 = 8 +8 @ z "2 $ ! 7 !&/ & G G : p! 7 = $ C 7 "` ( !& 8! +89 +X p! I (0 i
C 7C ! !$! ! < = l 6 " " / ƒ/ +89 g !& g" g ]4! g ! ! : , " 4 * 7 = L)! ! ! 7{ 8— $X G ƒG0
< ! +: < 7C @ " +: P! !$ " 7 ŠB.i " ! ZP! !$ < : , +89 ;" ! @ BWDB DW' B0
• N % "; " / " +Q $ +89 w 3 w + 7 !$ +89S/ ! 2 J 2 !& # 0 AZ * ! 7 : +89 $3 ! ] - :!
" 7 " / +89 L E|( ~ ; 7 +: ! : , 5 +, + $ " &+:0 D f +89 $ 7{ " 3 $ ! 0
• * N f +89 $ +C " $ : _ J L 0
5.2 Constraints
." ! Z / "/ &( ! 3/ +Q < !$ !& +, 3
8 7 = Z L3 " ! !$! ! ! !(0 D 6 ! guD gS !& #B…WS D o +89 L
; " ! 8 F ! 7 = $!" 1 ! "; & +Y& h ] $ & U "; " !
K ! & i & " ! 2 S " ! 2 …" i & " ! 7 " ! 0
Trang 29i K ! & i & +89 ;" ! S J L f +89 w + ;" ! +, & ] Z & ? 0 gC
" !$ +: 8! : J L ] S Œ J L f +89 ;" !0
.: , ;" ! K ! & i & " ! 8 ! N
CREATE TABLE Table1
(Col1 INT PRIMARY KEY, Col2 VARCHAR(30)
)
!&
CREATE TABLE Table1
(Col1 INT, Col2 VARCHAR(30),
CONSTRAINT table_pk PRIMARY KEY (Col1)
gC $; ! ! " !$ ! ] 8@ C $; / "/ !& !$ …" 7 & " !$
" 8@ 0
.: , ;" ! …" i & " ! 8 ! N
CREATE TABLE Table1
(Col1 INT PRIMARY KEY, Col2 INT REFERENCES Employees(EmployeeID)
)
!&
Trang 30CREATE TABLE Table1
(Col1 INT PRIMARY KEY, Col2 INT,
CONSTRAINT col2_fk FOREIGN KEY (Col2)
REFERENCES Employees (EmployeeID)
7 " ! 5 +, @ ; !& 7 , "3 3 X +89 / ƒ/ " 0 7 " !
…" i & " ! “ : 7 , "3 3 X +8! " 8 7 3 “ …" i &." ! w! < 3 X !$ ! +, " / ƒ/ 3 X +89 ?/ 6 !& 7 = " 7 7." ! w! < $ , 4 " " L/ " ( +, 7 , ! L 3 X : 9/ 7 = 0 AZ
* ! : , 3/ +Q 7 " ! < ! ! & +, h ?/ 6 _ 8 [ ”|j +C
”| Ž H 0
D! : , ;" ! _ 7 " ! < 0 g " ! ! : , ;" 7 " ! <_ $q 3 ;" ! 7 " ! 4 !$ !$ (0
.: , ;" ! 7 " ! 8 ! N
CREATE TABLE Table1
(Col1 INT PRIMARY KEY, Col2 INT
CONSTRAINT limit_amount CHECK (Col2 BETWEEN 0 AND 1000), Col3 VARCHAR(30)
)
D " Z * & ! @ ; 3 X ?/ 6 +89 P! " [ +C | 0 AZ * ! f ;" !
7 " ! 8 < 8 !$ N
CREATE TABLE Table1
(Col1 INT PRIMARY KEY, Col2 INT,
Col3 VARCHAR(30),
CONSTRAINT limit_amount CHECK (Col2 BETWEEN 0 AND 1000)
)
Trang 315.3 Advanced Query Techniques
SELECT FirstName + ' ' + LastName AS "Employee Name",
IDENTITYCOL AS "Employee ID", HomePhone,
Trang 32Region FROM Northwind.dbo.Employees
ORDER BY LastName, FirstName ASC
D " Z * < ! GB / "& g! G / l ƒ/ ; P! … g! ! g! +89
3 ! $q 7 " } 0 % 3 X "; & +, GB / "& J#G0 iC f+89 }/ " 4 w [ \ @ @ W ( s #B [ @ @ \( " +: ! g! +89 }/8@ 1 @ @ … g! 0
INSERT INTO EmployeeNames
SELECT FirstName, LastName
FROM Employers
F 7 = : GE G " Y J &0
V uSK '‰ 5 +, ;" ! 3 3 X - ! ! ! ( " [ " 7C +89 0 h: " [ 3 X < $ ( P! [ 0 3 +89 +_ / q "
V uSK '‰ ! 0 Šr& L Z * / 4 ;/ ! N
SELECT OrdD1.OrderID AS OrderID,
SUM(OrdD1.Quantity) AS "Units Sold", SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue FROM [Order Details] AS OrdD1
Trang 33S " 7 &`" : * ƒ/ 7C P! !& _ ; 7C 0
AZ *N
V ) : !$ | " W ! ! | (2 " ' ( !$ " ! ! | (2 " # (0 D!
! ! [ !$ | ƒ/ @ ! ! [ !$ +, ;" 7C & ? ! 8 ! NSELECT * FROM Table1
UNION ALL
SELECT * FROM Table2
gC 7 = : 7 &`" W ] ! [ !$ f h L ? O " 7C 0.s 7 5 W ] 3 " !$ +_ : " 7C $? ?/ 6/ ; 0
SELECT t.Title, p.Pub_name
FROM Publishers AS p INNER JOIN Titles AS t
SELECT a.Au_fname, a.Au_lname, p.Pub_name
FROM Authors a LEFT OUTER JOIN Publishers p
ON a.City = p.City
ORDER BY p.Pub_name ASC, a.Au_lname ASC, a.Au_fname ASC
Trang 34#5 u š" +, ! ! [ !& _ !$ " +: ? $< !$ 4 ! 7 =
1 ; $< !$ 4 ? f +89 @ 3 3 X P! 3 +89 v" 0 +89
f $q @ P! !$ 4 ! 0 D4 / O = +\ < ] 0 AZ *N
USE Pubs
SELECT a.Au_fname, a.Au_lname, p.Pub_name
FROM Authors a RIGHT OUTER JOIN Publishers p
ON a.City = p.City
ORDER BY p.Pub_name ASC, a.Au_lname ASC, a.Au_fname ASC
#5 … u š" +, ! ! [ !& _ !$ " +: ? $< !$ 4 ? 4 !+_ +89 e 3 3 X $< ! !$ $q ! ] h ?& O 0 D4 / O = +\ < ] 0 AZ
*N
USE Pubs
SELECT a.Au_fname, a.Au_lname, p.Pub_name
FROM Authors a FULL OUTER JOIN Publishers p
SELECT au_fname, au_lname, pub_name
FROM authors CROSS JOIN publishers
WHERE authors.city = publishers.city
ORDER BY au_lname DESC
Trang 35Bài 6: Stored Procedure and Advance T-SQL
E? @ fN D !& ] "/& " $ !$ ! : , 5 & +, / O ! ! L/" ! L I 8
Trang 37Select * from OPENQUERY(LinkedPracticeDB,'Select * from Customers')
D " Z * < ! ?& I " uKBg SB ‰ f _ ! ! : , q ! 7 &`" … u% 8
!$ 0 i 5 uKBg SB ‰ I " ! O " $ C < P! 7 & ! w0
Select * from OPENDATASOURCE('Microsoft.jet.oledb.4.0',
'Data Source = C:\PracticeDB.mdb; User ID = Admin; Password = ')
DECLARE @au_lname varchar(40), @au_fname varchar(20)
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
OPEN Employee_Cursor