SQL SERVER - PowerPoint PPT Presentation

Loading...

PPT – SQL SERVER PowerPoint presentation | free to download - id: 7a3434-MzI5O



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

SQL SERVER

Description:

... x y d ng b ng VB,VB.NET ... nh p Database : Ch n CSDL Ti n ch Import and Export Data N u d li u ngu n l Microsoft Access : ... – PowerPoint PPT presentation

Number of Views:1
Avg rating:3.0/5.0
Date added: 29 October 2018
Slides: 149
Provided by: Tran181
Learn more at: http://fit.hcmup.edu.vn
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: SQL SERVER


1
SQL SERVER
  • Ver 1.0

2
Chuong 1 GI?I THI?U T?NG QUAN V? SQL SERVER
  1. T?ng quan
  1. SQL SerVer laø m?t h? qu?n tr? CSDL quan h?
  1. Co S? D? Li?u Quan H?
  • D? li?u du?c t? ch?c luu tr? thaønh t?ng b?ng
  • M?t b?ng duøng d? luu tr? thoâng tin c?a m?t d?i
    tu?ng ngoaøi th? gi?i th?c
  • M?t b?ng du?c t?o t? doøng vaø c?t

3
T?ng Quan (tt)
  • C?t Duøng d? luu tr? thu?c tính c?a d?i tu?ng
  • M?t b?ng ph?i coù toái thi?u m?t c?t,Th? t? c?t
    không quan tr?ng
  • M?t coät coù ba thu?c tính co b?n
  • Column Name Teânn c?t,trong m?t b?ng khoâng th?
    coù hai coät truøng teân
  • Data Type Ki?u d? li?u
  • Length chi?u daøi c?a d? li?u

4
IT?ng Quan(tt)
  • Doøng t?p h?p d? li?u c?a nhi?u c?t
  • Trong m?t b?ng khoâng theå coù hai doøng truøng
    thoâng tin
  • Moät doøng cho bieát thoâng tin cuï theå cuûa
    moät ñoái töôïng löu tröõ trong baûng
  • M?t b?ng coù th? khoâng coù doøng naøo

5
I.T?ng Quan(tt)
  • Khoaù Chính (Primary Key)
  • T?p h?p c?a m?t hay nhi?u c?t trong b?ng
  • D? li?u t?i c?t naøy khaùc r?ng
  • D? li?u t?i c?t naøy laø duy nh?t trong b?ng

6
I.T?ng Quan (tt)
  • Khoaù ngo?i (Foreign Key)
  • T?p h?p c?a m?t hay nhi?u c?t trong b?ng,maø
    caùc coät naøy laø khoaù chính c?a b?ng khaùc
  • D? li?u t?i caùc c?t naøy ho?c r?ng,ho?c ph?i
    l?y t? b?ng maø c?t laøm khoaù chính

7
I.T?ng Quan(tt)
B.H? Qu?n Tr? CSDL Quan H?
  • Laø m?t h? th?ng caùc chuong trình coù caùc
    ch?c nang
  • T?o vaø qu?n lyù m?t CSDL Quan h?
  • khai thaùc M?t CSDL Quan h?
  • B?o m?t M?t CSDL Quan h?
  • T?o b?ng sao (Backup) M?t CSDL Quan h?
  • Ph?c h?I(Restore) M?t CSDL Quan h?
  • SQL Server laø m?t h? qu?n tr? CSDL Quan h?

8
Caùc heä thoáng SQL Server
  • Heä Thoáng SQL Server coù theå trieån khai cho
    moät heä thoáng kieåu Client-Server hoaëc trieån
    khai cho moät heä thoáng maùy ñôn
  • Heä thoáng ñöôïc trieån khai phuï thuoäc vaøo soá
    ngöôøi truy caäp ñoàng thôøi ñeán CSDL ñeå thöïc
    hieän moät coâng vieäc

9
Caùc heä thoáng SQL Server
  • Trong moâ hình Client-Server ta coù theå trieån
    khai theo moâ hình 2 lôùp hoaëc 3 lôùp

10
Caùc heä thoáng SQL Server
11
II.Caøi Ð?t SQL Server
A.Yeâu c?u ph?n c?ng
Ph?n c?ng Yêu c?u
CPU T? Pentium 166 MHz tr? lên
RAM T? 64MB tr? lên
Ðia c?ng Còn tr?ng 100MB tr? lên
Màn hình VGA có d? phân gi?i 800X600 tr? lên
12
II.Caøi Ð?t SQL Server
A.Yeâu c?u ph?n M?m
Phiên b?n SQL Server H? di?u Hành
Enterprise Edition Standard Edition Microsoft Windows Server(nt,2000,Xp Server)
Personal Edition Coù th? ch?y treân t?t c? caùc h? di?u haønh
13
II. Caøi d?t Personal Edition SQL Server
1. Ðua ñóa CD chöông trình vaøo ,maøn hình sau
xuaát hieän
14
II.Caøi ñaët Personal Edition SQL Server(tt)
2.Maøn hình sau xuaát hieän
15
II.Caøi ñaët Personal Edition SQL Server(tt)
3.Maøn hình sau xuaát hieän
16
II.Caøi ñaët Personal Edition SQL Server(tt)
4.Maøn hình sau xuaát hieän
17
II.Caøi ñaët Personal Edition SQL Server(tt)
5.Maøn hình sau xuaát hieän
18
II.Caøi ñaët Personal Edition SQL Server(tt)
6.Maøn hình sau xuaát hieän
19
II.Caøi ñaët Personal Edition SQL Server(tt)
7.Maøn hình caûnh baùo xuaát hieän,choïn yes
20
II.Caøi ñaët Personal Edition SQL Server(tt)
8.Maøn hình ñaêng nhaäp xuaát hieän ,nhaäp vaøo
CD Key
21
II.Caøi ñaët Personal Edition SQL Server(tt)
9.Choïn kieåu caøi ñaët
22
II.Caøi ñaët Personal Edition SQL Server(tt)
10.Choïn Daïng caøi ñaët
23
II.Caøi ñaët Personal Edition SQL Server(tt)
11.Choïn kieåu ñaêng nhaäp vaøo SQL Server
24
II.Caøi ñaët Personal Edition SQL Server(tt)
12.Choïn kieåu ñaêng nhaäp vaøo SQL Server
25
II.Caøi ñaët Personal Edition SQL Server(tt)
  • Nhaáp Next ñeå chöông trình caøi ñaët vaøo maùy
  • Sau khi caøi ñaët xong,khôûi ñoäng laïi maùy, sau
    khi khôûi ñoäng xong,thaáy xuaát hieän bieåu
    töôïng Treân thanh Status cuûa Windows

26
III.Caùc tieän ích cuûa SQL Server
1.Tieän ích EnterPriseManagerMaøn hình quaûn lyù
caùc ñoái töôïng coù trong SQL Server
27
III.Caùc tieän ích cuûa SQL Server
Agt Microsoft SQL ServerChöùa caùc nhoùm Server
  • Taïo môùi moät nhoùm Server ta laøm nhö sau
  • Click chuoät phaûi vaøo Microsoft SQL
    Server,choïn New SQL Server Group

28
III.Caùc tieän ích cuûa SQL Server
Maøn hình sau xuaát hieän
  • Choïn Top Level Group Taïo moät nhoùm goác
  • Choïn Sub-group of taïo moät nhoùm laø con cuûa
    moät nhoùm khaùc
  • Nameteân nhoùm

29
III.Caùc tieän ích cuûa SQL Server
BgtÑaêng kyù moät Server vaøo heä thoáng Click
chuoät phaûi vaøo SQL Server Group,choïn New SQL
Server Registration
30
III.Caùc tieän ích cuûa SQL Server
Maøn hình sau xuaát hieän Nhaán Next
31
III.Caùc tieän ích cuûa SQL Server
Maøn hình sau xuaát hieän choïn Server caàn
ñaêng kyù,nhaán Add,sau ñoù nhaán next
32
III.Caùc tieän ích cuûa SQL Server
Maøn hình sau xuaát hieän Maøn hình sau xuaát
hieän choïn daïng keát noái ,choïn löïa choïn 1
33
III.Caùc tieän ích cuûa SQL Server
Maøn hình sau xuaát hieän Nhaäp Login
name,PassWord ñeå ñaêng nhaäp vaøo SQL Server
  • Chuù yù Neâuù quaù trình caøi ñaët ôû böôùc 11
    vaø 12 choïn nhö treân thì
  • Login name Sa
  • Password

34
III.Caùc tieän ích cuûa SQL Server
CgtDataBasesChöùa caùc CSDL Trong SQL Server, coù
7 CSDL coù saún ,chia laøm 2 loaïi
CSDL Heä thoáng khoâng ñöôïc xoaù,söûa CSDL Heä thoáng khoâng ñöôïc xoaù,söûa
Teân CSDL YÙ nghóa
Master Laø CSDL quaûn lyù thoâng tin cuûa caùc CSDL coøn laïi
Mode Laø CSDL maåu
Msdb Là CSDL ph?c v? cho d?ch v? SQL Server Agent
35
III.Caùc tieän ích cuûa SQL Server
Tempdb Laø CSDL chöùa caùc baûng taïm ñöôïc phaùt sinh trong quaù trình xöõ lyù
CSDL maãu CSDL maãu
Teân CSDL YÙ nghóa
Jobs
Northwind
pubs
36
III.Caùc tieän ích cuûa SQL Server
CgtClient Network Utility duøng ñeå ñaêng kyù
moät Server cho heä thoáng
37
III.Caùc tieän ích cuûa SQL Server
Caùch ñaêng kyù choïn Tab Alias nhaán nuùt
Add,maøn hình sau xuaát hieän
  • Choïn TCP/IP
  • Server Alias nhaäp vaøo nhaõn
  • Server name nhaäp vaøo ñòa chæ IP cuûa Server

Chuù yù Tieän ích naøy chæ söû duïng trong heä
thoáng maïng
38
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Query Enalyzer laø maøn hình vi?t l?nh
c?a SQL Server
39
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Book Online Taøi lieäu höôùng daãn
caùch söû duïng SQL Server
40
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Service Manager quaûn lyù caùc dòch vuï
lieân quan ñeán SQL Server Muoán söû duïng SQL
Server phaûi khôûi ñoäng dòch vuï naøy
Caùc dòch vuï naøy khôûi ñoäng baèng caùch
Start -gt Programs-gtMcrosoft SQL Server-gtDòch vuï
41
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Import and Export Data
Ti?n ích này cho phép chuy?n d? li?u (Export) t?
CSDL SQL Server ra các lo?I CSDL khác nhu
Access,Excel..và ngu?c l?I Cách kh?I d?ng
Start-gtProgrames-gtMicrosoft SQL Server,màn hình
sau xu?t hi?n, click Next
42
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Import and Export Data
  • Màn hình sau xu?t hi?n
  • Data Sourse Ch?n lo?i d? li?u ngu?n
  • N?u d? li?u ngu?n ch?n là SQL Serverch?n
    Microsoft OLE DB for SQL Server
  • Server Ch?n tên Server
  • Ch?n ki?u dang nh?p
  • Database Ch?n CSDL

43
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Import and Export Data
  • N?u d? li?u ngu?n là Microsoft Access ch?n
    Microsoft Access
  • File Name Ðu?ng d?n Tên CSDL
  • Username,PassWord nh?p vào n?u CSDL có yêu c?u
    dang nh?p
  • nh?n Next

44
III.Caùc tieän ích cuûa SQL Server
Ti?n ích Import and Export Data
  • Destination ch?n lo?I d? li?u dích
  • N?u ch?n SQL Server ch?n Server,nh?p Username,
    Password và ch?n CSDL dích
  • N?u ch?n Access ph?i ch?n CSDL dích
  • Chú ý ch? Import ho?c Export du?c d? li?u ,không
    có các ràng bu?c

45
Chöông II Xaây döïng moät CSDL trong SQL Server
  • M?t (CSDL) c?a SQL Server là t?p h?p các d?i
    tu?ng
  • b?ng (Table)Ch?a d? li?u
  • b?ng ?o (View)ch?a d? li?u l?y t? B?ng
  • th? t?c n?i t?i (Stored Procedure) Ch?a các
    l?nh thao tác v?i D? li?u

46
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Triger Ch?a các l?nh thao tác v?i D? li?u,ki?m
    tra ràng bu?c t? d?ng
  • Constraint Ch?a các ràng bu?c d? li?u
  • M?t CSDL do m?t ho?c nhi?u ngu?i t?o nhung có th?
    du?c nhi?u ngu?i truy c?p
  • Trong SQL Server có th? t?o duoc 32767 CSDL khác
    nhau

47
Chöông II Xaây döïng moät CSDL trong SQL Server
  • C?u trúc luu tr? c?a m?t CSDL
  • M?t CSDL trong SQL Server t?i thi?u s? dùng hai
    t?p tin v?t lý d? luu tr? d? li?u
  • M?t dùng luu tr? d? li?u (Data file)
  • M?t dùng d? luu tr? các v?t giao tác
    (Transaction log file)

48
Chöông II Xaây döïng moät CSDL trong SQL Server
Thu?ng du?c t? ch?c luu tr? trong 3 t?p tin
49
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o m?i m?t CSDL trong SQL Server
  • Cách 1 S? d?ng ti?n ích EnterPriseManager Click
    chu?c ph?i vào d?i tu?ng Databases ch?n New
    Database

50
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Xu?t hi?n h?p tho?i

51
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ch?n Tab Data Files
  • Filename Tên t?p tin Data Files
  • Location V? trí luu tr?
  • Initial size(Mb) Kích thu?c ban d?u
  • Automatically grow file T? d?ng tang kích thu?c
  • In megabytes tang bao nhiêu mB
  • By percent Tang theo ph?n tram
  • Maximun file size kích thu?c t?i dac?a CSDL
  • Unrestricted file growth Không gi?i h?n kích
    thu?c
  • Restrict file growth(MB) gi?i h?n
  • Tuong t? cho Transaction Log

52
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o CSDL b?ng cách vi?t l?nh trong Query Enalyzer

CREATE DATABASE QLBANHANG ON PRIMARY ( NAME
QLBANHANG_DATA, FILENAMEC\MSSQL\DATA\
QLBANHANG_DATA.MDF, SIZE50MB, MAXSIZE200MB, FIL
EGROWTH10) LOG ON ( NAME QLBANHANG_LOG, FILENAM
EC\MSSQL\DATA\ QLBANHANG_LOG.LDF, SIZE10MB, M
AXSIZEUNLIMITED, FILEGROWTH5MB )
53
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Các ki?u d? li?u trong SQL Server

Ki?u d? li?u Kích thu?c Mi?n giá tr? d? li?u luu tr?
gt Các ki?u d? li?u d?ng s? nguyên gt Các ki?u d? li?u d?ng s? nguyên gt Các ki?u d? li?u d?ng s? nguyên
Int 4 bytes t?-2,147,483,648d?n 2,147,483,647
SmallInt 2 bytes t? -32768 d?n 32767
TinyInt 1 byte t? 0 d?n 255
Bit 1 byte 0, 1 ho?c Null
gt Các ki?u d? li?u d?ng s? th?p phân gt Các ki?u d? li?u d?ng s? th?p phân gt Các ki?u d? li?u d?ng s? th?p phân
Decimal, Numeric 17bytes t? -1038 d?n 1038
gt Các ki?u d? li?u d?ng s? th?c gt Các ki?u d? li?u d?ng s? th?c gt Các ki?u d? li?u d?ng s? th?c
Float 8 bytes t? -1.79E308 d?n 1.79E308
Real 4 bytes t? -3.40E38 d?n 3.40E38
54
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Các ki?u d? li?u trong SQL Server

gt Các ki?u d? li?u d?ng chu?i có d? dài c? d?nh gt Các ki?u d? li?u d?ng chu?i có d? dài c? d?nh gt Các ki?u d? li?u d?ng chu?i có d? dài c? d?nh gt Các ki?u d? li?u d?ng chu?i có d? dài c? d?nh gt Các ki?u d? li?u d?ng chu?i có d? dài c? d?nh
Char Char N bytes N bytes t? 1 d?n 8000 ký t?, m?i ký t? là m?t byte
gt Các ki?u d? li?u d?ng chu?i có d? dài bi?n d?i gt Các ki?u d? li?u d?ng chu?i có d? dài bi?n d?i gt Các ki?u d? li?u d?ng chu?i có d? dài bi?n d?i gt Các ki?u d? li?u d?ng chu?i có d? dài bi?n d?i gt Các ki?u d? li?u d?ng chu?i có d? dài bi?n d?i
VarChar VarChar N bytes N bytes t? 1 d?n 8000 ký t?, m?i ký t? là 1 byte
Text Text N bytes N bytes t? 1 d?n 2,147,483,647 ký t?, m?i ký t? là 1 byte
gt Các ki?u d? li?u d?ng chu?i dùng font ch? Unicode gt Các ki?u d? li?u d?ng chu?i dùng font ch? Unicode gt Các ki?u d? li?u d?ng chu?i dùng font ch? Unicode gt Các ki?u d? li?u d?ng chu?i dùng font ch? Unicode gt Các ki?u d? li?u d?ng chu?i dùng font ch? Unicode
NChar 2N bytes 2N bytes t? 1 d?n 4000 ký t?, m?i ký t? là 2 bytes t? 1 d?n 4000 ký t?, m?i ký t? là 2 bytes
NVarChar 2N bytes 2N bytes t? 1 d?n 4000 ký t?, m?i ký t? là 2 bytes t? 1 d?n 4000 ký t?, m?i ký t? là 2 bytes
NText 2N bytes 2N bytes t? 1 d?n 1,073,741,823 ký t?, m?i ký t? là 2 bytes t? 1 d?n 1,073,741,823 ký t?, m?i ký t? là 2 bytes
55
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Các ki?u d? li?u trong SQL Server

gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t? gt Các ki?u d? li?u d?ng ti?n t?
Money 8 bytes 8 bytes 8 bytes t? -922,337,203,685,477.5808 d?n 922,337,203,685,477.5807 t? -922,337,203,685,477.5808 d?n 922,337,203,685,477.5807 t? -922,337,203,685,477.5808 d?n 922,337,203,685,477.5807
SmallMoney 4 bytes 4 bytes 4 bytes t? -214,748.3648 d?n 214,748.3647 t? -214,748.3648 d?n 214,748.3647 t? -214,748.3648 d?n 214,748.3647
gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi? gt Các ki?u d? li?u d?ng ngày và gi?
DateTime DateTime DateTime 8 bytes 8 bytes t?01/01/1753d?n31/12/9999 t?01/01/1753d?n31/12/9999
SmallDateTime SmallDateTime SmallDateTime 4 bytes 4 bytes t?01/01/1900d?n06/06/2079 t?01/01/1900d?n06/06/2079
gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String) gt Các ki?u d? li?u d?ng chu?i nh? phân (Binary String)
Binary Binary N bytes N bytes N bytes N bytes t? 1 d?n 8000 bytes
VarBinary VarBinary N bytes N bytes N bytes N bytes t? 1 d?n 8000 bytes
Image Image N bytes N bytes N bytes N bytes t? 1 d?n 2,147,483,647 bytes
56
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Các thu?c tính co b?n c?a M?t B?ng
  • Tên b?ng (Table Name) Ð? dàilt 128 ký t?. Tên
    b?ng ph?i duy nh?t bên trong ph?m vi c?a ngu?i dã
    t?o ra nó trong m?t CSDL
  • Tên c?t (Column Name) là tên c?a các c?t bên
    trong b?ng, tên c?a các c?t bên trong b?ng ph?i
    duy nh?t.
  • Ki?u d? li?u (Data Type)qui d?nh ki?u d? li?u mà
    c?t s? luu tr? bên trong b?ng.

57
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ð? dài d? li?u (Data Length) dùng d? qui d?nh d?
    dài d? li?u mà c?t s? luu tr? d?i v?i các ki?u d?
    li?u d?ng chu?i, s?.
  • S? ký s? luu tr? (Precision) là s? ký s? t?i da
    mà các ki?u d? li?u d?ng s? có th? luu tr? du?c.
  • S? l? luu tr? (Scale) là s? l? t?i da mà các
    ki?u d? li?u d?ng s? th?p phân dùng d? luu tr?.

58
Chöông II Xaây döïng moät CSDL trong SQL Server
  • C?t d?nh danh (Identity) Giá tr? c?a c?t d?nh
    danh là s? nguyên không trùng l?p do h? th?ng
    Microsoft SQL Server t? d?ng c?p phát.
  • Các ki?u d? li?u c?a c?t d?nh danh Int,
    SmallInt, TinyInt, Decimal , Numeric
  • Thu?c tính Identity Seed S? d?u tiên
  • Thu?c tính Identity Increment giá tr? tang

59
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Cho phép d? tr?ng d? li?u (Allow Null) qui d?nh
    d? li?u có th? du?c phép d? tr?ng hay là ph?i
    nh?p
  • Giá tr? m?c d?nh (Default Value) là giá tr? m?c
    nhiên s? du?c gán vào c?t d? li?u khi ngu?i s?
    d?ng thêm m?i m?t m?u tin nhung l?i d? tr?ng giá
    tr? t?i c?t d? li?u dó.

60
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o B?ng trong Sql Server
  • Cách 1 S? d?ng ti?n ích Enterprise Manager
  • M? CSDL Click chu?t ph?i trên d?i tu?ng Tables,
    ch?n ch?c nang New Table... trong th?c don t?t.

61
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Màn hình sau xu?t hi?n Nh?p tên b?ng,nh?p OK
  • Màn hình thi?t k? b?ng xu?t hi?n nh?p thông tin
    và ch?n c?t làm khoá chính

62
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o b?ng b?ng l?nh trong màn hình Query Elyzer

T?o c?u trúc b?ng don gi?n Cú pháp CREATE TABLE
Tên_b?ng ( Tên_c?t_1 Ki?u_d?_li?u NOT NULL
, Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,
... ) Trong dó   Tên b?ng, tên c?t và ki?u d?
li?u dã du?c mô t? ? trên   T? khóa NOT NULL ch?
d?nh không cho phép d? li?u t?i c?t dó du?c phép
b? tr?ng.
63
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o b?ng b?ng l?nh trong màn hình Query Elyzer

T?o c?u trúc b?ng có giá tr? m?c d?nh Cú
pháp CREATE TABLE Tên_b?ng ( Tên_c?t_1
Ki?u_d?_li?u DEFAULT Giá_tr?Hàm , Tên_c?t_2
Ki?u_d?_li?u NOT NULL ,... ) Trong dó  
Giá tr? là giá tr? c? th? s? du?c gán vào
c?t.   Hàm là tên hàm cùng v?i các tham s? (n?u
có), tuy nhiên ki?u d? li?u mà hàm tr? v? ph?i là
cùng v?i ki?u d? li?u mà c?t s? luu tr?.
64
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o b?ng b?ng l?nh trong màn hình Query Elyzer

Ví d? 1 CREATE TABLE VATTU            
(             MAVTU CHAR(4) NOT NULL,            
TENVTU VARCHAR(100) NOT NULL,             DVTINH
VARCHAR(10) NOT NULL,             PHANTRAM REAL
DEFAULT 20             ) Ví d? 2 CREATE TABLE
DONDH             (             SODH CHAR(4) NOT
NULL,             NGAYDH DATETIME DEFAULT
GETDATE(),             MANHACC CHAR(3) NOT
NULL             )
65
Chöông II Xaây döïng moät CSDL trong SQL Server
  • T?o c?u trúc b?ng có c?t d?nh danh
  • Cú pháp
  • CREATE TABLE Tên_b?ng
  • (
  • Tên_c?t_1 Ki?u_d?_li?u_s? IDENTITY (S?_b?t_d?u,
    Ch?_s?_tang) ,
  • Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,...
  • )
  • Trong m?t b?ng ch? có t?i da m?t c?t du?c ch?
    d?nh làm c?t d?nh danh.
  • S? b?t d?u là s? mà SQL Server s? d?ng d? c?p
    phát cho m?u tin d?u tiên. M?c d?nh là 1.
  • Ch? s? tang là ch? s? mà SQL Server c?ng lên d?
    c?p phát cho t?ng m?u tin k?t ti?p. M?c d?nh là 1.

66
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Tính toàn v?n d? li?u trong co s? d? li?u các
    ràng bu?c trong SQL Server du?c qu?n lý b?I hai
    d?I tu?ng CONSTRAINT và TRIGGER
  • Constraint qu?n lý các ràng bu?c nhu
  • Ràng bu?c d? li?u duy nh?t
  • Ràng bu?c d? li?u t?n t?i
  • Ràng bu?c mi?n giá tr?
  • Trigger Qu?n lý các ràng bu?c ph?c t?p,liên quan
    d?n d? li?u trên nhi?u b?ng

67
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Xây d?ng các Constraint
  • AgtKi?m tra duy nh?t d? li?u có hai lo?i
  • Primary Key (khoá chính ) d? li?u khác r?ng và
    duy nh?t
  • Unique d? li?u có th? r?ng và d? li?u t?n t?i
    duy nh?t

68
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ð?nh nghia ràng bu?c khoá chính
  • CREATE TABLE Tên_b?ng
  • (
  • Tên_c?t_1 Ki?u_d?_li?u DEFAULT Giá_tr?Hàm ,
  • Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,...
  • CONSTRAINT PK_Tên_b?ng_TenCot PRIMARY
  • KEY (Danh_sách_c?t_khóa_chính)
  • )

69
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ð?nh nghia ràng bu?c d? li?u duy nh?t
  • CREATE TABLE Tên_b?ng
  • (
  • Tên_c?t_1 Ki?u_d?_li?u DEFAULT Giá_tr?Hàm ,
  • Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,...
  • CONSTRAINT UQ_Tên_b?ng_Tên_c?t
  • UNIQUE (Danh_sách_các_c?t)
  • )

Trong m?t b?ng ch? d?nh nghia m?t ràng bu?c khoá
chính nhung có th? d?nh nghia nhi?u ràng bu?c d?
li?u duy nh?t
70
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ví d?
  • CREATE TABLE VATTU
  • (
  • MAVTU varchar(4) not null,
  • TenVtu varchar(100),
  • Constraint PK_Vattu_Mavtu_tenvtu primary
    key(Mavtu,tenvtu),
  • constraint UQ_Vattu_tenvtu unique(tenvtu)
  • )

71
Chöông II Xaây döïng moät CSDL trong SQL Server
  • BgtKi?m tra t?n t?i D? li?u Ð?nh nghia khoá ngo?i
  • CREATE TABLE Tên_b?ng
  • (
  • Tên_c?t_1 Ki?u_d?_li?u DEFAULT Giá_tr?Hàm ,
  • Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,...
  • CONSTRAINT FK_Tên_b?ng_Tên_c?t
  • FOREIGN KEY (Danh_sách_c?t_khóa_ngo?i)
  • REFERENCES Tên_b?ng_tham_chi?u (Danh_sách_c?t_tham
    _chi?u)
  • )

Trong m?t b?ng có th? d?nh nghia nhi?u khoá ngo?i
72
Chöông II Xaây döïng moät CSDL trong SQL Server
  • BgtVí d?
  • CREATE TABLE CTHOADON
  • (
  • SOHD Varchar(3) not null ,
  • MAVTU Varchar(3) not null,
  • Soluong int,
  • Dongia float,
  • CONSTRAINT FK_CTHOADON_SOHD
  • FOREIGN KEY (SOHD)
  • REFERENCES HOADON(SOHD),
  • CONSTRAINT FK_CTHOADON_MAVTU
  • FOREIGN KEY (MAVTU)
  • REFERENCES VATTU(MAVTU)
  • )

73
Chöông II Xaây döïng moät CSDL trong SQL Server
  • CgtKi?m tra ràng bu?c mi?n giá tr?
  • Cú pháp
  • CREATE TABLE Tên_b?ng
  • (
  • Tên_c?t_1 Ki?u_d?_li?u DEFAULT Giá_tr?Hàm ,
  • Tên_c?t_2 Ki?u_d?_li?u NOT NULL ,...
  • CONSTRAINT CK_Tên_b?ng_Tên_c?t
  • CHECK (Bi?u_th?c_lu?n_lý)
  • )

74
Chöông II Xaây döïng moät CSDL trong SQL Server
  • BgtVí d?
  • CREATE TABLE CTHOADON
  • (
  • SOHD Varchar(3) not null ,
  • MAVTU Varchar(3) not null,
  • Soluong int,
  • Dongia float,
  • CONSTRAINT CK_CTHOADON_SOLUONG
  • CHECK (Soluonggt0),
  • CONSTRAINT CK_CTHOADON_DonGia
  • CHECK (Dongiagt0)
  • )

75
Chöông II Xaây döïng moät CSDL trong SQL Server
  • BgtThêm Costraint vào b?ng dã có
  • Cú pháp chung
  • ALTER TABLE Tên_b?ng
  • ADD CONSTRAINT Tên_Constraint
  • LO?I Các_tham_s? , ...

76
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Cú pháp chi ti?t t?ng lo?i constraint
  • PRIMARY KEY
  • ALTER TABLE Tên_b?ng
  • ADD CONSTRAINT PK_Tên_b?ng
  • PRIMARY KEY (Danh_sách_c?t_khóa_chính)
  •  

77
Chöông II Xaây döïng moät CSDL trong SQL Server
  • UNIQUE
  •  ALTER TABLE Tên_b?ng ADD CONSTRAINT
    UQ_Tên_b?ng_Tên_c?t
  • UNIQUE (Danh_sách_các_c?t)

78
Chöông II Xaây döïng moät CSDL trong SQL Server
  • FOREIGN KEY
  • ALTER TABLE Tên_b?ng
  • ADD CONSTRAINT FK_Tên_b?ng_Tên_c?t
  • FOREIGN KEY (Danh_sách_c?t_khóa_ngo?i)
  • REFERENCES Tên_B?ng (Danh_sách_c?t_tham_chi?u)

79
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Ki?m tra mi?n giá tr?
  • ALTER TABLE Tên_b?ng
  • ADD CONSTRAINT CK_Tên_b?ng_Tên_c?t
  • CHECK (Bi?u_th?c_lu?n_lý)
  •  

80
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Thêm giá tr? m?c d?nh
  • ALTER TABLE Tên_b?ng
  • ADD CONSTRAINT DF_Tên_b?ng_Tên_c?t
  • DEFAULT Giá_tr?_m?c_d?nh FOR Tên_c?t
  •  

81
Chöông II Xaây döïng moät CSDL trong SQL Server
  • H?y m?t Constraint
  • ALTER TABLE Tên_b?ng
  • DROP CONSTRAINT Tên_constraint , ...
  • T?t các Constraint
  • ALTER TABLE Tên_b?ng
  • NOCHECK CONSTRAINT ALL Tên_constraint , ...
  • B?t các Constraint
  • ALTER TABLE Tên_b?ng
  • CHECK CONSTRAINT ALL Tên_constraint , ...

82
Chöông II Xaây döïng moät CSDL trong SQL Server
  • Xóa c?u trúc b?ng
  • DROP TABLE Danh_sách_tên_các_b?ng
  • Thay d?i c?u trúc b?ng
  • a. Thêm m?t c?t m?i trong b?ng
  • ALTER TABLE Tên_b?ng
  • ADD Tên_c?t Ki?u_d?_li?u , ...
  • b. H?y b? c?t hi?n có bên trong b?ng
  • ALTER TABLE Tên_b?ng
  • DROP COLUMN Tên_c?t , ...

83
Chöông II Xaây döïng moät CSDL trong SQL Server
  • S?a d?i ki?u d? li?u c?a c?t
  • ALTER TABLE Tên_b?ng
  • ALTER COLUMN Tên_c?t Ki?u_d?_li?u_m?i
  • Ð?i tên c?t
  • EXEC SP_Rename
  • Tên_b?ng.Tên_c?t,Tên_m?i,COLUMN
  • Ð?i tên b?ng
  • EXEC sp_rename Tên_b?ng,Tên_m?i
  • Chú ý Mu?n thay d?i c?u trúc c?a c?t ph?i xoá
    t?t c? các Constraint liên quan

84
BÀI 3 BÀNG ?o(view)
  • 1gtÐ?nh Nghia
  • Bàng ào là m?t d?i tu?ng ch?a câu l?nh Select
    l?y d? li?u
  • T? các b?ng trong csdl
  • Khi truy c?p vào CSLD ,ngu?i s? d?ng không phân
    bi?t du?c B?ng ?o và B?ng Th?t
  • 2gt T?o View
  • Create view Ten_view
  • As
  • Câu l?nh Select

85
C?u trúc câu l?nh Select
  • 2gtC?u trúc câu l?nh Select
  • Select Ten_Bang.Ten_Cot,
  • From Ten_Bang1 ltLiên k?t gt Ten_Bang2
  • Where ltÐi?u ki?ngt
  • Group by ltcác c?t gom nhómgt
  • HaVing ltÐi?u ki?n l?c nhómgt
  • Order by Ten_Bang.Ten_cot asc/desc,
  • Compute Hàm th?ng kê By Ten_cot

86
C?u trúc câu l?nh Select
  • M?nh d? Select ch?a các c?t,các hàm mu?n hi?n
    th?
  • N?u c?t t?n t?i trong hai b?ng trong m?nh d? From
    ta ph?i ghi rõ Tên_B?ng.Tên_C?t
  • Trong m?nh d? Select ta có th? dùng c?u trúc
    l?nh
  • Case
  • When di?u ki?n 1 Then Giá tr? 1
  • When Ði?u ki?n 2 then Giá tr? 2
  • Else
  • Giá tri n
  • End
  • Ð? hi?n th? d? li?u
  • M?nh d? from cho bi?t d? li?u trên câu truy v?n
    du?c l?y t? các b?ng nào
  • n?u d? li?u l?y t? nhi?u b?ng thì các b?ng này
    ph?i có quan h? v?i nhau
  • Cú pháp

87
C?u trúc câu l?nh Select
  • M?nh d? Where m?nh d? l?c d? li?u tr? v? ho?c
    d? gom nhóm
  • Trong m?nh d? Where có th? s? d?ng các toán t?
  • Like tìm chu?i g?n dúng
  • Thay th? 1 chu?i
  • _(G?ch du?i) thay th? 1 ký t?
  • Toán t? BETWEEN Gt1 AND GT2

88
C?u trúc câu l?nh Select
  • M?nh d? Group by m?nh d? gom nhóm d? li?u
  • M?nh d? này ph?i có khi trong câu truy v?n có s?
    d?ng hàm th?ng kê và trên m?nh d? Select có l?y
    các giá tr? không s? d?ng hàm th?ng kê
  • Cú pháp Group By Danh sách c?t,Bi?u th?c
  • V?i Danh sách c?t,Bi?u th?c du?c l?y trên m?nh
    d? Select không s? d?ng hàm th?ng kê
  • Các Hàm th?ng kê
  • Sum(Ten_Cot) tính t?ng v?i c?t có ki?u s?
  • Count(Ten_Cot/) tính t?ng s? dòng
  • AVG(Ten_Cot) tính giá tr? trung bình
  • Max(Ten_cot) giá tr? l?n nh?t
  • Min(Ten_Cot) giá tr? nh? nh?t)

89
C?u trúc câu l?nh Select
  • M?nh d? HaVing m?nh d? L?c nhóm d? li?u
  • M?nh d? này ch? t?n t?i khi trong câu truy v?n có
    m?nh d? Group By và di?u ki?n l?c d? li?u có hàm
    th?ng kê
  • Chú ý trong câu truy v?n có hai m?nh d? l?c d?
    liêu là Where và havinh
  • Where l?c d? li?u d? t?o nhóm ( có di?u ki?n
    không s? d?ng hàm th?ng kê)
  • Having l?c nhóm( các di?u ki?n có th?ng kê)
  • M?nh d? OrDer By M?nh d? s?p x?p d? li?u
  • Cú pháp Order by Ten_bang.Ten_Cot asc/Desc
    ,
  • M?nh d? Compute /Compute .. By là m?nh d? t?o
    giá tr? th?ng kê cu?i k?t qu? ho?c th?ng kê theo
    c?t
  • Cú pháp
  • Compute Hàm th?ng kê t?o th?ng kê cu?i k?t qu?
  • Compute Hàm th?ng kê By Ten_Bang.Ten_cot th?ng
    kê theo c?t,d? li?u ph?i du?c s?p x?p theo c?t
    này
  • Chú ý Trong View không có m?nh d? này

90
C?u trúc câu l?nh Select
  • Các toán t? dùng trên m?nh d? Select
  • Cú pháp Select Toán t?
  • V?i các toán t?
  • Distict lo?i b? các dòng d? li?u trùng
  • Top n l?y n dòng d?u tiên
  • Top n with ties l?y nh?ng dòng thu?c n c?p d?u
    tiên
  • Top n PERCENT l?y N dòng d?u tiên

91
C?u trúc câu l?nh InSert into
  • Insert into dùng thêm d? li?u vào b?ng,có 2
    d?ng
  • Thêm m?t dòng
  • Cú pháp Inser into Ten_bang(Ten_cot1,Ten_cot2,
    ) Values(Gia_Tri1,)
  • v?i giá tr?
  • ki?u chu?i n?m trong hai d?u ví d? Tr?n
    thanh nh?t
  • Ki?u Ngày yyyy-mm-dd ví d? 1982-02-29
  • Thêm nhi?u dòng
  • Cú pháp Inser into Ten_bang_Dich(Ten_cot1,Ten_c
    ot2,)
  • Select Ten_bang_nguon.ten_cot ,
  • from

92
C?u trúc câu l?nh UpDate
  • UpDate dùng c?p nh?t d? li?u c?a m?t b?ng
  • D? li?u Update ch? trên m?t B?ng
  • Cú pháp
  • UpDate Ten_Bang
  • Set Ten_Cot Giá tr?/Bi?u th?c
  • Where Ði?u ki?n
  • D? li?u Update trên nhi?u B?ng
  • Cú pháp
  • UpDate Ten_Bang
  • Set Ten_Cot Giá tr?/Bi?u th?c
  • From
  • Where Ði?u ki?n
  • Chú ý d? li?u c?p nh?t có th? là m?t giá tr?
    th?ng kê tr? v? t? câu truy v?n con
  • Có th? dùng c?u trúc Case trong l?nh c?p nh?t
  • Trong câu truy v?n update không s? d?ng hàm th?ng

93
C?u trúc câu l?nh Delete
  • Delete dùng xóa d? li?u c?a m?t b?ng
  • D? li?u xóa ch? trên m?t B?ng
  • Cú pháp
  • delete Ten_Bang
  • Where Ði?u ki?n
  • D? li?u delete trên nhi?u B?ng
  • Cú pháp
  • delete Ten_Bang
  • From
  • Where Ði?u ki?n
  • Chú ý khi xóa d? li?u trên b?ng quan h? 1 mà d?
    li?u này dã có bên b?ng quan h? nhi?u -gt có l?i

94
C?u trúc câu l?nh Select .. into
  • Select .. into dùng t?o m?t b?ng có c?u trúc và
    d? li?u l?y t? các b?ng có trong CSDL
  • Cú pháp
  • Select Ten_Bang.tenCot ,
  • From ..

95
Câu truy v?n Con (Sub Query)
  • Sub Query là câu truy v?n mà k?t qu? tr? v? là
    di?u ki?n d? so sánh,gán giá tr? cho câu truy v?n
    khác
  • Ð?t di?m
  • Ch? tr? v? 1 c?t d? li?u
  • N?u tr? v? 1 dòng di?u ki?n so sánh gi?a câu
    truy v?n chính và câu truy v?n con là các toán t?
    ,gt,lt,ltgt,gt,lt
  • N?u tr? v? nhi?u dòng di?u ki?n so sách in
    (n?m trong) ho?c Not in(không n?m trong)

96
Bài 4 L?p trình v?i SQL SerVer
  • IgtBi?n và các c?u trúc l?nh trong SQL Server
  • AgtBi?n
  • 1gt Bi?n c?c b? là bi?n do ngu?i l?p trình khai
    báo,Bi?n có th? du?c khai báo trong th? t?c n?i
    t?i,hàm, trong m?t lô l?nh
  • Lô L?nh là t?p h?p các l?nh du?c k?t thúc b?ng
    t? Go
  • Cú pháp khai báo bi?n Declare _at_Tên_Biên
    Ki?u_D?_Li?u
  • Tên Bi?n Luôn b?t d?u b?ng ký t? _at_,không có
    kho?ng tr?ng,ký t? d?t bi?t,ký t? s? d?ng d?u
  • Gán giá tr? cho bi?n
  • Gán b?ng 1 giá tr?
  • Set _at_tên_bi?ngiátr?/hàm
  • ho?c Select _at_tên_bi?nGiátr?/hàm
  • Gán b?ng k?t qu? tr? v? c?a câu truy v?n
  • Select _at_tên_Bi?nTênc?t/Hàm ..from ..

97
Bài 4 L?p trình v?i SQL SerVer
  • 1gt Bi?n h? th?ng (t155) là bi?n do SQL Server
    cung c?p,Cho bi?t tr?ng thái c?a h? th?ng,Bi?n h?
    th?ng luôn b?t d?u b?ng hai ký t? _at__at_,Ch? d?c
  • M?t s? các bi?n thu?ng dùng

Tên Bi?n Ý nghia
_at__at_Error Cho bi?t các l?nh tru?c dó có l?i hay không,n?u có l?i _at__at_Error ltgt0
_at__at_Rowcount Cho bi?t s? dòng b? tác d?ng b?i câu truy v?n g?n nh?t
_at__at_Fetch_Status Tr? v? ltgt0 n?u l?nh duy?t CurSor gây l?i

98
Bài 4 L?p trình v?i SQL SerVer
  • BgtCác c?u trúc lênh
  • 1gtl?nh di?u khi?n IF .. Else
  • Cú pháp
  • If Ði?u ki?n
  • Begin
  • ltt?p L?nh 1gt
  • end
  • else
  • Begin
  • ltt?p L?nh 2gt
  • End
  • N?u di?u ki?n dúng t?p L?nh 1 th?c hi?n, ngu?c
    l?i t?p l?nh 2 th?c hi?n
  • N?u t?p h?p l?nh 1 ,l?nh 2 ch? có 1 l?nh thì
    không c?n Begin .. End

99
Bài 4 L?p trình v?i SQL SerVer
  • BgtCác c?u trúc lênh
  • 2gtC?u trúc l?p While
  • While Bi?u th?c Ði?u ki?n
  • Begin
  • ltT?p l?nhgt
  • end
  • T?p l?nh s? du?c th?c hi?n d?n khi bi?u th?c di?u
    ki?n tr? v? False
  • -có th? dùng l?nh Break d? thoát kh?i vòng l?p

100
Bài 4 L?p trình v?i SQL SerVer
  • 2gtCác hàm co b?n trong SQL SerVer
  • AgtCác hàm chuy?n d?i ki?u d? li?u thu?ng dùng d?
    chuy?n d? li?u t? s?,ngày sang chu?i
  • Hàm Cast chuy?n m?t ki?u d? li?u sang ki?u b?t
    k?
  • Cú pháp Cast(Bi?u_Th?c as Ki?u_D? Li?u)
  • Ví d? Cast (_at_tong as varchar(10))
  • Hàm CONVERT chuy?n t? ngày sang chu?i
  • Cú pháp Convert(Ki?u_d?_Li?u,Bi?u_Th?c,Ð?nh_D?ng
    )
  • Ví d? Convert(char(10),Getdate(),105)

101
Bài 4 L?p trình v?i SQL SerVer
M?t s? d?nh d?ng thu?ng dùng
Ð?nh d?ng nam(YY) Ð?nh d?ng nam(YYYY) Hi?n th? d? li?u
1 101 Mm/dd/yyyy
3 103 Dd/mm/yyyy
5 105 Dd-mm-yyyy
12 112 Yyyymmdd
  • Hàm Str chuy?n s? thành chu?i
  • Cú pháp STR(s? th?c,S? ký t?,s? l?)
  • Ví d? Str(12.345,5,2)-gt12.35
  • Chú ý khi n?i chu?i v?i s?,ngày ta ph?i chuy?n
    các giá tr? này sang chu?i,sau dó s? d?ng d?u
    d? n?i

102
Bài 4 L?p trình v?i SQL SerVer
BgtCác hàm ngày gi? B?ng mô t? các d?nh d?ng
trong các hàm th?i gian
Giá tr? Ð?nh d?ng
Nam yy, yyyy
Quý qq, q
Tháng mm, m
Ngày trong nam dy, y
Ngày trong tu?n dw
Ngày trong tháng dd, d
Tu?n wk, ww
Gi? hh
phút mi, n
giây ss, s
103
Bài 4 L?p trình v?i SQL SerVer
Hàm DateAdd dùng c?ng m?t s? vào giá tr? ngày
và tr? v? m?t giá tr? ngày Cú pháp DateAdd(Ð?nh
d?ng,S?,Ngày)-gtNgày m?i Ví d? declare _at_ngaymoi
datetime set _at_ngaymoidateadd(mm,5,getdate()) prin
t convert(char(10),_at_ngaymoi,105) gt11-01-2007 Hàm
DateDiff tr? v? kho?ng cách c?a hai ngày Cú pháp
Datediff(d?nh d?ng,ngày_1,ngày_2)-gts? nguyên Ví
d? print Datediff(mm,getdate(),_at_ngaymoi) -gt5
104
Bài 4 L?p trình v?i SQL SerVer
Hàm DateName tr? v? chu?i th?i gian Cú pháp
Datename(Ð?nh d?ng, Ngày)-gtchu?i Ví d? print
datename(dw,getdate())-gtFriday Hàm DatePart tr?
v? m?t giá tr? trong c?a ngày Cú pháp
Datepart(d?nh d?ng,ngày)-gts? nguyên Ví d? print
datepart(qq,getdate())-gt3 Hàm Getdate() -gtTr? v?
ngày hi?n hành Hàm Day(),Month(),Year()-gt tr? v?
ngày,tháng,nam
105
Bài 4 L?p trình v?i SQL SerVer
Hàm Round hàm làm tròn s? Cú pháp Round(s?,s?
ch? s? th?p phân) ví d? round(12.3456,2)-gt12.35
Left(chu?i ngu?n,s? ký t?) -gtc?t chu?i t? trái
sang l?y s? ký t? Right(chu?i ngu?n,s? ký t?)-gt
c?t chu?i t? ph?i sang l?y s? ký
t? Substring(chu?i,ví trí,s? ký t?) -gt c?t chu?i
t? ví trí sang l?y s? ký t? Hàm Exists(Câu truy
v?n Select)True n?u câu truy v?n có giá tr? tr?
v?
106
Bài 4 L?p trình v?i SQL SerVer
  • 3gtCurSor là d?i tu?ng dùng d? ch?a d? li?u l?y
    t? CSDL ,gi?ng d?i tu?ng recordset trong VB
  • Cú pháp khai báo bi?n Cursor
  • Declare Tên_Bi?n CURSOR
  • ph?m vi di chuy?ntr?ng tháix? lý
  • For câu l?nh Select
  • For update OF danh sách c?t
  • Trong dó
  • Ph?m vi
  • LoCal ch? s? d?ng trong ph?m vi khai báo(m?c
    d?nh)
  • Global s? d?ng chung cho c? k?t n?i

107
Bài 4 L?p trình v?i SQL SerVer
  • Di chuy?n
  • ForWard_Only ch? di chuy?n m?t hu?ng t? tru?c ra
    sau(m?t d?nh)
  • Scroll di chuy?n tùy ý
  • Tr?ng thái
  • Static d? li?u trên Cursor không thay d?i m?t
    dù d? li?u trong b?ng ngu?n thay d?i(m?t d?nh)
  • Dynamic d? li?u trên Cursor s? thay d?i m?t dù
    d? li?u trong b?ng ngu?n thay d?i
  • KeySet gi?ng Dynamic nhung ch? thay d?i nh?ng
    dòng b? c?p nh?t

108
Bài 4 L?p trình v?i SQL SerVer
  • X? lý
  • Read_Only ch? d?c(m?t d?nh)
  • Scroll_Lock d?c/ghi
  • Câu l?nh select không ch?a các m?nh d?
    Into,Compute,Compute by
  • Danh sách c?t c?p nh?t là danh sách các c?t s?
    thay d?i du?c
  • M? CurSor Open tên_Bi?n_Cursor
  • Ð?c và x? lý d? li?u trong cursor
  • Cú pháp
  • FETCH Hu?ng di chuy?n From Tên_bi?n_Cursor Into
    Danh sách bi?n

109
Bài 4 L?p trình v?i SQL SerVer
  • Trong dó
  • Hu?ng di chuy?n
  • NEXT Di chuy?n v? sau
  • PRIOR Di chuy?n v? tru?c
  • FIRST Di chuy?n v? d?u
  • LAST Di chuy?n v? cu?i
  • ABSOLUTE n di chuy?n d?n m?u tin th? n tính t?
    m?u tin d?u tiên ,n?u nlt0 tính t? m?u tin cu?i
  • RELATIVE n di chuy?n d?n m?u tin th? n tính t?
    m?u tin hi?n hành

110
Bài 4 L?p trình v?i SQL SerVer
  • Trong quá trình di chuy?n d? ki?m tra vi?c di
    chuy?n có thành công hay không ta ki?m tra bi?n
    h? th?ng _at__at_FETCH_STATUS n?u ltgt0 th?t b?i
  • Ðóng Cursor Close _at_Tên_Bi?n
  • Gi?i phóng CurSor kh?i b? nh? DEALLOCATE
    _at_Tên_Bi?n
  • Chú ý th? t? các thao tác khi x? lý d? li?u trên
    CurSor
  • Ð?nh nghia bi?n Cursor
  • M? Cursor
  • Duy?t và x? lý d? li?u trên Cursor
  • Ðóng và gi?i phóng Cursur

111
Bài 4 L?p trình v?i SQL SerVer
  • Ví d?
  • declare Cur_Vattu CurSor
  • for select Mavtu,tenvtu from Vattu
  • open Cur_Vattu
  • declare _at_mavtu char(4),_at_tenvtu varchar(100)
  • while 00
  • begin
  • fetch next from Cur_vattu into _at_mavtu,_at_tenvtu
  • if _at__at_fetch_statusltgt0 break
  • print 'Mã v?t tu ' _at_mavtu ' Tên V?t tu '
    _at_tenvtu
  • end
  • close Cur_Vattu
  • deallocate Cur_Vattu

112
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • 1gtTh? t?c n?i t?i là gì ?
  • là Chuong trình con c?a Sql SerVer
  • Trong th? t?c n?i t?i có th? ch?a các câu l?nh
    truy v?n, các l?nh T-SQL
  • Th? t?c n?i t?i có th? có các tham s? vào, tham
    s? ra và có th? tr? v? k?t qu?
  • Ta có th? g?I th? t?c n?i t?i ? trong SQL hay
    trong các ?ng d?ng du?c xây d?ng b?ng VB,VB.NET
  • Các x? lý xây d?ng trong th? t?c n?I t?I s? ch?y
    nhanh hon khi xây d?ng ngoài ?ng d?ng, và t?p
    trung t?I server nên d? qu?n lý
  • Theo mô hình l?p trình client-server t?t c? các
    x? lý di?u t?p trung t?I server, trong sql server
    các x? lý này n?m trong ttnt

113
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • 2gtcú pháp xây d?ng ttnt
  • Create Proc Ten_Thu_Tuc (Các tham s?)
  • As
  • các câu l?nh
  • Trong dó
  • Các tham s? chia làm hai lo?I
  • Tham s? vào nh?n giá tr? t? ngu?I dùng g?I vào
    cho ttnt x? lý
  • Cú pháp _at_Ten_bien Ki?u_d?_li?u giá tr? m?t
    d?nh
  • Tham s? ra nh?n k?t qu? tr? v? t? Ttnt và hi?n
    th? cho ngu?I dùng
  • Cú pháp _at_Ten_bien Ki?u_d?_Li?u OutPut

114
Bài 5 Th? t?c n?i T?I(Stored procedure)
G?I th?c hi?n ttnt Exec Ten_Thu_Tuc
_at_ten_Tham_so_vao gia_tri,.. _at_ten_Tham_so_ra_at_t
en_Bien output L?NH Return trong TTNT Trong
th? t?c nt ta có th? dùng l?nh Return d? tr? v?
k?t qu? ho?c d? thoát kh?I th? t?c Cú pháp
Return giá tr? thoát kh?I th? t?c và tr? v?
k?t qu? Ho?c Return Thoát kh?I th? t?c G?I th?
t?c có giá tr? tr? v? Exec _at_ten_bienTen_thu_Tuc
_at_ten_Tham_so_vao gia_tri,..
_at_ten_Tham_so_ra_at_ten_Bien output
115
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • 3gtCác d?ng th? t?c n?I t?I
  • Th? t?c hi?n th? d? li?u
  • Lo?i th? t?c này có th? có tham s? vào
  • Trong nó ch?a câu l?nh Select
  • Th? t?c Tính Toán
  • Lo?i th? t?c này có th? có tham s? vào,tham s?
    ra, giá tr? tr? v?
  • Trong nó ch?a câu l?nh T-SQL d? ki?m tra ,tính
    toán giá tr? tr? v?

116
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • CgtTh? t?c Thêm d? li?u vào b?ng
  • Lo?i th? t?c này có tham s? vào là tên các c?t
    có trong b?ng, tr? các c?t có ki?u d? li?u t?
    tang (identity)
  • Tham s? ra,giá tr? tr? v? có th? có, cho bi?t
    vi?c thêm d? li?u có thành công hay không
  • Trong nó ch?a câu l?nh T-SQL
  • Ki?m tra ràng bu?t d? li?u duy nh?t(primary
    key,unique)
  • cú pháp
  • if Exists (Select from Ten_Bang where
    Ten_Cot_at_ten_cot)
  • begin
  • print thông báo l?i
  • End

Return giá tr? l?i
set _at_bien_tra_ve giá tr? l?I Return
Ho?c
117
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • Ki?m tra ràng bu?t khóa ngo?i (Foreign Key)
  • Cú pháp
  • if not Exists (Select from Ten_Bang where
    Ten_Cot_at_ten_cot)
  • begin
  • print thông báo l?I
  • End
  • Ki?m tra ràng bu?t Mi?n giá tr? (Check)
  • if _at_ten_cot không n?m trong mi?n giá tr?
  • begin
  • print thông báo l?I
  • End

118
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • Ghi d? li?u vào b?ng
  • Cú pháp
  • Insert into Ten_Bang(Ten_cot1,) values(
    _at_Ten_cot1,)

119
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • dgtTh? t?c C?p nh?t d? li?u c?a b?ng
  • Lo?i th? t?c này có tham s? vào là tên các c?t
    có trong b?ng, Tham s? ra,giá tr? tr? v? có th?
    có, cho bi?t vi?c C?p nh?t d? li?u có thành công
    hay không
  • Trong nó ch?a câu l?nh T-SQL
  • Ki?m tra d? li?u c?p nh?t có t?n t?i hay không
  • cú pháp
  • if not Exists (Select from Ten_Bang where
    Ten_Cot_khoa_chinh_at_ten_cot_khoa_chinh)
  • begin
  • print thông báo l?i
  • End

set _at_bien_tra_ve giá tr? l?I Return
Return giá tr? l?i
Ho?c
120
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • C?p nh?t d? li?u vào b?ng
  • Cú pháp
  • Update Ten_Bang
  • Set ten_cot_at_tencot ,..
  • Where ten_cot_khoa_chinh_at_ten_cot_khoa_chinh
  • Chú ý không c?p nh?t c?t làm khóa chính và c?t
    có thu?c tính identity

121
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • dgtTh? t?c xóa d? li?u c?a b?ng
  • Lo?i th? t?c này có tham s? vào là các c?t làm
    khóa chính trong bàng, Tham s? ra,giá tr? tr? v?
    có th? có, cho bi?t vi?c xóa d? li?u có thành
    công hay không
  • Trong nó ch?a câu l?nh T-SQL
  • Ki?m tra d? li?u xóa có t?n t?i trong b?ng
    nhi?u hay không
  • cú pháp
  • if Exists (Select from Ten_Bang_nhieu where
    Ten_Cot_khoa_ngoai_at_ten_cot_khoa_chinh)
  • begin
  • print thông báo l?i
  • return
  • End

122
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • xóa d? li?u vào b?ng
  • Cú pháp
  • Delete from Ten_Bang
  • Where ten_cot_khoa_chinh_at_ten_cot_khoa_chinh
  • Chú ý ngoài các l?nh trên có th? còn các l?nh
    c?p nh?t d? li?u c?a các b?ng liên quan

123
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • 4gtGiao tác (Transaction)
  • Là t?p h?p các l?nh s? du?c th?c hi?n n?u t?t c?
    d?u thành công, n?u có m?t l?nh th?t b?i ,thì s?
    không có l?nh nào du?c th?c hi?n
  • Ví d? giao tác chuy?n ti?n c?a ngân hàng
    chuy?n s? lu?ng N t? tài kho?n A sang tài kho?n
    B, các công vi?c du?c th?c hi?n
  • TaiKhoanATaiKhoanA-N
  • TaiKhoanBTaiKhoanBN
  • Hai công vi?c này s? du?c th?c hi?n n?u không có
    l?nh nào gây l?i

124
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • Cú pháp xây d?ng 1 giao tác trong SQL Server
  • L?nh B?t d?u 1 Giao tác Begin Tran
  • L?nh k?t thúc thành công 1 giao tác Commit Tran
  • L?nh k?t thúc th?t b?i 1 giao tác Rollback Tran
  • Ð? ki?m tra các l?nh th?c hi?n có thành công hay
    không truy c?p d?n giá tr? c?a bi?n _at__at_Error, n?u
    _at__at_Errorltgt0 th?t b?i

125
Bài 5 Th? t?c n?i T?I(Stored procedure)
Cú pháp Begin Tran lt t?p các l?nhgt If
_at__at_errorltgt0 begin print giao tac that
bai Rollback tran end Else Commit tran
126
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • Th? t?c n?i t?i tr? v? Cursor Th? t?c tr? v? m?t
    Cursor ch?a các dòng d? li?u th?a di?u ki?n
  • Cú pháp truy?n tham s? tr? v? ki?u Cursor
  • _at_Ten_bien Cursor Varying Output
  • Các x? lý
  • Bên trong th? t?c
  • Gán giá tr? cho Cursor, cú pháp
  • Set _at_Ten_BienCurSor ph?m vi di chuy?ntr?ng
    tháix? lý
  • For câu l?nh Select
  • M? Cursor

127
Bài 5 Th? t?c n?i T?I(Stored procedure)
  • Ngoài th? t?c
  • Duy?t và x? lý d? li?u trong Cursor
  • Ðóng và gi?i phóng Cursor

128
Bài 6Hàm Do Ngu?i Dùng Ð?nh Nghia
  • 1gtKhái Ni?m
  • Là d?i tu?ng m?i du?c b? sung vào SQL Server 2000
  • Mang d?y d? tính ch?t c?a m?t hàm có th? có tham
    s? vào, x? lý và tr? v? k?t qu?
  • Các lo?i hàm
  • Hàm xác d?nh (deter-ministic) luôn tr? v? 1 giá
    tr? khi nh?n các giá tr? truy?n vào nhu nhau
  • Hàm không xác d?nh (non-deterministic) cho giá
    tr? khác nhau tùy th?i g?i nhu hàm Getdate()..

129
Bài 6Hàm Do Ngu?i Dùng Ð?nh Nghia
2gtXây d?ng Hàm Agt hàm tr? v? m?t giá tr? giá
tr? tr? v? có ki?u d? li?u là m?t trong các ki?u
c?a SQL Server Cú pháp Create Function
Ten_Ham(Các tham s?) Returns Ki?u_d?_li?u_tr?_v?
as Begin ltcác x? lýgt Return ket_qua end
130
Bài 6Hàm Do Ngu?i Dùng Ð?nh Nghia
Ta có th? g?i các hàm lo?i này trong câu truy
v?n, trong l?nh t?o b?ng,trong th? t?c n?i t?i
Bgthàm tr? v? d? li?u du?c l?y t? các b?ng trong
CSDLgi?ng nhu view nhung có tham s? vào Cú pháp
Create Function Tên_Hàm(các tham s?
vào) Returns Table as Return(Câu l?nh
select) G?i th? t?c lo?i này gi?ng nhu view
131
Bài 6Hàm Do Ngu?i Dùng Ð?nh Nghia
Cgt hàm t?o b?ng t?o và tr? v? m?t b?ng, trong
hàm có th? ch?a t?t c? các l?nh T-SQL Cú pháp
Create Function Ten_Ham(các tham s?) Returns
_at_Ten_Bang_tr?_v? Table (Tên_c?t
Ki?u_d?_li?u, )as Begin ltcác l?nh
T-SQLgt Insert into _at_ten_bang_tra_ve .. Return end
132
Bài 7Trigger
  • 1gtT?ng quan
  • Trigger là m?t d?ng d?t bi?t c?a th? t?c n?i t?i
    nhung
  • Trigger không có tham s?
  • Không g?i th?c hi?n b?ng l?nh Exec, mà t? d?ng
    kích ho?t khi d? li?u trên b?ng có liên quan d?n
    Trigger du?c c?p nh?t
  • M?t Trigger du?c t?o cho m?t b?ng và dùng d? ki?m
    tra các ràng bu?t toàn v?n ph?c t?p ho?c c?p
    nh?t d? li?u c?a các b?ng liên quan

133
Bài 7Trigger
2gtxây d?ng Trigger Cú pháp Create Trigger
Ten_trigger on Ten_Bang/Tên View For/Instead of
Insert,Update,Delete AS ltT?p l?nh T-SQLgt
134
Bài 7Trigger
  • Trong dó
  • Tên b?ng/view là b?ng/view mà trigger du?c
    t?o
  • N?u Trigger du?c khai báo v?i t? khóa For
    trigger này s? du?c kích ho?t sau khi d? li?u dã
    c?p nh?t vào b?ng
  • N?u Trigger du?c khai báo v?i t? khóa Instead of
    trigger này s? du?c kích ho?t tru?c khi d? li?u
    dã c?p nh?t vào b?ng, thu?ng du?c dùng d? ki?m
    tra d? li?u c?p nh?t trên View
  • Insert,Update,Delete Trigger du?c kích ho?t ?ng
    v?i hành d?ng thêm,s?a ,xóa d? li?u trong b?ng
  • Th? t? ki?m tra các ràng bu?c toàn v?n d? li?u
    trong b?ng Trigger Instead of-gtconstraint-gt
    trigger For

135
Bài 7Trigger
  • 3gtHai b?ng t?m Inserted và Deleted
  • Khi thêm d? li?u vào b?ng, d? li?u du?c thêm vào
    s? dua vào b?ng t?m Inserted
  • Khi xóa d? li?u ra b?ng, d? li?u xóa s? dua vào
    b?ng t?m Deleted
  • Thao tác c?p nh?t du?c x? lý
  • Xóa dòng d? li?u cu (d? li?u cu s? dua vào b?ng
    Deleted)
  • Thêm dòng d? li?u m?i(d? li?u m?i s? dua vào b?ng
    inserted)
  • Ð? l?y d? li?u v?a m?i c?p nh?t vào b?ng ta truy
    c?p vào b?ng t?m Deleted ho?c Inserted ,ch? truy
    c?p du?c hai b?ng này trong Trigger

136
Bài 7Trigger
  • 4gtCác lo?i Trigger
  • Thông báo l?i trong Trigger d? thông báo l?i
    trong trigger ta dùng hàm
  • Raiserror(Chu?i thông báo l?i,16,1)
  • Không cho thay d?i d? li?u
  • Rollback Tran
  • AgtCác x? lý trong Trigger ki?m tra khi thêm d?
    li?u vào b?ng
  • Khai báo bi?n trong b?ng có bao nhiêu c?t tuong
    ?ng khai báo b?y nhiêu bi?n
  • Dùng câu l?nh Select l?y d? li?u t? b?ng Inserted
    gán cho các bi?n này
  • Ki?m tra ràng bu?t toàn v?n gi?ng th? t?c n?i tai
    thêm dl

137
Bài 7Trigger
  • BgtCác x? lý trong Trigger ki?m tra khi S?a d?
    li?u vào b?ng
  • Ki?m tra không cho phép c?p nh?t các c?t
  • If Update(Ten_Cot)
  • Begin
  • Raiserror(không thay d?i d? li?u c?t
    Ten_Cot,16,1)
  • Rollback Tran
  • end
  • Khai báo các bi?n l?y d? li?u d? ki?m tra
  • Dùng câu l?nh Select l?y d? li?u m?i du?c c?p
    nh?t t? b?ng Inserted , l?y d? li?u tru?c khi
    c?p nh?t t? b?ng Deleted

138
Bài 7Trigger
  • CgtCác x? lý trong Trigger ki?m tra khi xóa d?
    li?u vào b?ng
  • Khai báo các bi?n l?y d? li?u d? ki?m tra
  • Dùng câu l?nh Select l?y d? li?u m?i xóa t? b?ng
    Deleted
  • Ki?m tra ràng bu?t toàn v?n gi?ng th? t?c n?i tai
    xóa dl

139
Bài 8 K? thu?t l?p trình Vb v?i SQL Server
  I.         Liên k?t d? li?u VB và SQL
Server A.      Cú pháp Gi?ng nhu vi?c liên k?t d?
li?u gi?a VB và Access, vi?c liên k?t gi?a Vb và
SQL Server cung du?c th?c hi?n thông qua d?i
tu?ng ADODB.Connection Ð?nh giá tr? c?a chu?i k?t
n?i - ConnectionString ConnectionString
"ProviderSQLOLEDB.1Initial CatalogTên_CSDL "
_ "Data SourceTên_Máy_TínhUser
IdTên_Tài_Kho?nPwdM?t_Kh?u"
140
Bài 8 K? thu?t l?p trình Vb v?i SQL Server
Public cnSQL As ADODB.Connection  Public Sub
LinkSQL_DB() On Error Goto LoiLienKet If cnSQL
Is Nothing Then Set cnSQL New
ADODB.Connection End If  cnSQL.ConnectionString
"ProviderSQLOLEDB.1Initial CatalogQuanLyBanHa
ng" _ "Data Source172.29.7.5User
IdTuyetNhiPwdabc" cnSQL.CursorLocation
adUseClient cnSQL.Open Exit Sub LoiLienKet Ms
gBox "Có l?i trong quá trình liên k?t d?
li?u" End Sub  
141
Bài 8 K? thu?t l?p trình Vb v?i SQL Server
2.Ð?i tu?ng Command là d?i tuong dùng d? g?i
th?c thi m?t th? t?c n?i t?i trong SQL
Server Các thu?c tính ActiveConnection d?i
tu?ng connecttion CommandText tên th?
t?c CommandType ki?u là adCmdStoredProc G?i
th?c hi?n Execute
142
Bài 8 K? thu?t l?p trình Vb v?i SQL Server
  • 3.Ð?i tu?ng Parameter dùng d? truy?n tham s?
    vào ,tham s? ra, nh?n giá tr? tr? v? trong ttnt
  • Khai báo và kh?i t?o
  • Dim p As ADODB.Parameter
  • p cmd.CreateParameter("tents",kieudl,kieuthamso,k
    ich thuoc,giatri)
  • Trong dó
  • tên tham s? là tê
About PowerShow.com