B>hàm trả về dữ liệu được lấy từ các bảng trong CSDL:giống như view nhưng có tham số vào. Cú pháp :[r]
(1)TRUNG TÂM TIN HỌC – ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC – ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
227 Nguyễn Văn Cừ – Quận – Tp Hồ Chí Minh
Tel: 8351056 – Fax 8324466 – Email: ttth@hcmuns.edu.vn
227 Nguyễn Văn Cừ – Quận – Tp Hồ Chí Minh
Tel: 8351056 – Fax 8324466 – Email: ttth@hcmuns.edu.vn
SQL SERVER
SQL SERVER Ver 1.0
Ver 1.0Ver 1.0
(2)Chương :GI I THI U T NG QUAN V SQL SERVERỚ Ệ Ổ Ề Chương :GI I THI U T NG QUAN V SQL SERVERỚ Ệ Ổ Ề Chương :GI I THI U T NG QUAN V SQL SERVERỚ Ệ Ổ Ề
Chương :GI I THI U T NG QUAN V SQL SERVERỚ Ệ Ổ Ề
I.
I.I. T ng quan :T ng quan :ổổ
I. T ng quan :T ng quan :ổổ
1.
1. SQL SerVer laø m t h qu n tr CSDL quan SQL SerVer laø m t h qu n tr CSDL quan ộ ệộ ệ ảả ịị
h ệ
h ệ
A.
A. C S D Li u Quan H :C S D Li u Quan H :ơ ữơ ữ ệệ ệệ
M t b ng duøng M t b ng duøng ộ ảộ ả để ưđể ư l u tr thoâng tin l u tr thoâng tin ữữ
c a m t ủ ộ đố ượi t ng th gi i th cế ớ ự c a m t ủ ộ đố ượi t ng th gi i th cế ớ ự M t b ng M t b ng ộ ảộ ả đượ ừđượ ừc t o t dòng c tc t o t dòng c tộộ
D li u D li u ữ ệ đượ ổữ ệ đượ ổc t ch c l u tr thaønh c t ch c l u tr thaønh ứ ưứ ư ữữ
(3)I.
I.I. T ng Quan : (tt)T ng Quan : (tt)ổổ
I. T ng Quan : (tt)T ng Quan : (tt)ổổ
C t :Duøng C t :Duøng ộộ để ưđể ư l u tr thu c tính c a l u tr thu c tính c a ữữ ộộ ủ đố ượủ đố ượi ti t ngng M t b ng ph i có tối thi u m t c t,Th t c t M t b ng ph i có tối thi u m t c t,Th t c t ộ ảộ ả ảả ểể ộ ộộ ộ ứ ự ộứ ự ộ
không quan tr ngọ
khơng quan tr ngọ
M t cột có ba thu c tính c b nM t cột có ba thu c tính c b nộộ ộộ ơ ảơ ả
C t :Duøng C t :Duøng ộộ để ưđể ư l u tr thu c tính c a l u tr thu c tính c a ữữ ộộ ủ đố ượủ đố ượi ti t ngng M t b ng ph i có tối thi u m t c t,Th t c t M t b ng ph i có tối thi u m t c t,Th t c t ộ ảộ ả ảả ểể ộ ộộ ộ ứ ự ộứ ự ộ
không quan tr ngọ không quan tr ngọ
M t cột có ba thu c tính c b nM t cột có ba thu c tính c b nộộ ộộ ơ ảơ ả
Column Name :Teânn c t,trong m t b ng Column Name :Teânn c t,trong m t b ng ộộ ộ ảộ ả khoâng th có hai cột trùng tên ể
không th có hai cột trùng tên ể
Data Type :Ki u d li uData Type :Ki u d li uểể ữ ệữ ệ
Length :chi u daøi c a d li uLength :chi u daøi c a d li uềề ủủ ữ ệữ ệ
Column Name :Teânn c t,trong m t b ng Column Name :Teânn c t,trong m t b ng ộộ ộ ảộ ả
không th có hai cột trùng tên ể không th có hai cột trùng tên ể Data Type :Ki u d li uData Type :Ki u d li uểể ữ ệữ ệ
(4)I:T ng Quan(tt)ổ
I:T ng Quan(tt)I:T ng Quan(tt)ổổ
I:T ng Quan(tt)ổ
Doøng :t p h p d li u c a nhi u c tDoøng :t p h p d li u c a nhi u c tậậ ợợ ữ ệữ ệ ủủ ềề ộộ Trong m t b ng có hai Trong m t b ng có hai ộ ảộ ả
dòng trùng thông tin
dòng trùng thông tin
Một dòng cho biết thông tin cụ thể Một dòng cho biết thông tin cụ thể
của đối tượng lưu trữ bảng
của đối tượng lưu trữ bảng
M t b ng có th dòng nàoM t b ng có th dòng nàoộ ảộ ả ểể
Doøng :t p h p d li u c a nhi u c tDoøng :t p h p d li u c a nhi u c tậậ ợợ ữ ệữ ệ ủủ ềề ộộ Trong m t b ng có hai Trong m t b ng có hai ộ ảộ ả
dòng trùng thông tin
dòng trùng thông tin
Một dòng cho biết thông tin cụ thể Một dòng cho biết thông tin cụ thể
của đối tượng lưu trữ bảng
của đối tượng lưu trữ bảng
(5)I.Tổng Quan(tt)
I.Tổng Quan(tt)I.Tổng Quan(tt)
I.Tổng Quan(tt)
Khố Chính (Primary Key) :Khố Chính (Primary Key) :
Khố Chính (Primary Key) :Khố Chính (Primary Key) :
T p h p c a m t hay nhi u c t b ngT p h p c a m t hay nhi u c t b ngậậ ợợ ủủ ộộ ềề ộộ ảả D li u t i c t khác r ngD li u t i c t khác r ngữ ệ ạữ ệ ạ ộộ ỗỗ
D li u t i c t naøy laø nh t b ngD li u t i c t naøy laø nh t b ngữ ệ ạữ ệ ạ ộộ ấấ ảả
T p h p c a m t hay nhi u c t b ngT p h p c a m t hay nhi u c t b ngậậ ợợ ủủ ộộ ềề ộộ ảả D li u t i c t khác r ngD li u t i c t khác r ngữ ệ ạữ ệ ạ ộộ ỗỗ
(6)I.T ng Quan (tt)ổ
I.T ng Quan (tt)ổ
Khoá ngo i (Foreign Key) :Khoá ngo i (Foreign Key) :ạạ
Khoá ngo i (Foreign Key) :Khoá ngo i (Foreign Key) :ạạ
T p h p c a m t hay nhi u c t b ng,maø T p h p c a m t hay nhi u c t b ng,maø ậậ ợợ ủủ ộộ ềề ộộ ảả
các cột khố c a b ng khác ủ ả
các cột khố c a b ng khác ủ ả
D li u t i caùc c t naøy ho c r ng,ho c ph i D li u t i c t ho c r ng,ho c ph i ữ ệ ạữ ệ ạ ộộ ặặ ỗỗ ặặ ảả
l y t b ng mà c t làm khố chínhấ ả ộ
l y t b ng mà c t làm khoá chínhấ ả ộ
T p h p c a m t hay nhi u c t b ng,maø T p h p c a m t hay nhi u c t b ng,maø ậậ ợợ ủủ ộộ ềề ộộ ảả
các cột khố c a b ng khác ủ ả
các cột khố c a b ng khác ủ ả
D li u t i c t ho c r ng,ho c ph i D li u t i c t ho c r ng,ho c ph i ữ ệ ạữ ệ ạ ộộ ặặ ỗỗ ặặ ảả
l y t b ng mà c t làm khố chínhấ ả ộ
(7)I.T ng Quan(tt)T ng Quan(tt)ổổ
I.T ng Quan(tt)T ng Quan(tt)ổổ
B.H Qu n Tr CSDL Quan H :ệ ả ị ệ
B.H Qu n Tr CSDL Quan H :B.H Qu n Tr CSDL Quan H :ệệ ảả ịị ệệ B.H Qu n Tr CSDL Quan H :ệ ả ị ệ
Là m t h th ng chLà m t h th ng caùc chộ ệ ốộ ệ ố ươương trình có ng trình có các ch c n ng ứ ă
caùc ch c n ng ứ ă
Laø m t h th ng chLà m t h th ng chộ ệ ốộ ệ ố ươương trình có ng trình có
caùc ch c n ng ứ ă caùc ch c n ng ứ ă
T o vaø qu n lý m t CSDL Quan hT o qu n lyù m t CSDL Quan hạạ ảả ộộ ệệ khai thaùc M t CSDL Quan hkhai thaùc M t CSDL Quan hộộ ệệ
B o m t M t CSDL Quan hB o m t M t CSDL Quan hảả ậậ ộộ ệệ
T o b ng (Backup) M t CSDL Quan hT o b ng (Backup) M t CSDL Quan hạạ ảả ộộ ệệ Ph c h I(Restore) M t CSDL Quan h Ph c h I(Restore) M t CSDL Quan h ụụ ồồ ộộ ệệ
T o qu n lý m t CSDL Quan hT o qu n lý m t CSDL Quan hạạ ảả ộộ ệệ khai thaùc M t CSDL Quan hkhai thaùc M t CSDL Quan hộộ ệệ
B o m t M t CSDL Quan hB o m t M t CSDL Quan hảả ậậ ộộ ệệ
T o b ng (Backup) M t CSDL Quan hT o b ng (Backup) M t CSDL Quan hạạ ảả ộộ ệệ Ph c h I(Restore) 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 SQL Server laø m t h qu n tr CSDL ộ ệộ ệ ảả ịị Quan hệ
Quan hệ
SQL Server laø m t h qu n tr CSDL SQL Server laø m t h qu n tr CSDL ộ ệộ ệ ảả ịị
(8)Các hệ thống SQL Server
Các hệ thống SQL ServerCác hệ thống SQL Server Các hệ thống SQL Server
Hệ Thống SQL Server triển khai cho hệ thống kiểu Client-Server triển khai cho hệ thống máy đơn
(9)Các hệ thống SQL Server
Các hệ thống SQL ServerCác hệ thống SQL Server Các hệ thống SQL Server
(10)Các hệ thống SQL Server
(11)II.Caøi Đặt SQL Server
II.Caøi Đặt SQL Server
II.Caøi Đặt SQL Server
II.Cài Đặt SQL Server
A.Yêu c u ph n c ng :ầ ầ ứ
A.Yeâu c u ph n c ng :A.Yeâu c u ph n c ng :ầầ ầầ ứứ
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
Đĩa cứng Còn trống 100MB trở lên
(12)II.Caøi Đặt SQL Server
II.Caøi Đặt SQL Server
II.Caøi Đặt SQL Server
II.Caøi Đặt SQL Server
Phiên b n SQL Serverả H i 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 h i u hànhả ệ đ ề
A.Yêu c u ph n M m:ầ ầ ề
A.Yeâu c u ph n M m:A.Yeâu c u ph n M m:ầầ ầầ ềề
(13)II Caøi đặt Personal Edition SQL Server
II Caøi đặt Personal Edition SQL Server
1 Đưa đóa CD chương trình vào ,màn hình sau xuất
1 ĐưĐưa đóa CD chương trình vào ,màn hình sau xuất a đóa CD chương trình vào ,màn hình sau xuất
1 Đưa đóa CD chương trình vào ,màn hình sau xuất
(14)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt) 2.Màn hình sau xuất
2.Màn hình sau xuất 2.Màn hình sau xuất
2.Màn hình sau xuất
(15)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
3.Màn hình sau xuất 3.Màn hình sau xuất 3.Màn hình sau xuất 3.Màn hình sau xuất
(16)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
4.Màn hình sau xuất 4.Màn hình sau xuất 4.Màn hình sau xuất 4.Màn hình sau xuất
(17)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
5.Màn hình sau xuất 5.Màn hình sau xuất 5.Màn hình sau xuất 5.Màn hình sau xuất
(18)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
6.Màn hình sau xuất 6.Màn hình sau xuất 6.Màn hình sau xuất 6.Màn hình sau xuất
Nhập vào tên người
(19)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
(20)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
(21)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
9.Chọn kiểu cài đặt 9.Chọn kiểu cài đặt 9.Chọn kiểu cài đặt 9.Chọn kiểu cài đặt
(22)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
(23)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
(24)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt)
(25)II.Cài đặt Personal Edition SQL Server(tt)
II.Cài đặt Personal Edition SQL Server(tt) Nhấp Next để chương trình cài đặt vào máy Nhấp Next để chương trình cài đặt vào máy
Sau cài đặt xong,khởi động lại máy, sau Sau cài đặt xong,khởi động lại máy, sau
khởi động xong,thấy xuất biểu tượng Trên khởi động xong,thấy xuất biểu tượng Trên
thanh Status cuûa Windows thanh Status cuûa Windows
Nhấp Next để chương trình cài đặt vào máy Nhấp Next để chương trình cài đặt vào máy
Sau cài đặt xong,khởi động lại máy, sau Sau cài đặt xong,khởi động lại máy, sau khởi động xong,thấy xuất biểu tượng Trên khởi động xong,thấy xuất biểu tượng Trên
(26)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
1.Tiện ích EnterPriseManager:Màn hình quản lý 1.Tiện ích EnterPriseManager:Màn hình quản lý
các đối tượng có SQL Server các đối tượng có SQL Server
1.Tiện ích EnterPriseManager:Màn hình quản lý 1.Tiện ích EnterPriseManager:Màn hình quản lý
(27)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
A> Microsoft SQL Server:Chứa nhóm Server A> Microsoft SQL Server:Chứa nhóm Server A> Microsoft SQL Server:Chứa nhóm Server A> Microsoft SQL Server:Chứa nhóm Server
Tạo nhóm Server ta làm sau :Tạo nhóm Server ta làm sau : Click chuột phải vào Microsoft SQL Click chuột phải vào Microsoft SQL
Server,chọn New SQL Server Group Server,chọn New SQL Server Group Tạo nhóm Server ta làm sau :Tạo nhóm Server ta làm sau :
(28)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Màn hình sau xuất Màn hình sau xuất Màn hình sau xuất Màn hình sau xuất
Chọn Top Level Chọn Top Level
Group : Tạo Group : Tạo
nhóm gốc nhóm gốc
Chọn Sub-group Chọn Sub-group
of: tạo nhóm of: tạo nhóm
là là
nhóm khác nhóm khác
Name:tên nhómName:tên nhóm
Chọn Top Level Chọn Top Level Group : Tạo Group : Tạo
nhóm gốc nhóm gốc
Chọn Sub-group Chọn Sub-group of: tạo nhóm of: tạo nhóm
là là
nhóm khác nhóm khác
(29)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
B>Đăng ký Server vào hệ thống :Click chuột B>Đăng ký Server vào hệ thống :Click chuột
phải vào SQL Server Group,chọn New SQL phải vào SQL Server Group,chọn New SQL
Server Registration Server Registration
B>Đăng ký Server vào hệ thống :Click chuột B>Đăng ký Server vào hệ thống :Click chuột
phải vào SQL Server Group,chọn New SQL phải vào SQL Server Group,chọn New SQL
(30)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
(31)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Màn hình sau xuất : chọn Server cần đăng Màn hình sau xuất : chọn Server cần đăng
ký,nhấn Add,sau nhấn next ký,nhấn Add,sau nhấn next
Màn hình sau xuất : chọn Server cần đăng Màn hình sau xuất : chọn Server cần đăng
(32)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Màn hình sau xuất :Màn hình sau xuất Màn hình sau xuất :Màn hình sau xuất
chọn dạng kết nối ,chọn lựa chọn 1: chọn dạng kết nối ,chọn lựa chọn 1:
Màn hình sau xuất :Màn hình sau xuất Màn hình sau xuất :Màn hình sau xuất
(33)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Màn hình sau xuất :Nhập Login Màn hình sau xuất :Nhập Login
name,PassWord để đăng nhập vào SQL Server name,PassWord để đăng nhập vào SQL Server Màn hình sau xuất :Nhập Login
Màn hình sau xuất :Nhập Login
name,PassWord để đăng nhập vào SQL Server name,PassWord để đăng nhập vào SQL Server
Chú ý : Nêú Chú ý : Nêú
trình cài đặt trình cài đặt bước 11 12 bước 11 12
chọn : chọn :
Login name :SaLogin name :Sa Password :Password :
Chú ý : Nêú Chú ý : Nêú trình cài đặt trình cài đặt bước 11 12 bước 11 12
chọn : chọn : Login name :SaLogin name :Sa
(34)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
C>DataBases:Chứa CSDL Trong SQL Server, C>DataBases:Chứa CSDL Trong SQL Server,
có CSDL có sẳn ,chia làm loại có CSDL có sẳn ,chia làm loại
C>DataBases:Chứa CSDL Trong SQL Server, C>DataBases:Chứa CSDL Trong SQL Server,
có CSDL có sẳn ,chia làm loại có CSDL có sẳn ,chia làm loại
CSDL Hệ thống :khơng xố,sửa Tên CSDL Ý nghĩa
Master Là CSDL quản lý thông tin của CSDL lại
Mode Là CSDL mẩu
Msdb Là CSDL ph c v cho d ch ụ ụ ị
(35)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Tempdb Là CSDL chứa bảng tạm phát sinh q trình xữ lý
CSDL mẫu Tên CSDL Ý nghóa
Jobs
(36)III.Các tiện ích SQL Server
III.Các tiện ích cuûa SQL Server
C>Client Network Utility : dùng để đăng ký C>Client Network Utility : dùng để đăng ký
một Server cho hệ thống một Server cho hệ thống
C>Client Network Utility : dùng để đăng ký C>Client Network Utility : dùng để đăng ký
(37)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Cách đăng ký : chọn Tab Alias nhấn nút Cách đăng ký : chọn Tab Alias nhấn nút
Add,màn hình sau xuất Add,màn hình sau xuất
Cách đăng ký : chọn Tab Alias nhấn nút Cách đăng ký : chọn Tab Alias nhấn nút
Add,màn hình sau xuất Add,màn hình sau xuất
Chọn TCP/IPChọn TCP/IP
Server Alias :nhập Server Alias :nhập
vào nhãn vào nhãn
Server name : Server name :
nhập vào địa nhập vào địa
IP Server IP Server Chọn TCP/IPChọn TCP/IP
Server Alias :nhập Server Alias :nhập vào nhãn
vào nhãn
Server name : Server name : nhập vào địa nhập vào địa
IP Server IP Server
Chú ý: Tiện ích sử dụng hệ Chú ý: Tiện ích sử dụng hệ
thống mạng thống mạng
Chú ý: Tiện ích sử dụng hệ Chú ý: Tiện ích sử dụng hệ
(38)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Ti n ích Query Enalyzer :là hình vi t l nh ệ ế ệ
Ti n ích Query Enalyzer :là hình vi t l nh ệ ế ệ c a SQL Serverủ
c a SQL Serverủ
Ti n ích Query Enalyzer :là hình vi t l nh ệ ế ệ
Ti n ích Query Enalyzer :là hình vi t l nh ệ ế ệ
c a SQL Serverủ
(39)III.Các tiện ích SQL Server
III.Các tiện ích cuûa SQL Server
Ti n ích Book Online :Tài liệu hướng dẫn cách sử ệ
Ti n ích Book Online :Tài liệu hướng dẫn cách sử ệ dụng SQL Server
duïng SQL Server
Ti n ích Book Online :Tài liệu hướng dẫn cách sử ệ
Ti n ích Book Online :Tài liệu hướng dẫn cách sử ệ
(40)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Ti n ích Service Manager :quản lý dịch vụ liên ệ
Ti n ích Service Manager :quản lý dịch vụ liên ệ quan đến SQL Server
quan đến SQL Server
Muốn sử dụng SQL Server phải khởi động dịch vụ Muốn sử dụng SQL Server phải khởi động dịch vụ
naøy này
Ti n ích Service Manager :quản lý dịch vụ liên ệ
Ti n ích Service Manager :quản lý dịch vụ liên ệ
quan đến SQL Server quan đến SQL Server
Muốn sử dụng SQL Server phải khởi động dịch vụ Muốn sử dụng SQL Server phải khởi động dịch vụ
này này
(41)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Tiện ích Import and Export Data
Tiện ích cho phép chuyển dữ liệu (Export) từ CSDL
SQL Server loạI CSDL khác Access,Excel
ngược lạI
Cách khởI động
:Start->Programes->Microsoft SQL Server,màn hình sau xuất
(42)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Tiện ích Import and Export Data
Màn hình sau xuất hiện
•Data Sourse :Chọn loại liệu nguồn
•Nếu liệu nguồn chọn SQL Server:chọn Microsoft OLE DB for SQL Server
•Server :Chọn tên Server
(43)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Tiện ích Import and Export Data
•Nếu liệu nguồn Microsoft Access :chọn Microsoft Access
•File Name :Đường dẫn +
Tên CSDL
•Username,PassWord :nhập vào CSDL có u cầu đăng nhập
(44)III.Các tiện ích SQL Server
III.Các tiện ích SQL Server
Tiện ích Import and Export Data
•Destination: chọn loạI liệu đích
•Nếu chọn SQL Server :chọn Server,nhập Username,
Password chọn CSDL đích
•Nếu chọn Access :phải chọn
CSDL đích
•Chú ý :chỉ Import
(45)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Một (CSDL) SQL Server tập Một (CSDL) SQL Server tập
hợp đối tượng
hợp đối tượng
bảng (Table):Chứa liệubảng (Table):Chứa liệu
bảng ảo (View):chứa liệu lấy từ bảng ảo (View):chứa liệu lấy từ
Bảng
Bảng
thủ tục nội (Stored Procedure): thủ tục nội (Stored Procedure):
Chứa lệnh thao tác với Dữ liệu
Chứa lệnh thao tác với Dữ liệu
Một (CSDL) SQL Server tập Một (CSDL) SQL Server tập
hợp đối tượng
hợp đối tượng
bảng (Table):Chứa liệubảng (Table):Chứa liệu
bảng ảo (View):chứa liệu lấy từ bảng ảo (View):chứa liệu lấy từ
Bảng
Bảng
thủ tục nội (Stored Procedure): thủ tục nội (Stored Procedure):
Chứa lệnh thao tác với Dữ liệu
(46)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Triger :Chứa lệnh thao tác với Triger :Chứa lệnh thao tác với
Dữ liệu,kiểm tra ràng buộc tự động
Dữ liệu,kiểm tra ràng buộc tự động
Constraint :Chứa ràng buộc Constraint :Chứa ràng buộc
liệu
liệu
Một CSDL nhiều người Một CSDL nhiều người
tạo nhiều người
tạo nhiều người
truy cập
truy cập
Trong SQL Server tạo đươc Trong SQL Server tạo đươc
Triger :Chứa lệnh thao tác với Triger :Chứa lệnh thao tác với
Dữ liệu,kiểm tra ràng buộc tự động
Dữ liệu,kiểm tra ràng buộc tự động
Constraint :Chứa ràng buộc Constraint :Chứa ràng buộc
liệu
liệu
Một CSDL nhiều người Một CSDL nhiều người
tạo nhiều người
tạo nhiều người
truy cập
truy cập
(47)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Cấu trúc lưu trữ CSDL : Cấu trúc lưu trữ CSDL :
Một CSDL SQL Server tối thiểu
Một CSDL SQL Server tối thiểu
sẽ dùng hai tập tin vật lý để lưu trữ
sẽ dùng hai tập tin vật lý để lưu trữ
dữ liệu:
dữ liệu:
Một dùng lưu trữ liệu (Data Một dùng lưu trữ liệu (Data
file)
file)
Một dùng để lưu trữ Một dùng để lưu trữ vết vết
giao tác
giao tác (Transaction log file) (Transaction log file)
Cấu trúc lưu trữ CSDL : Cấu trúc lưu trữ CSDL :
Một CSDL SQL Server tối thiểu
Một CSDL SQL Server tối thiểu
sẽ dùng hai tập tin vật lý để lưu trữ
sẽ dùng hai tập tin vật lý để lưu trữ
dữ liệu:
dữ liệu:
Một dùng lưu trữ liệu (Data Một dùng lưu trữ liệu (Data
file)
file)
Một dùng để lưu trữ Một dùng để lưu trữ vết vết
giao tác
(48)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Thường tổ chức lưu trữ tập tin :
Thường tổ chức lưu trữ tập tin :
CSDL
Primary DataFile (*.MDF)
Secondary Data Fie (*.NDF)
(49)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Tạo CSDL
SQL Server
Cách 1: Sử dụng tiện
ích
EnterPriseManager : Click chuộc phải vào đối tượng Databases chọn New Database
Tạo CSDL
SQL Server
Cách 1: Sử dụng tiện
ích
(50)Chương II: Xây dựng CSDL SQL Server Chương II: Xây dựng CSDL SQL Server • Xuất hộp thoại :
(51)Chương II: Xây dựng CSDL SQL Server Chương II: Xây dựng CSDL SQL Server • Chọn Tab Data Files:
– Filename :Tên tập tin Data Files – Location: Vị trí lưu trữ
– Initial size(Mb) :Kích thước ban đầu – Automatically grow file: Tự động
tăng kích thước
• In megabytes : tăng mB • By percent :Tăng theo phần trăm
– Maximun file size : kích thước tối đa CSDL
• Unrestricted file growth :Khơng giới hạn kích thước
• Restrict file growth(MB) :giới hạn
(52)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo CSDL cách viết lệnh Query Enalyzer CREATE DATABASE QLBANHANG
ON PRIMARY
( NAME= QLBANHANG_DATA,
FILENAME=’C:\MSSQL\DATA\ QLBANHANG_DATA.MDF’, SIZE=50MB,
MAXSIZE=200MB, FILEGROWTH=10%) LOG ON
(
NAME= QLBANHANG_LOG,
FILENAME=’C:\MSSQL\DATA\ QLBANHANG_LOG.LDF’, SIZE=10MB,
(53)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Các kiểu liệu SQL Server Kiểu liệu Kích
thước Miền giá trị liệu lưu trữ > Các kiểu liệu dạng số nguyên
Int 4 bytes từ-2,147,483,648đến +2,147,483,647 SmallInt 2 bytes từ -32768 đến +32767
TinyInt 1 byte từ đến 255 Bit 1 byte 0, Null > Các kiểu liệu dạng số thập phân Decimal,
Numeric 17bytes từ -10
^38 đến +10^38
> Các kiểu liệu dạng số thực
(54)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Các kiểu liệu SQL Server
> Các kiểu liệu dạng chuỗi có độ dài cố định
Char N bytes từ đến 8000 ký tự, ký tự một byte
> Các kiểu liệu dạng chuỗi có độ dài biến đổi
VarChar N bytes từ đến 8000 ký tự, ký tự byte
Text N bytes từ đến 2,147,483,647 ký tự, ký tự byte
> Các kiểu liệu dạng chuỗi dùng font chữ Unicode NChar 2*N
bytes từ đến 4000 ký tự, ký tự bytes NVarCha
(55)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Các kiểu liệu SQL Server > Các kiểu liệu dạng tiền tệ
Money 8 bytes từ -922,337,203,685,477.5808 đến +922,337,203,685,477.5807
SmallMoney 4 bytes từ -214,748.3648 đến + 214,748.3647 > Các kiểu liệu dạng ngày giờ
DateTime 8 bytes từ01/01/1753đến31/12/9999 SmallDateTime 4 bytes từ01/01/1900đến06/06/2079 > Các kiểu liệu dạng chuỗi nhị phân (Binary String)
Binary N bytes từ đến 8000 bytes
VarBinary N bytes từ đến 8000 bytes
Image N bytes từ đến 2,147,483,647
(56)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Các thuộc tính Một Bảng
– Tên bảng (Table Name) Độ dài<= 128 ký tự Tên bảng phải bên trong phạm vi người tạo CSDL
– Tên cột (Column Name): tên cột bên bảng, tên cột bên bảng phải
(57)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
– Độ dài liệu (Data Length): dùng để qui định độ dài liệu mà cột lưu trữ kiểu liệu dạng chuỗi, số
– Số ký số lưu trữ (Precision): số ký số tối đa mà kiểu dữ liệu dạng số lưu trữ
(58)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
– Cột định danh (Identity): Giá trị cột định danh số nguyên không trùng lắp hệ
thớng Microsoft SQL Server tự động cấp phát.
• Các kiểu liệu cột định danh : Int, SmallInt, TinyInt, Decimal , Numeric
• Thuộc tính Identity Seed :Số đầu tiên
(59)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
– Cho phép để trống liệu (Allow Null): qui định liệu phép để trống phải nhập
(60)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo Bảng Sql Server
– Cách 1: Sử dụng tiện ích Enterprise Manager
• Mở CSDL Click chuột phải
(61)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Màn hình sau xuất : Nhập tên bảng,nhấp OK
• Màn hình thiết kế bảng xuất
(62)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo bảng lệnh hình Query Elyzer
Tạo cấu trúc bảng đơn 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 đó:
+ Tên bảng, tên cột kiểu liệu mô tả trên
(63)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo bảng lệnh hình Query Elyzer
Tạo cấu trúc bảng có giá trị mặc đị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 đó:
+ Giá trị: giá trị cụ thể gán vào cột.
(64)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo bảng lệnh 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,
(65)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
• Tạo cấu trúc bảng có cột đị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_đầu, Chỉ_số_tăng)] , Tên_cột_2 Kiểu_dữ_liệu [NOT NULL] [ , ]
)
•Trong bảng có tối đa cột định làm cột định danh.
•Số bắt đầu: số mà SQL Server sử dụng để cấp phát cho mẫu tin Mặc định 1.
(66)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
•Tính tồn vẹn liệu sở liệu : ràng buộc SQL Server quản lý bởI hai đốI tượng :CONSTRAINT TRIGGER
•Constraint : quản lý ràng buộc :
– Ràng buộc liệu – Ràng buộc liệu tồn – Ràng buộc miền giá trị
(67)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server •Xây dựng Constraint
•A>Kiểm tra liệu :có hai loại
(68)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Định nghĩa ràng buộc khố : 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: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Định nghĩa ràng buộc liệu : 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 bảng định nghĩa ràng buộc khố định nghĩa nhiều
(70)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL 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: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
B>Kiểm tra tồn Dữ liệu :Định nghĩa 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)
)
(72)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
B>Ví 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: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
C>Kiể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: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
B>Ví dụ :
CREATE TABLE CTHOADON (
SOHD Varchar(3) not null , MAVTU Varchar(3) not null, Soluong int,
Dongia float,
CONSTRAINT CK_CTHOADON_SOLUONG CHECK (Soluong>0),
CONSTRAINT CK_CTHOADON_DonGia CHECK (Dongia>0)
(75)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
B>Thêm Costraint vào bảng có Cú pháp chung:
ALTER TABLE Tên_bảng
(76)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Cú pháp chi tiết loại constraint PRIMARY KEY
ALTER TABLE Tên_bảng
ADD [ CONSTRAINT PK_Tên_bảng ]
(77)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
UNIQUE
ALTER TABLE Tên_bảng ADD [ CONSTRAINT UQ_Tên_bảng_Tên_cột ]
(78)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL 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)
(79)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Kiểm tra miền giá trị : ALTER TABLE Tên_bảng
(80)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Thêm giá trị mặc định : ALTER TABLE Tên_bảng
(81)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Hủy Constraint : ALTER TABLE Tên_bảng
DROP CONSTRAINT Tên_constraint [ , ] Tắt Constraint :
ALTER TABLE Tên_bảng
NOCHECK CONSTRAINT ALL| Tên_constraint [ , ] Bật Constraint :
ALTER TABLE Tên_bảng
(82)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Xóa cấu trúc bảng
DROP TABLE Danh_sách_tên_các_bảng Thay đổi cấu trúc bảng
a Thêm cột bảng ALTER TABLE Tên_bảng
ADD Tên_cột Kiểu_dữ_liệu [ , ] b Hủy bỏ cột có bên bảng
ALTER TABLE Tên_bảng
(83)Chương II: Xây dựng CSDL SQL Server
Chương II: Xây dựng CSDL SQL Server
Sửa đổi kiểu liệu 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”
(84)BÀI 3: BÀNG Ảo(view)
BÀI 3: BÀNG Ảo(view)BÀI 3: BÀNG Ảo(view)
BÀI 3: BÀNG Ảo(view)
• 1>Định Nghĩa :
– Bàng đối tượng chứa câu lệnh Select lấy liệu Từ bảng csdl
Khi truy cập vào CSLD ,người sử dụng không phân biệt Bảng ảo Bảng Thật
2> Tạo View
Create view Ten_view As
(85)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
• 2>Cấu trúc câu lệnh Select
Select [Ten_Bang.]Ten_Cot[,…]
From Ten_Bang1 <Liên kết > Ten_Bang2 Where <Điều kiện>
Group by <các cột gom nhóm> HaVing <Điều kiện lọc nhóm>
(86)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
• Mệnh đề Select :chứa cột,các hàm muốn hiển thị
• Nếu cột tồn hai bảng mệnh đề From ta phải ghi rõ :Tên_Bảng.Tên_Cột
Trong mệnh đề Select ta dùng cấu trúc lệnh
Case
When điều kiện Then Giá trị 1 When Điều kiện then Giá trị 2 …
Else
Giá tri n End
Để hiển thị liệu
• Mệnh đề from : cho biết liệu câu truy vấn lấy từ bảng nào • liệu lấy từ nhiều bảng bảng phải có quan hệ với nhau:
(87)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
• Mệnh đề Where : mệnh đề lọc liệu trả để gom nhóm
• Trong mệnh đề Where sử dụng tốn tử : – Like tìm chuỗi gần đúng
– % Thay chuỗi
– _(Gạch dưới) thay ký tụ
– Toán tử BETWEEN Gt1 AND GT2
Inner Left Right full
(88)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
Mệnh đề Group by : mệnh đề gom nhóm liệu
Mệnh đề phải có câu truy vấn có sử dụng hàm thống kê mệnh đề Select có lấy 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 :được lấy mệnh đề 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
(89)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
Mệnh đề HaVing : mệnh đề Lọc nhóm liệu
Mệnh đề tồn câu truy vấn có mệnh đề Group By điều
kiện lọc liệu có hàm thống kê
Chú ý : câu truy vấn có hai mệnh đề lọc liêu Where havinh
Where :lọc liệu để tạo nhóm ( có điều kiện khơng sữ dụng hàm thống kê) Having :lọc nhóm( điều kiện có thống kê)
Mệnh đề OrDer By : Mệnh đề xếp liệu Cú pháp Order by [Ten_bang.]Ten_Cot [asc/Desc] [,…]
Mệnh đề Compute /Compute By : mệnh đề tạo giá trị thống kê
cuối kết thống kê theo cột
Cú pháp
Compute Hàm thống kê : tạo thống kê cuối kết
Compute Hàm thống kê By [Ten_Bang.]Ten_cot :thống kê theo cột,dữ liệu phải
được xếp theo cột
(90)Cấu trúc câu lệnh Select
Cấu trúc câu lệnh SelectCấu trúc câu lệnh Select
Cấu trúc câu lệnh Select
Các toán tử dùng mệnh đề Select Cú pháp : Select Toán tử …
Với toán tử :
Distict : loại bỏ dòng liệu trùng Top n : lấy n dòng đầu tiên
Top n with ties : lấy dòng thuộc n cấp đầu
tiên
(91)Cấu trúc câu lệnh InSert into
Cấu trúc câu lệnh InSert intoCấu trúc câu lệnh InSert into
Cấu trúc câu lệnh InSert into
Insert into : dùng thêm liệu vào bảng,có dạng Thêm 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 hai dấu ‘’ ví dụ ‘Trần 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_cot2[,…]) Select Ten_bang_nguon.ten_cot ,…
(92)Cấu trúc câu lệnh UpDate
Cấu trúc câu lệnh UpDateCấu trúc câu lệnh UpDate
Cấu trúc câu lệnh UpDate
UpDate : dùng cập nhật liệu bảng
Dữ liệu Update 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 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ú ý : liệu cập nhật giá trị thống kê trả từ câu truy vấn con
Có thể dùng cấu trúc Case lệnh cập nhật
(93)Cấu trúc câu lệnh Delete
Cấu trúc câu lệnh DeleteCấu trúc câu lệnh Delete
Cấu trúc câu lệnh Delete
Delete : dùng xóa liệu bảng Dữ liệu xóa Bảng :
Cú pháp :
delete Ten_Bang [Where Điều kiện]
Dữ liệu delete nhiều Bảng : Cú pháp :
delete Ten_Bang From …
[Where Điều kiện]
(94)Cấu trúc câu lệnh Select into
Cấu trúc câu lệnh Select into Cấu trúc câu lệnh Select into
Cấu trúc câu lệnh Select into
Select into : dùng tạo bảng có cấu trúc liệu lấy từ bảng có CSDL
Cú pháp :
(95)Câu truy vấn Con (Sub Query)
Câu truy vấn Con (Sub Query) Câu truy vấn Con (Sub Query)
Câu truy vấn Con (Sub Query)
Sub Query :là câu truy vấn mà kết trả điều kiện để so sánh,gán giá trị cho câu truy vấn khác
Đặt điểm :
Chỉ trả cột liệu
Nếu trả dòng : điều kiện so sánh câu truy vấn câu truy vấn toán tử :=,>,<,<>,>=,<=
(96)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
• I>Biến cấu trúc lệnh SQL Server • A>Biến :
1> Biến cục : biến người lập trình khai báo,Biến khai báo thủ tục nội tại,hàm, lô lệnh
Lô Lệnh : tập hợp lệnh kết thúc từ Go
Cú pháp khai báo biến : Declare @Tên_Biên Kiểu_Dữ_Liệu
Tên Biến :Luôn bắt đầu ký tự @,khơng có khoảng trắng,ký tự đặt biệt,ký tự số đứng
đầu
Gán giá trị cho biến:
Gán giá trị :
Set @tên_biến=giátrị/hàm
hoặc Select @tên_biến=Giátrị/hàm
Gán kết trả câu truy vấn
(97)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
• 1> Biến hệ thống (t155) : biến SQL Server cung cấp,Cho biết trạng thái hệ thống,Biến hệ thống bắt đầu hai ký tự @@,Chỉ đọc
• Một số biến thường dùng
Tên Biến Ý nghĩa
@@Error Cho biết lệnh trước có lỗi
hay khơng,nếu có lỗi @@Error <>0 @@Rowcount Cho biết số dòng bị tác động
câu truy vấn gần nhất
(98)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
• B>Các cấu trúc lênh
– 1>lệnh điều khiển IF Else
– Cú pháp :
If Điều kiện Begin
<tập Lệnh 1> end
else
Begin
<tập Lệnh 2> End
- Nếu điều kiện : tập Lệnh thực hiện, ngược lại tập lệnh thực hiện
(99)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
• B>Các cấu trúc lênh
– 2>Cấu trúc lặp :While
While Biểu thức Điều kiện Begin
<Tập lệnh> end
• Tập lệnh thực đến biểu thức điều kiện trả False
(100)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
• 2>Các hàm SQL SerVer
• A>Các hàm chuyển đổi kiểu liệu :thường dùng để chuyển liệu từ số,ngày sang chuỗi
• Hàm Cast : chuyển kiểu 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 (@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])
(101)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Định dạng năm(YY) Định dạng năm(YYYY) Hiển thị liệu
1 101 Mm/dd/yyyy
3 103 Dd/mm/yyyy
5 105 Dd-mm-yyyy
12 112 Yyyymmdd
Một số định dạng thường dùng
•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)->12.35
(102)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
B>Các hàm ngày giờ
Bảng mô tả định dạng hàm thời gian
Giá trị Định dạng
Năm yy, yyyy
Quý qq, q
Tháng mm, m
Ngày năm dy, y Ngày tuần dw Ngày tháng dd, d
Tuần wk, ww
Giờ hh
(103)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Hàm DateAdd : dùng cộng số vào giá trị ngày trả một giá trị ngày
Cú pháp : DateAdd(Định dạng,Số,Ngày)->Ngày mới
Ví dụ
declare @ngaymoi datetime
set @ngaymoi=dateadd(mm,5,getdate()) print convert(char(10),@ngaymoi,105) =>11-01-2007
Hàm DateDiff: trả khoảng cách hai ngày
(104)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Hàm DateName: trả chuổi thời gian
Cú pháp : Datename(Định dạng, Ngày)->chuổi
Ví dụ
print datename(dw,getdate())->Friday
Hàm DatePart: trả giá trị ngày Cú pháp :Datepart(định dạng,ngày)->số nguyên Ví dụ :print datepart(qq,getdate())->3
Hàm Getdate() ->Trả ngày hành
(105)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
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)->12.35
Left(chuổi nguồn,số ký tự) ->cắt chuổi từ trái sang lấy số ký tự Right(chuổi nguồn,số ký tự)-> cắt chuổi từ phải sang lấy số ký tự Substring(chuổi,ví trí,số ký tự) -> cắt chuổi từ ví trí sang lấy số ký tự
(106)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
3>CurSor :là đối tượng dùng để chứa liệu lấy từ CSDL ,giống đối tượng recordset VB
Cú pháp khai báo biến Cursor : Declare Tên_Biến CURSOR
[phạm vi] [di chuyển][trạng thái][xử lý] For câu lệnh Select
[For update [OF danh sách cột]]
Trong :
Phạm vi :
(107)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Di chuyển :
ForWard_Only :chỉ di chuyển hướng từ trước sau(mặt định) Scroll : di chuyển tùy ý
Trạng thái
Static : dữ liệu Cursor không thay đổi mặt dù liệu bảng
nguồn thay đổi(mặt định)
Dynamic :dữ liệu Cursor sẻ thay đổi mặt dù liệu bảng
nguồn thay đổi
(108)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Xử lý :
Read_Only :chỉ đọc(mặt định) Scroll_Lock : đọc/ghi
Câu lệnh select :không chứa mệnh đề Into,Compute,Compute by Danh sách cột cập nhật : là danh sách cột sẻ thay đổi được
Mở CurSor: Open tên_Biến_Cursor Đọc xử lý liệu cursor Cú pháp :
(109)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Trong đó:
Hướng di chuyển :
NEXT: Di chuyển sau
PRIOR : Di chuyển trước FIRST : Di chuyển đầu LAST : Di chuyển cuối
ABSOLUTE n : di chuyển đến mẩu tin thứ n tính từ mẩu tin
đầu tiên ,nếu n<0 : tính từ mẩu tin cuối
RELATIVE n :di chuyển đến mẩu tin thứ n tính từ mẩu tin
(110)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVer
Trong trình di chuyển để 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 @@FETCH_STATUS <>0 thất bại
Đóng Cursor :Close @Tên_Biến
Giải phóng CurSor khỏi nhớ :DEALLOCATE @Tên_Biến Chú ý :thứ tự thao tác xử lý liệu CurSor
1 Định nghĩa biến Cursor 2 Mở Cursor
(111)Bài 4: Lập trình với SQL SerVer
Bài 4: Lập trình với SQL SerVerBài 4: Lập trình với SQL SerVer
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 @mavtu char(4),@tenvtu varchar(100) while 0=0
begin
fetch next from Cur_vattu into @mavtu,@tenvtu if @@fetch_status<>0 break
print 'Mã vật tư :' + @mavtu +' Tên Vật tư :' + @tenvtu end
close Cur_Vattu
(112)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
1>Thủ tục nội ?
là “Chương trình con” Sql SerVer
Trong thủ tục nội chứa câu lệnh truy vấn, lệnh
T-SQL…
Thủ tục nội có tham số vào, tham số trả
về kết quả
Ta gọI thủ tục nội SQL hay ứng dụng
được xây dựng VB,VB.NET…
Các xử lý xây dựng thủ tục nộI tạI sẻ chạy nhanh
xây dựng ứng dụng, tập trung tạI server nên dể quản lý
Theo mơ hình lập trình client-server tất xử lý điều tập
(113)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
2>cú pháp xây dựng ttnt
Create Proc Ten_Thu_Tuc [(Các tham số)] As
câu lệnh Trong :
Các tham số : chia làm hai loạI
Tham số vào : nhận giá trị từ ngườI dùng gởI vào cho ttnt xử lý
Cú pháp : @Ten_bien Kiểu_dữ_liệu [=giá trị mặt định]
Tham số :nhận kết trả từ Ttnt hiển thị cho ngườI dùng
(114)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
GọI thực ttnt
Exec Ten_Thu_Tuc [ @ten_Tham_so_vao= gia_tri[, ] @ten_Tham_so_ra=@ten_Bien output]
LỆNH Return TTNT:
Trong thủ tục nt ta dùng lệnh Return để trả kết hoặc để thoát khỏI thủ tục
Cú pháp :
Return giá trị :thoát khỏI thủ tục trả kết quả Hoặc
Return : Thoát khỏI thủ tục GọI thủ tục có giá trị trả về
(115)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
3>Các dạng thủ tục nộI tạI : A Thủ tục hiển thị liệu:
Loại thủ tục có tham số vào Trong chứa câu lệnh Select
B Thủ tục Tính Tốn :
Loại thủ tục có tham số vào,tham số ra, giá trị
trả
Trong chứa câu lệnh T-SQL để kiểm tra ,tính toán giá trị
(116)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
C>Thủ tục Thêm liệu vào bảng:
Loại thủ tục có tham số vào tên cột có bảng,
trừ cột có kiểu liệu tự tăng (identity)
Tham số ra,giá trị trả :có thể có, cho biết việc thêm liệu có
thành cơng hay khơng
Trong chứa câu lệnh T-SQL :
• Kiểm tra ràng buột liệu nhất(primary key,unique)
cú pháp :
if Exists (Select * from Ten_Bang where Ten_Cot=@ten_cot) begin
print ‘thông báo lỗi’
Return giá trị lổi
set @bien_tra_ve= giá trị lỗI Return
(117)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
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=@ten_cot) begin
print ‘thơng báo lỗI”
End
• Kiểm tra ràng buột Miền giá trị (Check)
if @ten_cot không nằm miền giá trị begin
print ‘thông báo lỗI”
Return giá trị lổi
set @bien_tra_ve= giá trị lỗI Return
Hoặc
Return giá trị lổi
(118)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
• Ghi liệu vào bảng
• Cú pháp
(119)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
d>Thủ tục Cập nhật liệu bảng:
Loại thủ tục có tham số vào tên cột có bảng,
Tham số ra,giá trị trả :có thể có, cho biết việc Cập nhật liệu có thành cơng hay khơng
Trong chứa câu lệnh T-SQL :
• Kiểm tra liệu cập nhật có tồn hay khơng
• cú pháp :
if not Exists (Select * from Ten_Bang where
Ten_Cot_khoa_chinh=@ten_cot_khoa_chinh) begin
print ‘thông báo lỗi’
Return giá trị lổi
set @bien_tra_ve= giá trị lỗI
(120)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
• Cập nhật liệu vào bảng
• Cú pháp
Update Ten_Bang
Set ten_cot=@tencot [, ]
Where ten_cot_khoa_chinh=@ten_cot_khoa_chinh
(121)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
d>Thủ tục xóa liệu bảng:
Loại thủ tục có tham số vào cột làm khóa
bàng, Tham số ra,giá trị trả :có thể có, cho biết việc xóa liệu có thành cơng hay khơng
Trong chứa câu lệnh T-SQL :
• Kiểm tra liệu xóa có tồn bảng nhiều hay khơng
• cú pháp :
if Exists (Select * from Ten_Bang_nhieu where
Ten_Cot_khoa_ngoai=@ten_cot_khoa_chinh) begin
print ‘thông báo lỗi’ return
(122)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
• xóa liệu vào bảng
• Cú pháp
Delete from Ten_Bang
Where ten_cot_khoa_chinh=@ten_cot_khoa_chinh
(123)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
4>Giao tác :(Transaction):
Là tập hợp lệnh thực tất
thành cơng, có lệnh thất bại ,thì khơng có lệnh thực hiện
Ví dụ : giao tác chuyển tiền ngân hàng : chuyển
số lượng N từ tài khoản A sang tài khoản B, công việc thực :
•TaiKhoanA=TaiKhoanA-N
•TaiKhoanB=TaiKhoanB+N
(124)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
Cú pháp xây dựng giao tác SQL Server
Lệnh Bắt đầu Giao tác : Begin Tran
Lệnh kết thúc thành công giao tác : Commit Tran Lệnh kết thúc thất bại giao tác : Rollback Tran
(125)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
Cú pháp : Begin Tran
< tập lệnh> If @@error<>0 begin
print ‘giao tac that bai’ Rollback tran
(126)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
Thủ tục nội trả Cursor :Thủ tục trả Cursor chứa dòng liệu thỏa điều kiện
Cú pháp truyền tham số trả kiểu Cursor : @Ten_bien Cursor Varying Output Các xử lý :
Bên thủ tục :
Gán giá trị cho Cursor, cú pháp :
Set @Ten_Bien=CurSor [phạm vi] [di chuyển][trạng thái] [xử lý]
(127)Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure) Bài 5: Thủ tục nội TạI(Stored procedure)
Bài 5: Thủ tục nội TạI(Stored procedure)
Ngoài thủ tục :
(128)Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa
1>Khái Niệm:
Là đối tượng bổ sung vào SQL Server 2000
Mang đầy đủ tính chất hàm :có thể có tham số vào,
xử lý trả kết quả
Các loại hàm :
Hàm xác định (deter-ministic) : trả giá trị
nhận giá trị truyền vào nhau
Hàm không xác định (non-deterministic) : cho giá trị
(129)Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa
2>Xây dựng Hàm:
A> hàm trả giá trị : giá trị trả có kiểu liệu trong kiểu SQL Server
Cú pháp :
Create Function Ten_Ham[(Các tham số)] Returns Kiểu_dữ_liệu_trả_về as
Begin
<các xử lý>
(130)Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa
Ta gọi hàm loại câu truy vấn, lệnh tạo bảng,trong thủ tục nội …
B>hàm trả liệu lấy từ bảng CSDL:giống như view 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)
(131)Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa Bài 6:Hàm Do Người Dùng Định Nghĩa
Bài 6:Hàm Do Người Dùng Định Nghĩa
C> hàm tạo bảng : tạo trả bảng, hàm chứa tất lệnh T-SQL
Cú pháp :
Create Function Ten_Ham[(các tham số)] Returns @Ten_Bang_trả_về Table
(Tên_cột Kiểu_dữ_liệu[,…] )as
Begin
<các lệnh T-SQL>
(132)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
1>Tổng quan:
Trigger dạng đặt biệt thủ tục nội :
Trigger khơng có tham số
Không gọi thực lệnh Exec, mà tự động kích hoạt
khi liệu bảng có liên quan đến Trigger cập nhật
Một Trigger tạo cho bảng dùng để kiểm tra
(133)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
2>xây dựng Trigger: Cú pháp
Create Trigger Ten_trigger on Ten_Bang/Tên View
For/Instead of Insert[,Update,Delete] AS
(134)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
Trong :
Tên bảng/view : bảng/view mà trigger tạo
Nếu Trigger khai báo với từ khóa For :trigger sẻ được kích hoạt sau liệu cập nhật vào bảng
Nếu Trigger khai báo với từ khóa Instead of :trigger sẻ kích hoạt trước liệu cập nhật vào bảng,
thường dùng để kiểm tra liệu cập nhật View
Insert,Update,Delete : Trigger kích hoạt ứng với hành động thêm,sửa ,xóa liệu bảng
(135)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
3>Hai bảng tạm Inserted Deleted:
Khi thêm liệu vào bảng, liệu thêm vào đưa vào bảng tạm Inserted
Khi xóa liệu bảng, liệu xóa đưa vào bảng tạm Deleted
Thao tác cập nhật xữ lý :
Xóa dịng liệu cũ (dữ liệu cũ đưa vào bảng Deleted) Thêm dòng liệu mới(dữ liệu đưa vào bảng
inserted)
Để lấy liệu vừa cập nhật vào bảng ta truy cập vào
(136)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
4>Các loại Trigger:
Thông báo lỗi Trigger : để thông báo lỗi trigger ta dùng hàm :
Raiserror(‘Chuỗi thông báo lỗi’,16,1) Không cho thay đổi liệu :
Rollback Tran
A>Các xử lý Trigger kiểm tra thêm liệu vào bảng
•Khai báo biến : bảng có cột tương ứng khai báo nhiêu biến
•Dùng câu lệnh Select lấy liệu từ bảng Inserted gán cho
(137)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
B>Các xử lý Trigger kiểm tra Sửa liệu vào bảng
•Kiểm tra khơng cho phép cập nhật cột
•If Update(Ten_Cot) Begin
Raiserror(‘khơng thay đổi liệu cột Ten_Cot’,16,1) Rollback Tran
end
•Khai báo biến lấy liệu để kiểm tra
(138)Bài 7:Trigger
Bài 7:Trigger Bài 7:Trigger
Bài 7:Trigger
C>Các xử lý Trigger kiểm tra xóa liệu vào bảng
•Khai báo biến lấy liệu để kiểm tra
(139)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
I. Liên kết liệu VB SQL Server
A. Cú pháp
Giống việc liên kết liệu VB Access, việc liên kết Vb SQL Server thực thông qua đối tượng ADODB.Connection
Định giá trị chuỗi kết nối - ConnectionString
ConnectionString = "Provider=SQLOLEDB.1;Initial Catalog=Tên_CSDL; " & _
(140)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :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 = "Provider=SQLOLEDB.1;Initial Catalog=QuanLyBanHang;" & _
"Data Source=172.29.7.5;User Id=TuyetNhi;Pwd=abc" cnSQL.CursorLocation = adUseClient
cnSQL.Open Exit Sub
LoiLienKet:
(141)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
2.Đối tượng Command :là đối tương dùng để gọi thực thi một thủ tục nội SQL Server
Các thuộc tính :
ActiveConnection : đối tượng connecttion CommandText : tên thủ tục
CommandType : kiểu adCmdStoredProc
(142)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
3.Đối tượng Parameter : dùng để truyền tham số vào ,tham số ra, nhận giá trị trả ttnt
Khai báo khởi tạo :
Dim p As ADODB.Parameter
p= cmd.CreateParameter("tents",kieudl,kieuthamso,kich thuoc,giatri)
Trong :
tên tham số : tên tham số ttnt Kiểu liệu :là kiểu tham số
(143)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
Tạo báo cáo với Crystal Report Tạo báo cáo:
(144)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
Tạo báo cáo với Crystal Report
Bước 2: Chọn Microsoft SQL Server
(145)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
Tạo báo cáo với Crystal Report
Bước 3: Điền đầy đủ thơng tin cho hình đăng nhập
(146)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
Tạo báo cáo với Crystal Report
(147)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
Kiểu tham số :
•adParamInput : tham số vào
•adParamOutput : tham số ra
•adParamReturnValue : giá trị trả về
Chiều dài : kiểu liệu chuổi( char, varchar ) ,ta phải truyền vào chiều dài liệu
Giá trị : tham số vào ta phải có giá trị truyền vào Đưa tham số vào comman
cmd.Parameters.Append tên_tham_so
(148)Bài :
Bài :Bài :Kỹ thuật lập trình Vb với SQL Server
Bài :Kỹ thuật lập trình Vb với SQL Server
DK_In.ReportFileName = App.Path & "\baocao.rpt" DK_In.Connect =
"DSN=admin;Uid=sa;pwd=;dsq=Ql_ban_hang" DK_In.WindowState = crptMaximized
DK_In.SelectionFormula = "{Bao_cao_don_dh.sodh}='" & So_Dat_Hang & "'"