SlideShare a Scribd company logo
1 of 52
Download to read offline
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
NGÔN NGỮ LẬPNGÔN NGỮ LẬP
TRÌNH TTRÌNH T SQLSQLTRÌNH TTRÌNH T--SQLSQL
Trần Ngọc Bảo
Email: tnbao.dhsp@gmail.com
UU
NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))
UU
NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))
UU
NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL
SELECT <D h á h á ột đ h >
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
SELECT <Danh sách các cột được chọn>
FROM < Danh sách các bảng>
WHERE <Điều kiện chọn>
GROUP BY <Danh sách cột cần nhóm>
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
ộ
HAVING < Điều kiện nhóm>
ORDER BY < Danh sách cột cần sắp xếp>
Vd1: Cho quan hệ HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Vd1: Cho quan hệ HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
Yêu cầu Liệt kê tên và ngày sinh của tất cả các học sinh
SELECT TenHS, NgaySinh
FROM HocSinh
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
FROM HocSinh
Vd2 : Cho quan hệ HoaDon(MaHD, TenKH, SoLuong, DonGia)
Yêu cầu Liệt kê Hoá đơn của khách hàng và Thuế VAT của hóa đơn đó
với VAT được tính bằng như sau: VAT = số lượng * đơn giá * 10%
BÀIGIẢNBÀIGIẢN
NGNG
với VAT được tính bằng như sau: VAT số lượng đơn giá 10%
Nhận xét: Thuế VAT không phải là filed trong DB, nó là kết quả của biểu
thức SoLuong * DonGia * 10%
SELECT MaHD TenKH Soluong * DonGia * 0 1 as VAT
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))
SELECT MaHD, TenKH, Soluong DonGia 0.1 as VAT
FROM HoaDon
UU
NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL
Câu lệnh INSERT
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Câu lệnh INSERT
Cú pháp
INSERT INTO < TableName> <ColumnList>
VALUES < Value1, Value2,... >
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Ví dụ: Cho quan hệ
HocSinh(MaHS, TenHS, NgaySinh, DiaChi)
Yêu cầu : Thêm bộ sau vào Table học sinh (‘001’ ’Nguyen Van
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Yêu cầu : Thêm bộ sau vào Table học sinh ( 001 , Nguyen Van
A’,’08/20/2002’,’a’)
INSERT INTO HocSinh
VALUES (‘001’,’Nguyen Van A’,’08/20/2002’,’a’)
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))
UU
NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL
Câu lệnh UPDATE
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Câu lệnh UPDATE
Cú pháp
UPDATE < Tên bảng>
SET Tên cột 1 = giá trị ,
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Tên cột = giá trị , ...
WHERE < điều kiện>
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Câu lệnh DELETE
Cú pháp
DELETE FROM < Tên bảng>
WHERE < điều kiện>
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
WHERE < điều kiện>
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))
UU
SQL Server Object - ViewsSQL Server Object - Views
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))
UU
VIEW – BẢNG ẢO
Vi ó thể đượ hư là ột
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• View có thể được xem như là một
bảng (table) ảo.
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
• View có cấu trúc tương tự như
Table, gồm có các thuộc tính; tập
ộ í à ó ể ế
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
thuộc tính này có thể được kết hợp
từ một hay nhiều table/view khác.
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
• Thông thường, View được sử dụng
trong các câu truy vấn con
BÀIGIẢNBÀIGIẢN
NGNG
g y
(subquery), trong store procedure
hoặc trong các báo biểu thống kê
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))88
Copyright © 1997 by Rational Software Corporation
ặ g g
(report)
UU
VIEW – BẢNG ẢO
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
CREATE VIEW TENVIEW
AS
[CÂU LỆNH TRUY VẤN DỮ LIỆU]
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
[CÂU LỆNH TRUY VẤN DỮ LIỆU]
CREATE VIEW V1
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
CREATE VIEW V1
AS
SELECT MASV,HOTEN, NGAYSINH, MANGANH
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
FROM SINHVIEN
WHERE PHAI = ‘NAM’
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))
UU
VIEW – Bảng ảo
MASV HOTEN NGAYSINH MaNganh
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
MASV HOTEN NGAYSINH MaNganh
K29.101.001 Nguyen Cong Phu 10/10/1979 SP101
K29.101.002 Phan Anh Khanh 1/10/1979 SP101
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
K29.101.002 Phan Anh Khanh 1/10/1979
K29.103.001 Han Quoc Viet 3/2/1979 SP103
K29.103.002 Pham Khanh Nhu 10/12/1979 SP103
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
K29.201.001 Ly Thanh 3/8/1979 SP201
K29.201.002 Tran Ngoc Dung 4/5/1979 SP201
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
K29.104.001 Ho Anh Thu 1/4/1979 SP104
SELECT MASV, HO + ‘ ’ + TEN as HoTen, NGAYSINH, MANGANH
FROM SINHVIEN
BÀIGIẢNBÀIGIẢN
NGNG
FROM SINHVIEN
CREATE VIEW vSVien AS
SELECT MASV HO + ‘ ’ + TEN as HoTen NGAYSINH NGAYSINH
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))
SELECT MASV, HO + + TEN as HoTen, NGAYSINH, NGAYSINH
FROM SINHVIEN vSVien chính làvSVien chính là VIEWVIEW
UU
Truy vấn thông tin
NGANH (MANGANH, TENNGANH, SOCD, TSSV)
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
MASV HO TEN PHAI NGAYSINH MANGA
NH
K29.101.
001
Nguyen Cong Phu Nam 10/10/1979 SP101
K29 101 Ph A h Kh h N 1/10/1979 SP101
MANGANH TENNGANH SOCD TSSV
SP103 Sư Phạm Tin học 8 800
SP101 Sư Phạm Toán 5 1000
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
K29.101.
002
Phan Anh Khanh Nu 1/10/1979 SP101
K29.103.
001
Han Quoc Viet Nam 3/2/1979 SP103
K29.103.
002
Pham Khanh Nhu Nu 10/12/1979 SP103
SP101 Sư Phạm Toán 5 1000
SP201 Sư Phạm Hóa 3 1500
SP102 Sư Phạm Lý 4 1200
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
K29.201.
001
Ly Thanh Nam 3/8/1979 SP201
K29.201.
002
Tran Ngoc Dung Nu 4/5/1979 SP201
K29 104 Ho Anh Thu Nu 1/4/1979 SP104
CNTT Khoa học máy tính 8 160
SP104 Sư Phạm Sinh 6 1000
SP105 Sư h A h 2 1100
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
K29.104.
001
Ho Anh Thu Nu 1/4/1979 SP104 SP105 Sư phạm Anh 2 1100
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH)
sinh viên
BÀIGIẢNBÀIGIẢN
NGNG
SELECT MASV, HO + ‘ ’ + TEN as HoTen, NGAYSINH, TENNGANH
FROM SINHVIEN JOIN NGANH ON SINHVIEN.MANGANH =
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))
NGANH.MANGANH
UU
Truy vấn thông tin từ View
Kết quả truy vấn từ: vSVien
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
MANGANH TENNGANH SOCD TSSV
SP103 Sư Phạm Tin học 8 800
MASV HOTEN NGAYSINH MaNganh
K29.101.001 Nguyen Cong Phu 10/10/1979 SP101
Kết quả truy vấn từ: vSVien
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
SP101 Sư Phạm Toán 5 1000
SP201 Sư Phạm Hóa 3 1500
SP102 Sư Phạm Lý 4 1200
K29.101.002 Phan Anh Khanh 1/10/1979 SP101
K29.103.001 Han Quoc Viet 3/2/1979 SP103
K29 103 002 Pham Khanh Nhu 10/12/1979 SP103
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
SP102 Sư Phạm Lý 4 1200
CNTT Khoa học máy tính 8 160
SP104 Sư Phạm Sinh 6 1000
K29.103.002 Pham Khanh Nhu 10/12/1979 SP103
K29.201.001 Ly Thanh 3/8/1979 SP201
K29.201.002 Tran Ngoc Dung 4/5/1979 SP201
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
SP105 Sư phạm Anh 2 1100
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH)
sinh viên
K29.104.001 Ho Anh Thu 1/4/1979 SP104
BÀIGIẢNBÀIGIẢN
NGNG
sinh viên
SELECT MASV, HoTen, NGAYSINH, TENNGANH
FROM vSVIEN JOIN NGANH ON SVIEN MANGANH =
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))
FROM vSVIEN JOIN NGANH ON SVIEN.MANGANH
NGANH.MANGANH
UU
ầ ấ
VIEW & SUBQUERYSỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh) sinh viên
Nam thuộc ngành “Sư phạm Tin học”
MASV HOTEN PHAI NGAYSINH MANGANH MANGANH TENNGANH SOCD TSSV
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101
K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101
K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103
SP103 Sư Phạm Tin học 8 800
SP101 Sư Phạm Toán 5 1000
SP201 Sư Phạm Hóa 3 1500
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103
K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103
K29.201.001 Ly Thanh Nam 3/8/1979 SP201
SP102 Sư Phạm Lý 4 1200
CNTT Khoa học máy tính 8 160
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
K29.201.002 Tran Ngoc Dung Nu 4/5/1979 SP201
K29.104.001 Ho Anh Thu Nu 1/4/1979 SP104
SP104 Sư Phạm Lý 6 1000
SP105 Sư phạm Anh 2 1100
BÀIGIẢNBÀIGIẢN
NGNG
MASV HOTEN NGAYSINH
K29.103.001 Han Quoc Viet 3/2/1979
Kết quả truy vấn: 1 dòng
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))1313
K29.103.001 Han Quoc Viet 3/2/1979
UU
View & SubQuery
ầ ấ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
3 Cách 3:
Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh) sinh viên
Nam thuộc ngành “Sư phạm Tin học”
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
3. Cách 3:
SELECT MASV, HOTEN, NGAYSINH
FROM
(SELECT MASV,HOTEN, NGAYSINH, MANGANH
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
( , , ,
FROM SINHVIEN
WHERE PHAI = ‘NAM’) AS SV JOIN
(SELECT MANGANH
FROM NGANH
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
FROM NGANH
WHERE TENNGANH = ‘Sư phạm Tin học’) AS N
ON SV.MANGANH = N.MANGANH
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))1414
UU
View & SubQuery
SELECT MASV, HOTEN, NGAYSINH
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
FROM
(SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = ‘NAM’) AS SV JOIN
(SELECT MANGANH
FROM NGANH
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
WHERE TENNGANH = ‘Sư phạm Tin học’) AS N
ON SV.MANGANH = N.MANGANH
Tạo View V1 bằng cách chọnTạo View V1 bằng cách chọn
các dòngcác dòng [MASV HOTEN[MASV HOTEN
CREATE VIEW V1
AS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN,
NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó
thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong
quan hệquan hệ SINHVIENSINHVIEN
S
SELECT MASV,HOTEN, NGAYSINH, MANGANH
FROM SINHVIEN
WHERE PHAI = ‘NAM’
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Tạo View V2 bằng cách chọnTạo View V2 bằng cách chọn
các dòngcác dòng [MANGANH][MANGANH] có thuộccó thuộc
tính TENNGANHtính TENNGANH = ‘Sư phạm= ‘Sư phạm
CREATE VIEW V2
AS
SELECT MANGANH
FROM NGANH
BÀIGIẢNBÀIGIẢN
NGNG
Tin học’Tin học’ trong quan hệtrong quan hệ NGANHNGANH WHERE TENNGANH = ‘Sư phạm Tin học’
SELECT MASV, HOTEN, NGAYSINH
FROM V1 JOIN V2
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))
FROM V1 JOIN V2
ON V1.MANGANH = V2.MANGANH
UU
Tạo View trong SQL Server
Tạo View bằng công cụ Studio Management
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Vùng biểu các table, view
tham gia vào câu truy vấn
ạo e bằ g cô g cụ Stud o a age e t
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
ể
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Vùng để nhập
câu truy vấn
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Vùng hiển thị kết
ấ
BÀIGIẢNBÀIGIẢN
NGNG
quả truy vấn
Vùng biểu diễn phép
chọn, chiếu,…trong
câu truy vấn
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))
y
UU
Tạo View trong SQL Server
Tạo View bằng lệnh CREATE VIEW từ New Query/Query Analyzer
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
ạo e bằ g ệ C từ e Que y/Que y a y e
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Nhập lệnh CREATE VIEW
để tạo View trong cửa sổ
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
để tạo View trong cửa sổ
New Query/Query
Analyzer
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1717))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1717))
Đại Học Sư Phạm Tp. Hồ Chí Minh
Khoa Toán – Tin Học
CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU
• Stored Procedure - Thủ tục nội
Tương tác dữ liệu: thêm, xóa,...
Lấy dữ liệuLấy dữ liệu
Thêm dữ liệu
Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))
Xóa dữ liệu Sửa dữ liệu
UU
Tương tác dữ liệu: thêm, xóa,...SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Thêm dữ liệu INSERT
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Cập nhật dữ liệu UPDATE
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Xóa dữ liệu DELETE
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Lấy dữ liệu SELECT
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Thêm, xóa, sửa, truy vấn
BÀIGIẢNBÀIGIẢN
NGNG
y
dữ liệu trong table Khoa
thực hiện như thế nào ?
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
TRUY VẤN TOÀN BỘ
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
TRUY VẤN TOÀN BỘ
DỮ LiỆU TRONG
TABLE KHOA
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored ProcedureSỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
TẠO PROCEDURE
TRUY VẤN TOÀN BỘ
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
TRUY VẤN TOÀN BỘ
DỮ LiỆU TRONG
TABLE KHOA
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
THỰC THI
PROCEDURE TRUY
VẤN TOÀN BỘ DỮ
LiỆU TRONG TABLE
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2323))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2323))
LiỆU TRONG TABLE
KHOA
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Thêm mới dữ liệu
vào Table KHOA
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Tạo STORE PROCEDURE
BÀIGIẢNBÀIGIẢN
NGNG
Tạo STORE PROCEDURE
để thêm mới dữ liệu vào
Table KHOA
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Thực thi thủ tục
SP_THEM_KHOA để
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
thêm mới dữ liệu vào
Table KHOA
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Thực thi thủ tục
SP THEM KHOA để
BÀIGIẢNBÀIGIẢN
NGNG
SP_THEM_KHOA để
thêm mới dữ liệu vào
Table KHOA
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Khái niệm
Stored Procedure là các thủ tục được xây dựng để thực hiện các xử lý
liên quan đến việc dữ liệu: SELECT INSERT DELETE UPDATE
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
liên quan đến việc dữ liệu: SELECT, INSERT, DELETE, UPDATE,...
Stored Procedure được lưu trữ và thi hành ngay trong Server khi có yêu
cầu.
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Các thao tác liên quan đến Stored Procedure
Tạo Stored Procedure
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Mở DB cần tạo table bằng cách click vào dấu + bên trái
tên của DB để hiển thị các mục con trong DB. Ví dụ:
Diagrams, Tables, Views, Stored procedure,…
BÀIGIẢNBÀIGIẢN
NGNG
Click phải chuột vào mục Stored procedures
Chọn chức năng New Stored procedure… trong menu
sổ xuống, xuất hiện dialog soạn thảo nội dung của stored
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))
g g g
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
Tạo Stored Procedure
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Tạo Stored Procedure
Đặt tên Stored trong [PROCEDURE NAME]
Viết nội dung stored
Sau khi viết xong nội dung xử lý trong stored
ấ C S ể ể ủ
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Nhấn Check Syntax: để kiểm tra cú pháp của các câu lệnh trong
stored
Nhấn OK: Lưu stored
Nhấn Cancel: hủy bỏ thao tác tạo
Sử S d P d
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Sửa Stored Procedure
Click vào mục Stored procedures để hiển thị danh sách Stored procedure
tương ứng (bên phải)
Chọn Stored procedure trong danh sách Stored procedures
Cli k hải h ột à St d d ầ ử d M St dP
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Click phải chuột vào mục Stored procedure cần sửa, vd: MyStoredPro
Chọn mục Properties trong menu context
Xuất hiện màn hình tương tự như màn hình Stored procedure
Thực hiện các thao tác tương tự như phần tạo
Xó St d P d
BÀIGIẢNBÀIGIẢN
NGNG
Xóa Stored Procedure
Click vào mục Stored procedures để hiển thị danh sách Stored procedure
tương ứng (bên phải)
Chọn Stored procedure trong danh sách Stored procedure
Cli k hải h ột à St d d ầ ó d M St dP
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))
Click phải chuột vào mục Stored procedure cần xóa, vd: MyStoredPro
Chọn mục Delete trong menu context
UU
Stored Procedure trong SQL Server 2000Stored Procedure trong SQL Server 2000
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))
UU
Stored Procedure - trong SQL Server 2005Stored Procedure - trong SQL Server 2005
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3030))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3030))
UU
Stored Procedure - trong SQL Server 2005Stored Procedure - trong SQL Server 2005
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Thông tin
chú thích
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Tên thủ
tục
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Danh sách
tham số
BÀIGIẢNBÀIGIẢN
NGNG
tham số
Các câu lệnh T-SQL:
SELECT, INSERT,
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3131))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3131))
SELECT, INSERT,
DELETE, UPDATE,…
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
Cấu trúc của một Stored Procedure bao gồm các phần chính sau đây
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Cấu trúc của một Stored Procedure bao gồm các phần chính sau đây
Phần Tên
Cú pháp
CREATE PROCEDURE StoredName
Ý nghĩa
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Ý nghĩa
Định nghĩa thủ tục nội với tên là StoredName
Ví dụ
CREATE PROCEDURE DemNhanVien
AS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
AS
SELECT Count(*)
FROM NhanVien
Phần tham số
Tương tự như bất kỳ một thủ tục nào trong một ngôn ngữ lập trình phần tham
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Tương tự như bất kỳ một thủ tục nào trong một ngôn ngữ lập trình, phần tham
số của một Stored được khai báo ngay sau phần tên của nó.
Tham số nhập
Cú pháp:
BÀIGIẢNBÀIGIẢN
NGNG
Cú pháp:
@Parameter1 DataType [=DefaultValue]
@Parameter1: Tên của biến số
DataType: Kiểu dữ liệu của biến
DefaultValue: Giá trị mặc định của biến
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3232))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3232))
DefaultValue: Giá trị mặc định của biến
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
CREATE PROCEDURE StoredName
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
CREATE PROCEDURE StoredName
@Parameter1 DataType [=DefaultValue,]
@Parameter2 DataType OUTPUT,
@Parameter3 DataType OUTPUT
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
@Parameter3 DataType OUTPUT
AS
BEGIN
BEGIN TRANSACTION
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
BEGIN TRANSACTION
{T-SQL Statement1}
If @Error <> 0
Goto Err_Handle
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
{T-SQL Statement2}
If @Error <> 0
Goto Err_Handle
COMMIT TRANSACTION
BÀIGIẢNBÀIGIẢN
NGNG
COMMIT TRANSACTION
Return(0)
Err_Handle:
ROLLBACK TRANSACTION
R t (@E )
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3333))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3333))
Return(@Error)
END
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
CREATE PROCEDURE T Th S
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
CREATE PROCEDURE TruyenThamSo
@param0 int=NULL, -- Giá trị mặc định là NULL
@param1 int=1, -- Giá trị mặc định là 1
@param2 int=2 -- Giá trị mặc định là 2
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Với câu lệnh thực thi thủ tục TruyenThamSo
@p ị ặ ị
AS
SELECT @param0, @param1, @param2
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Với câu lệnh thực thi thủ tục TruyenThamSo
EXEC TruyenThamSo
Kết quả
(Null) 1 2
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
EXEC TruyenThamSo 10,20,30
Kết quả
10 20 30
EXEC TruyenThamSo @param2=200 @param1=NULL
BÀIGIẢNBÀIGIẢN
NGNG
EXEC TruyenThamSo @param2=200, @param1=NULL
Kết quả
Null Null 200
EXEC TruyenThamSo 0, DEFAULT, 20
ế ả
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3434))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3434))
Kết quả
0 1 200
UU
SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure
Tham số ất
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Tham số xuất
Cú pháp:
@Parameter1 DataType OUTPUT
@Parameter1: Tên của biến số
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
@Parameter1: Tên của biến số
DataType: Kiểu dữ liệu của biến
DefaultValue: Giá trị mặc định của biến
Ví dụ:
Kh i bá thủ t
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
--Khai báo thủ tục
CREATE PROCEDURE count_tables @authorcount int OUTPUT,
@titlecount int OUTPUT
AS
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
SELECT * FROM authors
SET @authorcount=@@ROWCOUNT
SELECT * FROM titles
SET @titlecount=@@ROWCOUNT
BÀIGIẢNBÀIGIẢN
NGNG
SET @titlecount=@@ROWCOUNT
RETURN(0)
--Thực thi thủ tục
DECLARE @a_count int, @t_count int
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3535))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3535))
EXEC count_tables @a_count OUTPUT, @t_count OUTPUT
UU
KHAI BÁO BIẾNKHAI BÁO BIẾN
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3636))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3636))
UU
ế
KHAI BÁO BIẾNKHAI BÁO BIẾN
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Khai báo biến
Cú pháp
DECLARE @Name DataType
@Name: là tên của biến phải được bắt đầu với ký tự @
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
@Name: là tên của biến, phải được bắt đầu với ký tự @
DataType: kiểu dữ liệu của biến, bao gồm tất cả các kiểu dữ liệu của hệ
thống trừ các kiểu sau: text, ntext, image.
Ví dụ
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
--Khai báo biến lưu trữ số Record trong một Table nào đó
DECLARE @nNumRecord int
--Khai báo biến lưu trữ số tổng số tiền
DECLARE @SumMoney decimal(18 2)
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
DECLARE @SumMoney decimal(18,2)
--Khai báo biến lưu trữ tên
DECLARE @sName char(30)
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3737))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3737))
UU
GÁN GIÁ TRỊ CHO BIẾNGÁN GIÁ TRỊ CHO BIẾNSỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Cú pháp 1:
SET @Name = Value
@Name: Tên biến
V l Giá t ị ầ á h biế
Ví dụ
Cú pháp 1:
DECLARE @HoTen char(20)
ễ
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
Value: Giá trị cần gán cho biến
Cú pháp 2:
SELECT @Name = Value
@Name: Tên biến
V l Giá t ị ầ á h biế
SET @HoTen = ‘Nguyễn Công Phú’
Cú pháp 2:
DECLARE @HoTen char(20)
SELECT @HoTen = ‘Nguyễn Công Phú’
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Value: Giá trị cần gán cho biến
Hoặc
SELECT @Name = coloum
FROM TableName
@N Tê biế
hoặc
--Tìm lương lớn nhất của tất cả các nhân
viên
DECLARE @MaxSalary decimal(18,2)
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
@Name: Tên biến
Column: Tên cột trong Table
cần gán cho biến
SELECT @MaxSalary = MAX(Salary)
FROM Employee
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3838))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3838))
UU
SQL Server Object – Local VariablesSQL Server Object – Local Variables
Các biến được sử dụng trong cấu truy vấn như là các tham số.
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
Các biến được sử dụng trong cấu truy vấn như là các tham số.
-Cho lược đồ CSDL và dữ liệu tương ứng như sau:
HocSinh DiemThi
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem
01 Bao 10/10/1977 123 01 01 2001 10
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
02 Phu 11/10/1079 124 03 01 2002 8
Ví dụ: Liệt kê danh sách học sinh Ví dụ: Liệt kê danh sách các học sinh có địa
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
-Ví dụ: Liệt kê danh sách học sinh
có ngày sinh vào ngày ‘10/10/1977’
DECLARE @NgaySinh datetime
SET @NgaySinh=’10/10/1977’
SELECT *
Ví dụ: Liệt kê danh sách các học sinh có địa
chỉ là ‘123’ và điểm thi lớn hơn 10
DECLARE @DiaChi varchar(50), @Diem
Decimal
SELECT @DiaChi=’123’ @Diem=10
BÀIGIẢNBÀIGIẢN
NGNG
SELECT
FROM HocSinh
WHERE NgaySinh = @NgaySinh
SELECT @DiaChi 123 , @Diem 10
SELECT *
FROM HocSinh JOIN DiemThi ON
HocSinh.MaHS = DiemThi.MaHS
WHERE DiaChi = @DiaChi AND DiemThi >=
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3939))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3939))
WHERE DiaChi @DiaChi AND DiemThi >
@Diem
UU
Cấu trúc điều khiển
Cấ t ú điề kiệ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc điều kiện
– Nếu (biểu thức điều kiện ) thì
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
• Lệnh/khối lệnh S
IF (bieu thuc dieu kien)IF (bieu thuc dieu kien)
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
BEGIN
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh P
BEGIN
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh P
DKDK
SS
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
//Lenh/khoi lenh P//Lenh/khoi lenh P
SS
ĐĐ
BÀIGIẢNBÀIGIẢN
NGNG
PP
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4040))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4040))4040
UU
Cấu trúc điều khiển
Cấ t ú điề kiệ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc điều kiện
– Ví dụ tìm Max trong 2 số a, b
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
DECLARE @a,@b, @Max INT
SET @Max = @a
IF (@a<@b)
DECLARE @a,@b, @Max INT
SET @Max = @a
IF (@a<@b)
Max = a;Max = a;
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
IF (@a<@b)
BEGIN
SET @Max = @b
END
IF (@a<@b)
BEGIN
SET @Max = @b
END a < ba < b
SS
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
PRINT @MAXPRINT @MAX
M bM b
ĐĐ
BÀIGIẢNBÀIGIẢN
NGNG
Max = b;Max = b;
cout<<…cout<<…
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4141))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4141))4141
UU
Cấu trúc điều khiển
Cấ t ú điề kiệ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc điều kiện
– Nếu (biểu thức điều kiện ) thì
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
• Lệnh/khối lệnh S1
– Ngược lại
• Lệnh/khối lệnh S2
DKDK
SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
• Lệnh/khối lệnh S2
IF (bieu thuc dieu kien)
BEGIN
// /
IF (bieu thuc dieu kien)
BEGIN
// /
S1S1
ĐĐ
S2S2
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
//Lenh/Khoi lenh S1
END
ELSE
BEGIN
//Lenh/Khoi lenh S1
END
ELSE
BEGIN
PP
BÀIGIẢNBÀIGIẢN
NGNG
G
//Lenh/khoi lenh S2
END
//Lenh/khoi lenh P
G
//Lenh/khoi lenh S2
END
//Lenh/khoi lenh P
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4242))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4242))4242
UU
Cấu trúc điều khiển
Cấ t ú điề kiệ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc điều kiện
– Ví dụ tìm Max trong 2 số a, b
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
DECLARE @a,@b, @Max INT
IF (@a>@b)
BEGIN
DECLARE @a,@b, @Max INT
IF (@a>@b)
BEGIN
bb
SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
SELECT @Max = @a
END
else
BEGIN
SELECT @Max = @a
END
else
BEGIN
a>ba>b
ĐĐ
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BEGIN
SELECT @Max=@b
END
PRINT @MAX
BEGIN
SELECT @Max=@b
END
PRINT @MAX
Max=a;Max=a; Max=b;Max=b;
BÀIGIẢNBÀIGIẢN
NGNG
cout<<…cout<<…
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4343))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4343))4343
UU
Cấu trúc điều khiển
Cấ t ú h
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc chọn
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Phái = 0 ?
Phái = 1 ?
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4444))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4444))
UU
Cấu trúc điều khiển
• Cấu trúc chọn
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc chọn
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Phái = 0 ?
Phái = 1 ?
CASE PHAI
WHEN 0 THEN ‘NAM’
WHEN 1 THEN ‘NỮ’
END
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Phái =
BÀIGIẢNBÀIGIẢN
NGNG
NAM, NỮ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4545))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4545))
UU
Cấu trúc điều khiển
Cấ t ú h
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc chọn
CASE [TÊN THUỘC TÍNH]
WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1]
CASE [TÊN THUỘC TÍNH]
WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1]
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1]
WHEN [GIÁ TRỊ 2] THEN [KẾT QUẢ 2]
….
WHEN [GIÁ TRỊ N] THEN [KẾT QUẢ N]
ELSE [KẾT QUẢ N 1]
WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1]
WHEN [GIÁ TRỊ 2] THEN [KẾT QUẢ 2]
….
WHEN [GIÁ TRỊ N] THEN [KẾT QUẢ N]
ELSE [KẾT QUẢ N 1]
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
ELSE [KẾT QUẢ N+1]
END AS [ALIAS]
ELSE [KẾT QUẢ N+1]
END AS [ALIAS]
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
[ ][ ]
CASE PHAICASE PHAI
BÀIGIẢNBÀIGIẢN
NGNG
CASE PHAI
WHEN 0 THEN ‘NAM’
WHEN 1 THEN ‘NỮ’
END AS PHAISV
CASE PHAI
WHEN 0 THEN ‘NAM’
WHEN 1 THEN ‘NỮ’
END AS PHAISV
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4646))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4646))
UU
Cấu trúc điều khiển
Cấ t ú h
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc chọn
[ALIAS] =
CASE
[ALIAS] =
CASE
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
CASE
WHEN [BIỂU THỨC LOGIC 1] THEN [KẾT QUẢ 1]
WHEN [BIỂU THỨC LOGIC 2] THEN [KẾT QUẢ 2]
….
WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N]
CASE
WHEN [BIỂU THỨC LOGIC 1] THEN [KẾT QUẢ 1]
WHEN [BIỂU THỨC LOGIC 2] THEN [KẾT QUẢ 2]
….
WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N]
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N]
ELSE [KẾT QUẢ N+1]
WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N]
ELSE [KẾT QUẢ N+1]
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
ENDEND
BÀIGIẢNBÀIGIẢN
NGNG
‘PHAIV’ =
CASE
WHEN PHAI = 0 THEN ‘NAM’
Ữ
‘PHAIV’ =
CASE
WHEN PHAI = 0 THEN ‘NAM’
Ữ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4747))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4747))
WHEN PHAI = 1 THEN ‘NỮ’
END
WHEN PHAI = 1 THEN ‘NỮ’
END
UU
Cấu trúc điều khiểnSỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
Phái = 0 ?
Phái = 1 ?
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
Phái = NAM, NỮ
BÀIGIẢNBÀIGIẢN
NGNG
Phái = NAM, NỮ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4848))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4848))
UU
Cấu trúc điều khiển
Cấ t ú lặ
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc lặp
– Cấu trúc while
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
• Ví dụ:
– Viết chương trình tính tổng s= 1+2+..+n
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
g g
– Viết chương trình tính tổng s= 1+3+..+2n-1
– Viết chương trình tính tổng s= 2+4+..+2n
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4949))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4949))4949
UU
Cấu trúc điều khiển
Cấ t ú lặ hil
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc lặp while
WHILE (bieuthuc logic)
BEGIN
WHILE (bieuthuc logic)
BEGIN
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh sau while
//Lenh/Khoi lenh S
END
//Lenh/khoi lenh sau while
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
• Ví dụ
– Viết chương trình tính tổng s= 1+2+ +n
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
– Viết chương trình tính tổng s= 1+2+..+n
DECLARE @i,@S INT
SELECT @i=1,@s=0
while(@i<=@n)
DECLARE @i,@S INT
SELECT @i=1,@s=0
while(@i<=@n)
BÀIGIẢNBÀIGIẢN
NGNG
while(@i< @n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
while(@i< @n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5050))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5050))
END
PRINT @S
END
PRINT @S
UU
Cấu trúc điều khiển
Cấ t ú lặ hil
SỞDỮLiỆSỞDỮLiỆUU
SQLSQL
• Cấu trúc lặp while
s=0s=0
DECLARE @i,@S INT
SELECT @i=1,@s=0
hil (@i @ )
DECLARE @i,@S INT
SELECT @i=1,@s=0
hil (@i @ )
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
ii 11
s 0s 0while(@i<=@n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
while(@i<=@n)
BEGIN
SELECT @s = @s+@i;
SELECT @i = @i+1;
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
ii=1=1END
PRINT @S
END
PRINT @S
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
ii<=n<=n
ĐĐ
SS
ii++++
BÀIGIẢNBÀIGIẢN
NGNG
s=s=s+is+i cout<<…cout<<…
ĐĐ
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))5151
UUSỞDỮLiỆSỞDỮLiỆUU
SQLSQL
NTRỊCƠSNTRỊCƠS
TRÌNHTTRÌNHT--SS
HẦNQuẢNHẦNQuẢN
ỮLẬPTỮLẬPT
NGNGHỌCPHHỌCPH
GÔNNGỮGÔNNGỮ
BÀIGIẢNBÀIGIẢN
NGNG
TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))5252 52

More Related Content

Viewers also liked (8)

Db 01
Db 01Db 01
Db 01
 
Db 10
Db 10Db 10
Db 10
 
Db 04
Db 04Db 04
Db 04
 
Db 11
Db 11Db 11
Db 11
 
Db 06
Db 06Db 06
Db 06
 
Chuỗi số tăng dần lớn nhất
Chuỗi số tăng dần lớn nhấtChuỗi số tăng dần lớn nhất
Chuỗi số tăng dần lớn nhất
 
Db 07
Db 07Db 07
Db 07
 
Db 03
Db 03Db 03
Db 03
 

Similar to Db 09 (7)

Db 02
Db 02Db 02
Db 02
 
Thông tin tuyển sinh khu vực TP HCM
Thông tin tuyển sinh khu vực TP HCMThông tin tuyển sinh khu vực TP HCM
Thông tin tuyển sinh khu vực TP HCM
 
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí MinhThông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
Thông tin tuyển sinh các trường ĐH-CĐ Thành phố Hồ Chí Minh
 
2. thong tin ts dh, cd thanh pho hcm
2. thong tin ts dh, cd thanh pho hcm2. thong tin ts dh, cd thanh pho hcm
2. thong tin ts dh, cd thanh pho hcm
 
Thông tin tuyển sinh các trường Đại học - Cao Đẳng tại TP.Hồ Chí Minh
Thông tin tuyển sinh các trường Đại học - Cao Đẳng tại TP.Hồ Chí MinhThông tin tuyển sinh các trường Đại học - Cao Đẳng tại TP.Hồ Chí Minh
Thông tin tuyển sinh các trường Đại học - Cao Đẳng tại TP.Hồ Chí Minh
 
danh sach trương dh, cd tai hcm
danh sach trương dh, cd tai hcmdanh sach trương dh, cd tai hcm
danh sach trương dh, cd tai hcm
 
danh sach trương dh, cd tai hcm
danh sach trương dh, cd tai hcmdanh sach trương dh, cd tai hcm
danh sach trương dh, cd tai hcm
 

Db 09

  • 1. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học NGÔN NGỮ LẬPNGÔN NGỮ LẬP TRÌNH TTRÌNH T SQLSQLTRÌNH TTRÌNH T--SQLSQL Trần Ngọc Bảo Email: tnbao.dhsp@gmail.com
  • 2. UU NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (22))
  • 3. UU NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (33))
  • 4. UU NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL SELECT <D h á h á ột đ h > SỞDỮLiỆSỞDỮLiỆUU SQLSQL SELECT <Danh sách các cột được chọn> FROM < Danh sách các bảng> WHERE <Điều kiện chọn> GROUP BY <Danh sách cột cần nhóm> NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS ộ HAVING < Điều kiện nhóm> ORDER BY < Danh sách cột cần sắp xếp> Vd1: Cho quan hệ HocSinh(MaHS, TenHS, NgaySinh, DiaChi) HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Vd1: Cho quan hệ HocSinh(MaHS, TenHS, NgaySinh, DiaChi) Yêu cầu Liệt kê tên và ngày sinh của tất cả các học sinh SELECT TenHS, NgaySinh FROM HocSinh NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ FROM HocSinh Vd2 : Cho quan hệ HoaDon(MaHD, TenKH, SoLuong, DonGia) Yêu cầu Liệt kê Hoá đơn của khách hàng và Thuế VAT của hóa đơn đó với VAT được tính bằng như sau: VAT = số lượng * đơn giá * 10% BÀIGIẢNBÀIGIẢN NGNG với VAT được tính bằng như sau: VAT số lượng đơn giá 10% Nhận xét: Thuế VAT không phải là filed trong DB, nó là kết quả của biểu thức SoLuong * DonGia * 10% SELECT MaHD TenKH Soluong * DonGia * 0 1 as VAT TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (44)) SELECT MaHD, TenKH, Soluong DonGia 0.1 as VAT FROM HoaDon
  • 5. UU NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL Câu lệnh INSERT SỞDỮLiỆSỞDỮLiỆUU SQLSQL Câu lệnh INSERT Cú pháp INSERT INTO < TableName> <ColumnList> VALUES < Value1, Value2,... > NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Ví dụ: Cho quan hệ HocSinh(MaHS, TenHS, NgaySinh, DiaChi) Yêu cầu : Thêm bộ sau vào Table học sinh (‘001’ ’Nguyen Van HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Yêu cầu : Thêm bộ sau vào Table học sinh ( 001 , Nguyen Van A’,’08/20/2002’,’a’) INSERT INTO HocSinh VALUES (‘001’,’Nguyen Van A’,’08/20/2002’,’a’) NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (55))
  • 6. UU NGÔN NGỮ LẬP TRÌNH T-SQLNGÔN NGỮ LẬP TRÌNH T-SQL Câu lệnh UPDATE SỞDỮLiỆSỞDỮLiỆUU SQLSQL Câu lệnh UPDATE Cú pháp UPDATE < Tên bảng> SET Tên cột 1 = giá trị , NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Tên cột = giá trị , ... WHERE < điều kiện> HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Câu lệnh DELETE Cú pháp DELETE FROM < Tên bảng> WHERE < điều kiện> NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ WHERE < điều kiện> BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (66))
  • 7. UU SQL Server Object - ViewsSQL Server Object - Views SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (77))
  • 8. UU VIEW – BẢNG ẢO Vi ó thể đượ hư là ột SỞDỮLiỆSỞDỮLiỆUU SQLSQL • View có thể được xem như là một bảng (table) ảo. NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS • View có cấu trúc tương tự như Table, gồm có các thuộc tính; tập ộ í à ó ể ế HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT thuộc tính này có thể được kết hợp từ một hay nhiều table/view khác. NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ • Thông thường, View được sử dụng trong các câu truy vấn con BÀIGIẢNBÀIGIẢN NGNG g y (subquery), trong store procedure hoặc trong các báo biểu thống kê TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (88))88 Copyright © 1997 by Rational Software Corporation ặ g g (report)
  • 9. UU VIEW – BẢNG ẢO SỞDỮLiỆSỞDỮLiỆUU SQLSQL CREATE VIEW TENVIEW AS [CÂU LỆNH TRUY VẤN DỮ LIỆU] NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS [CÂU LỆNH TRUY VẤN DỮ LIỆU] CREATE VIEW V1 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT CREATE VIEW V1 AS SELECT MASV,HOTEN, NGAYSINH, MANGANH NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ FROM SINHVIEN WHERE PHAI = ‘NAM’ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (99))
  • 10. UU VIEW – Bảng ảo MASV HOTEN NGAYSINH MaNganh SỞDỮLiỆSỞDỮLiỆUU SQLSQL MASV HOTEN NGAYSINH MaNganh K29.101.001 Nguyen Cong Phu 10/10/1979 SP101 K29.101.002 Phan Anh Khanh 1/10/1979 SP101 NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS K29.101.002 Phan Anh Khanh 1/10/1979 K29.103.001 Han Quoc Viet 3/2/1979 SP103 K29.103.002 Pham Khanh Nhu 10/12/1979 SP103 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT K29.201.001 Ly Thanh 3/8/1979 SP201 K29.201.002 Tran Ngoc Dung 4/5/1979 SP201 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ K29.104.001 Ho Anh Thu 1/4/1979 SP104 SELECT MASV, HO + ‘ ’ + TEN as HoTen, NGAYSINH, MANGANH FROM SINHVIEN BÀIGIẢNBÀIGIẢN NGNG FROM SINHVIEN CREATE VIEW vSVien AS SELECT MASV HO + ‘ ’ + TEN as HoTen NGAYSINH NGAYSINH TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1010)) SELECT MASV, HO + + TEN as HoTen, NGAYSINH, NGAYSINH FROM SINHVIEN vSVien chính làvSVien chính là VIEWVIEW
  • 11. UU Truy vấn thông tin NGANH (MANGANH, TENNGANH, SOCD, TSSV) SỞDỮLiỆSỞDỮLiỆUU SQLSQL MASV HO TEN PHAI NGAYSINH MANGA NH K29.101. 001 Nguyen Cong Phu Nam 10/10/1979 SP101 K29 101 Ph A h Kh h N 1/10/1979 SP101 MANGANH TENNGANH SOCD TSSV SP103 Sư Phạm Tin học 8 800 SP101 Sư Phạm Toán 5 1000 NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS K29.101. 002 Phan Anh Khanh Nu 1/10/1979 SP101 K29.103. 001 Han Quoc Viet Nam 3/2/1979 SP103 K29.103. 002 Pham Khanh Nhu Nu 10/12/1979 SP103 SP101 Sư Phạm Toán 5 1000 SP201 Sư Phạm Hóa 3 1500 SP102 Sư Phạm Lý 4 1200 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT K29.201. 001 Ly Thanh Nam 3/8/1979 SP201 K29.201. 002 Tran Ngoc Dung Nu 4/5/1979 SP201 K29 104 Ho Anh Thu Nu 1/4/1979 SP104 CNTT Khoa học máy tính 8 160 SP104 Sư Phạm Sinh 6 1000 SP105 Sư h A h 2 1100 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ K29.104. 001 Ho Anh Thu Nu 1/4/1979 SP104 SP105 Sư phạm Anh 2 1100 Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH) sinh viên BÀIGIẢNBÀIGIẢN NGNG SELECT MASV, HO + ‘ ’ + TEN as HoTen, NGAYSINH, TENNGANH FROM SINHVIEN JOIN NGANH ON SINHVIEN.MANGANH = TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1111)) NGANH.MANGANH
  • 12. UU Truy vấn thông tin từ View Kết quả truy vấn từ: vSVien SỞDỮLiỆSỞDỮLiỆUU SQLSQL MANGANH TENNGANH SOCD TSSV SP103 Sư Phạm Tin học 8 800 MASV HOTEN NGAYSINH MaNganh K29.101.001 Nguyen Cong Phu 10/10/1979 SP101 Kết quả truy vấn từ: vSVien NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS SP101 Sư Phạm Toán 5 1000 SP201 Sư Phạm Hóa 3 1500 SP102 Sư Phạm Lý 4 1200 K29.101.002 Phan Anh Khanh 1/10/1979 SP101 K29.103.001 Han Quoc Viet 3/2/1979 SP103 K29 103 002 Pham Khanh Nhu 10/12/1979 SP103 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT SP102 Sư Phạm Lý 4 1200 CNTT Khoa học máy tính 8 160 SP104 Sư Phạm Sinh 6 1000 K29.103.002 Pham Khanh Nhu 10/12/1979 SP103 K29.201.001 Ly Thanh 3/8/1979 SP201 K29.201.002 Tran Ngoc Dung 4/5/1979 SP201 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ SP105 Sư phạm Anh 2 1100 Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh, TENNGANH) sinh viên K29.104.001 Ho Anh Thu 1/4/1979 SP104 BÀIGIẢNBÀIGIẢN NGNG sinh viên SELECT MASV, HoTen, NGAYSINH, TENNGANH FROM vSVIEN JOIN NGANH ON SVIEN MANGANH = TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1212)) FROM vSVIEN JOIN NGANH ON SVIEN.MANGANH NGANH.MANGANH
  • 13. UU ầ ấ VIEW & SUBQUERYSỞDỮLiỆSỞDỮLiỆUU SQLSQL Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh) sinh viên Nam thuộc ngành “Sư phạm Tin học” MASV HOTEN PHAI NGAYSINH MANGANH MANGANH TENNGANH SOCD TSSV NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS K29.101.001 Nguyen Cong Phu Nam 10/10/1979 SP101 K29.101.002 Phan Anh Khanh Nu 1/10/1979 SP101 K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103 SP103 Sư Phạm Tin học 8 800 SP101 Sư Phạm Toán 5 1000 SP201 Sư Phạm Hóa 3 1500 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT K29.103.001 Han Quoc Viet Nam 3/2/1979 SP103 K29.103.002 Pham Khanh Nhu Nu 10/12/1979 SP103 K29.201.001 Ly Thanh Nam 3/8/1979 SP201 SP102 Sư Phạm Lý 4 1200 CNTT Khoa học máy tính 8 160 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ K29.201.002 Tran Ngoc Dung Nu 4/5/1979 SP201 K29.104.001 Ho Anh Thu Nu 1/4/1979 SP104 SP104 Sư Phạm Lý 6 1000 SP105 Sư phạm Anh 2 1100 BÀIGIẢNBÀIGIẢN NGNG MASV HOTEN NGAYSINH K29.103.001 Han Quoc Viet 3/2/1979 Kết quả truy vấn: 1 dòng TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1313))1313 K29.103.001 Han Quoc Viet 3/2/1979
  • 14. UU View & SubQuery ầ ấ SỞDỮLiỆSỞDỮLiỆUU SQLSQL 3 Cách 3: Yêu cầu truy vấn: Liệt kê danh sách (MaSV, HoTen, NgaySinh) sinh viên Nam thuộc ngành “Sư phạm Tin học” NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS 3. Cách 3: SELECT MASV, HOTEN, NGAYSINH FROM (SELECT MASV,HOTEN, NGAYSINH, MANGANH HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT ( , , , FROM SINHVIEN WHERE PHAI = ‘NAM’) AS SV JOIN (SELECT MANGANH FROM NGANH NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ FROM NGANH WHERE TENNGANH = ‘Sư phạm Tin học’) AS N ON SV.MANGANH = N.MANGANH BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1414))1414
  • 15. UU View & SubQuery SELECT MASV, HOTEN, NGAYSINH SỞDỮLiỆSỞDỮLiỆUU SQLSQL FROM (SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = ‘NAM’) AS SV JOIN (SELECT MANGANH FROM NGANH NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS WHERE TENNGANH = ‘Sư phạm Tin học’) AS N ON SV.MANGANH = N.MANGANH Tạo View V1 bằng cách chọnTạo View V1 bằng cách chọn các dòngcác dòng [MASV HOTEN[MASV HOTEN CREATE VIEW V1 AS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT các dòngcác dòng [MASV, HOTEN,[MASV, HOTEN, NGAYSINH, MANGANH]NGAYSINH, MANGANH] cócó thuộc tínhthuộc tính PHAI = ‘NAM’PHAI = ‘NAM’ trongtrong quan hệquan hệ SINHVIENSINHVIEN S SELECT MASV,HOTEN, NGAYSINH, MANGANH FROM SINHVIEN WHERE PHAI = ‘NAM’ NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Tạo View V2 bằng cách chọnTạo View V2 bằng cách chọn các dòngcác dòng [MANGANH][MANGANH] có thuộccó thuộc tính TENNGANHtính TENNGANH = ‘Sư phạm= ‘Sư phạm CREATE VIEW V2 AS SELECT MANGANH FROM NGANH BÀIGIẢNBÀIGIẢN NGNG Tin học’Tin học’ trong quan hệtrong quan hệ NGANHNGANH WHERE TENNGANH = ‘Sư phạm Tin học’ SELECT MASV, HOTEN, NGAYSINH FROM V1 JOIN V2 TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1515)) FROM V1 JOIN V2 ON V1.MANGANH = V2.MANGANH
  • 16. UU Tạo View trong SQL Server Tạo View bằng công cụ Studio Management SỞDỮLiỆSỞDỮLiỆUU SQLSQL Vùng biểu các table, view tham gia vào câu truy vấn ạo e bằ g cô g cụ Stud o a age e t NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS ể HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Vùng để nhập câu truy vấn NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Vùng hiển thị kết ấ BÀIGIẢNBÀIGIẢN NGNG quả truy vấn Vùng biểu diễn phép chọn, chiếu,…trong câu truy vấn TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1616)) y
  • 17. UU Tạo View trong SQL Server Tạo View bằng lệnh CREATE VIEW từ New Query/Query Analyzer SỞDỮLiỆSỞDỮLiỆUU SQLSQL ạo e bằ g ệ C từ e Que y/Que y a y e NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Nhập lệnh CREATE VIEW để tạo View trong cửa sổ NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ để tạo View trong cửa sổ New Query/Query Analyzer BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1717))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1717))
  • 18. Đại Học Sư Phạm Tp. Hồ Chí Minh Khoa Toán – Tin Học CƠ SỞ DỮ LIỆUCƠ SỞ DỮ LIỆU • Stored Procedure - Thủ tục nội
  • 19. Tương tác dữ liệu: thêm, xóa,... Lấy dữ liệuLấy dữ liệu Thêm dữ liệu Tran Ngoc BaoTran Ngoc Bao DaiDai hoc Su Pham TP.HCMhoc Su Pham TP.HCMTRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (1919)) Xóa dữ liệu Sửa dữ liệu
  • 20. UU Tương tác dữ liệu: thêm, xóa,...SỞDỮLiỆSỞDỮLiỆUU SQLSQL Thêm dữ liệu INSERT NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Cập nhật dữ liệu UPDATE HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Xóa dữ liệu DELETE NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Lấy dữ liệu SELECT BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2020))
  • 21. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Thêm, xóa, sửa, truy vấn BÀIGIẢNBÀIGIẢN NGNG y dữ liệu trong table Khoa thực hiện như thế nào ? TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2121))
  • 22. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS TRUY VẤN TOÀN BỘ HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT TRUY VẤN TOÀN BỘ DỮ LiỆU TRONG TABLE KHOA NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2222))
  • 23. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored ProcedureSỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS TẠO PROCEDURE TRUY VẤN TOÀN BỘ HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT TRUY VẤN TOÀN BỘ DỮ LiỆU TRONG TABLE KHOA NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG THỰC THI PROCEDURE TRUY VẤN TOÀN BỘ DỮ LiỆU TRONG TABLE TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2323))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2323)) LiỆU TRONG TABLE KHOA
  • 24. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Thêm mới dữ liệu vào Table KHOA BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2424))
  • 25. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Tạo STORE PROCEDURE BÀIGIẢNBÀIGIẢN NGNG Tạo STORE PROCEDURE để thêm mới dữ liệu vào Table KHOA TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2525))
  • 26. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Thực thi thủ tục SP_THEM_KHOA để HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT thêm mới dữ liệu vào Table KHOA NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Thực thi thủ tục SP THEM KHOA để BÀIGIẢNBÀIGIẢN NGNG SP_THEM_KHOA để thêm mới dữ liệu vào Table KHOA TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2626))
  • 27. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL Khái niệm Stored Procedure là các thủ tục được xây dựng để thực hiện các xử lý liên quan đến việc dữ liệu: SELECT INSERT DELETE UPDATE NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS liên quan đến việc dữ liệu: SELECT, INSERT, DELETE, UPDATE,... Stored Procedure được lưu trữ và thi hành ngay trong Server khi có yêu cầu. HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Các thao tác liên quan đến Stored Procedure Tạo Stored Procedure NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Mở DB cần tạo table bằng cách click vào dấu + bên trái tên của DB để hiển thị các mục con trong DB. Ví dụ: Diagrams, Tables, Views, Stored procedure,… BÀIGIẢNBÀIGIẢN NGNG Click phải chuột vào mục Stored procedures Chọn chức năng New Stored procedure… trong menu sổ xuống, xuất hiện dialog soạn thảo nội dung của stored TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2727)) g g g
  • 28. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure Tạo Stored Procedure SỞDỮLiỆSỞDỮLiỆUU SQLSQL Tạo Stored Procedure Đặt tên Stored trong [PROCEDURE NAME] Viết nội dung stored Sau khi viết xong nội dung xử lý trong stored ấ C S ể ể ủ NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Nhấn Check Syntax: để kiểm tra cú pháp của các câu lệnh trong stored Nhấn OK: Lưu stored Nhấn Cancel: hủy bỏ thao tác tạo Sử S d P d HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Sửa Stored Procedure Click vào mục Stored procedures để hiển thị danh sách Stored procedure tương ứng (bên phải) Chọn Stored procedure trong danh sách Stored procedures Cli k hải h ột à St d d ầ ử d M St dP NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Click phải chuột vào mục Stored procedure cần sửa, vd: MyStoredPro Chọn mục Properties trong menu context Xuất hiện màn hình tương tự như màn hình Stored procedure Thực hiện các thao tác tương tự như phần tạo Xó St d P d BÀIGIẢNBÀIGIẢN NGNG Xóa Stored Procedure Click vào mục Stored procedures để hiển thị danh sách Stored procedure tương ứng (bên phải) Chọn Stored procedure trong danh sách Stored procedure Cli k hải h ột à St d d ầ ó d M St dP TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2828)) Click phải chuột vào mục Stored procedure cần xóa, vd: MyStoredPro Chọn mục Delete trong menu context
  • 29. UU Stored Procedure trong SQL Server 2000Stored Procedure trong SQL Server 2000 SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (2929))
  • 30. UU Stored Procedure - trong SQL Server 2005Stored Procedure - trong SQL Server 2005 SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3030))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3030))
  • 31. UU Stored Procedure - trong SQL Server 2005Stored Procedure - trong SQL Server 2005 SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Thông tin chú thích HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Tên thủ tục NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Danh sách tham số BÀIGIẢNBÀIGIẢN NGNG tham số Các câu lệnh T-SQL: SELECT, INSERT, TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3131))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3131)) SELECT, INSERT, DELETE, UPDATE,…
  • 32. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure Cấu trúc của một Stored Procedure bao gồm các phần chính sau đây SỞDỮLiỆSỞDỮLiỆUU SQLSQL Cấu trúc của một Stored Procedure bao gồm các phần chính sau đây Phần Tên Cú pháp CREATE PROCEDURE StoredName Ý nghĩa NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Ý nghĩa Định nghĩa thủ tục nội với tên là StoredName Ví dụ CREATE PROCEDURE DemNhanVien AS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT AS SELECT Count(*) FROM NhanVien Phần tham số Tương tự như bất kỳ một thủ tục nào trong một ngôn ngữ lập trình phần tham NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Tương tự như bất kỳ một thủ tục nào trong một ngôn ngữ lập trình, phần tham số của một Stored được khai báo ngay sau phần tên của nó. Tham số nhập Cú pháp: BÀIGIẢNBÀIGIẢN NGNG Cú pháp: @Parameter1 DataType [=DefaultValue] @Parameter1: Tên của biến số DataType: Kiểu dữ liệu của biến DefaultValue: Giá trị mặc định của biến TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3232))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3232)) DefaultValue: Giá trị mặc định của biến
  • 33. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure CREATE PROCEDURE StoredName SỞDỮLiỆSỞDỮLiỆUU SQLSQL CREATE PROCEDURE StoredName @Parameter1 DataType [=DefaultValue,] @Parameter2 DataType OUTPUT, @Parameter3 DataType OUTPUT NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS @Parameter3 DataType OUTPUT AS BEGIN BEGIN TRANSACTION HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT BEGIN TRANSACTION {T-SQL Statement1} If @Error <> 0 Goto Err_Handle NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ {T-SQL Statement2} If @Error <> 0 Goto Err_Handle COMMIT TRANSACTION BÀIGIẢNBÀIGIẢN NGNG COMMIT TRANSACTION Return(0) Err_Handle: ROLLBACK TRANSACTION R t (@E ) TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3333))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3333)) Return(@Error) END
  • 34. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure CREATE PROCEDURE T Th S SỞDỮLiỆSỞDỮLiỆUU SQLSQL CREATE PROCEDURE TruyenThamSo @param0 int=NULL, -- Giá trị mặc định là NULL @param1 int=1, -- Giá trị mặc định là 1 @param2 int=2 -- Giá trị mặc định là 2 NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Với câu lệnh thực thi thủ tục TruyenThamSo @p ị ặ ị AS SELECT @param0, @param1, @param2 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Với câu lệnh thực thi thủ tục TruyenThamSo EXEC TruyenThamSo Kết quả (Null) 1 2 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ EXEC TruyenThamSo 10,20,30 Kết quả 10 20 30 EXEC TruyenThamSo @param2=200 @param1=NULL BÀIGIẢNBÀIGIẢN NGNG EXEC TruyenThamSo @param2=200, @param1=NULL Kết quả Null Null 200 EXEC TruyenThamSo 0, DEFAULT, 20 ế ả TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3434))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3434)) Kết quả 0 1 200
  • 35. UU SQL Server Object – Stored ProcedureSQL Server Object – Stored Procedure Tham số ất SỞDỮLiỆSỞDỮLiỆUU SQLSQL Tham số xuất Cú pháp: @Parameter1 DataType OUTPUT @Parameter1: Tên của biến số NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS @Parameter1: Tên của biến số DataType: Kiểu dữ liệu của biến DefaultValue: Giá trị mặc định của biến Ví dụ: Kh i bá thủ t HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT --Khai báo thủ tục CREATE PROCEDURE count_tables @authorcount int OUTPUT, @titlecount int OUTPUT AS NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ SELECT * FROM authors SET @authorcount=@@ROWCOUNT SELECT * FROM titles SET @titlecount=@@ROWCOUNT BÀIGIẢNBÀIGIẢN NGNG SET @titlecount=@@ROWCOUNT RETURN(0) --Thực thi thủ tục DECLARE @a_count int, @t_count int TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3535))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3535)) EXEC count_tables @a_count OUTPUT, @t_count OUTPUT
  • 36. UU KHAI BÁO BIẾNKHAI BÁO BIẾN SỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3636))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3636))
  • 37. UU ế KHAI BÁO BIẾNKHAI BÁO BIẾN SỞDỮLiỆSỞDỮLiỆUU SQLSQL Khai báo biến Cú pháp DECLARE @Name DataType @Name: là tên của biến phải được bắt đầu với ký tự @ NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS @Name: là tên của biến, phải được bắt đầu với ký tự @ DataType: kiểu dữ liệu của biến, bao gồm tất cả các kiểu dữ liệu của hệ thống trừ các kiểu sau: text, ntext, image. Ví dụ HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT --Khai báo biến lưu trữ số Record trong một Table nào đó DECLARE @nNumRecord int --Khai báo biến lưu trữ số tổng số tiền DECLARE @SumMoney decimal(18 2) NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ DECLARE @SumMoney decimal(18,2) --Khai báo biến lưu trữ tên DECLARE @sName char(30) BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3737))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3737))
  • 38. UU GÁN GIÁ TRỊ CHO BIẾNGÁN GIÁ TRỊ CHO BIẾNSỞDỮLiỆSỞDỮLiỆUU SQLSQL Cú pháp 1: SET @Name = Value @Name: Tên biến V l Giá t ị ầ á h biế Ví dụ Cú pháp 1: DECLARE @HoTen char(20) ễ NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS Value: Giá trị cần gán cho biến Cú pháp 2: SELECT @Name = Value @Name: Tên biến V l Giá t ị ầ á h biế SET @HoTen = ‘Nguyễn Công Phú’ Cú pháp 2: DECLARE @HoTen char(20) SELECT @HoTen = ‘Nguyễn Công Phú’ HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Value: Giá trị cần gán cho biến Hoặc SELECT @Name = coloum FROM TableName @N Tê biế hoặc --Tìm lương lớn nhất của tất cả các nhân viên DECLARE @MaxSalary decimal(18,2) NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ @Name: Tên biến Column: Tên cột trong Table cần gán cho biến SELECT @MaxSalary = MAX(Salary) FROM Employee BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3838))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3838))
  • 39. UU SQL Server Object – Local VariablesSQL Server Object – Local Variables Các biến được sử dụng trong cấu truy vấn như là các tham số. SỞDỮLiỆSỞDỮLiỆUU SQLSQL Các biến được sử dụng trong cấu truy vấn như là các tham số. -Cho lược đồ CSDL và dữ liệu tương ứng như sau: HocSinh DiemThi NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS MaHS TenHS NgaySinh DiaChi MaHS HocKy NH Diem 01 Bao 10/10/1977 123 01 01 2001 10 HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT 02 Phu 11/10/1079 124 03 01 2002 8 Ví dụ: Liệt kê danh sách học sinh Ví dụ: Liệt kê danh sách các học sinh có địa NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ -Ví dụ: Liệt kê danh sách học sinh có ngày sinh vào ngày ‘10/10/1977’ DECLARE @NgaySinh datetime SET @NgaySinh=’10/10/1977’ SELECT * Ví dụ: Liệt kê danh sách các học sinh có địa chỉ là ‘123’ và điểm thi lớn hơn 10 DECLARE @DiaChi varchar(50), @Diem Decimal SELECT @DiaChi=’123’ @Diem=10 BÀIGIẢNBÀIGIẢN NGNG SELECT FROM HocSinh WHERE NgaySinh = @NgaySinh SELECT @DiaChi 123 , @Diem 10 SELECT * FROM HocSinh JOIN DiemThi ON HocSinh.MaHS = DiemThi.MaHS WHERE DiaChi = @DiaChi AND DiemThi >= TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3939))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (3939)) WHERE DiaChi @DiaChi AND DiemThi > @Diem
  • 40. UU Cấu trúc điều khiển Cấ t ú điề kiệ SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc điều kiện – Nếu (biểu thức điều kiện ) thì NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS • Lệnh/khối lệnh S IF (bieu thuc dieu kien)IF (bieu thuc dieu kien) HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT BEGIN //Lenh/Khoi lenh S END //Lenh/khoi lenh P BEGIN //Lenh/Khoi lenh S END //Lenh/khoi lenh P DKDK SS NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ //Lenh/khoi lenh P//Lenh/khoi lenh P SS ĐĐ BÀIGIẢNBÀIGIẢN NGNG PP TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4040))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4040))4040
  • 41. UU Cấu trúc điều khiển Cấ t ú điề kiệ SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc điều kiện – Ví dụ tìm Max trong 2 số a, b NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS DECLARE @a,@b, @Max INT SET @Max = @a IF (@a<@b) DECLARE @a,@b, @Max INT SET @Max = @a IF (@a<@b) Max = a;Max = a; HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT IF (@a<@b) BEGIN SET @Max = @b END IF (@a<@b) BEGIN SET @Max = @b END a < ba < b SS NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ PRINT @MAXPRINT @MAX M bM b ĐĐ BÀIGIẢNBÀIGIẢN NGNG Max = b;Max = b; cout<<…cout<<… TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4141))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4141))4141
  • 42. UU Cấu trúc điều khiển Cấ t ú điề kiệ SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc điều kiện – Nếu (biểu thức điều kiện ) thì NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS • Lệnh/khối lệnh S1 – Ngược lại • Lệnh/khối lệnh S2 DKDK SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT • Lệnh/khối lệnh S2 IF (bieu thuc dieu kien) BEGIN // / IF (bieu thuc dieu kien) BEGIN // / S1S1 ĐĐ S2S2 NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ //Lenh/Khoi lenh S1 END ELSE BEGIN //Lenh/Khoi lenh S1 END ELSE BEGIN PP BÀIGIẢNBÀIGIẢN NGNG G //Lenh/khoi lenh S2 END //Lenh/khoi lenh P G //Lenh/khoi lenh S2 END //Lenh/khoi lenh P TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4242))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4242))4242
  • 43. UU Cấu trúc điều khiển Cấ t ú điề kiệ SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc điều kiện – Ví dụ tìm Max trong 2 số a, b NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS DECLARE @a,@b, @Max INT IF (@a>@b) BEGIN DECLARE @a,@b, @Max INT IF (@a>@b) BEGIN bb SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT SELECT @Max = @a END else BEGIN SELECT @Max = @a END else BEGIN a>ba>b ĐĐ NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BEGIN SELECT @Max=@b END PRINT @MAX BEGIN SELECT @Max=@b END PRINT @MAX Max=a;Max=a; Max=b;Max=b; BÀIGIẢNBÀIGIẢN NGNG cout<<…cout<<… TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4343))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4343))4343
  • 44. UU Cấu trúc điều khiển Cấ t ú h SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc chọn NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Phái = 0 ? Phái = 1 ? NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4444))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4444))
  • 45. UU Cấu trúc điều khiển • Cấu trúc chọn SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc chọn NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Phái = 0 ? Phái = 1 ? CASE PHAI WHEN 0 THEN ‘NAM’ WHEN 1 THEN ‘NỮ’ END NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Phái = BÀIGIẢNBÀIGIẢN NGNG NAM, NỮ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4545))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4545))
  • 46. UU Cấu trúc điều khiển Cấ t ú h SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc chọn CASE [TÊN THUỘC TÍNH] WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1] CASE [TÊN THUỘC TÍNH] WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1] NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1] WHEN [GIÁ TRỊ 2] THEN [KẾT QUẢ 2] …. WHEN [GIÁ TRỊ N] THEN [KẾT QUẢ N] ELSE [KẾT QUẢ N 1] WHEN [GIÁ TRỊ 1] THEN [KẾT QUẢ 1] WHEN [GIÁ TRỊ 2] THEN [KẾT QUẢ 2] …. WHEN [GIÁ TRỊ N] THEN [KẾT QUẢ N] ELSE [KẾT QUẢ N 1] HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT ELSE [KẾT QUẢ N+1] END AS [ALIAS] ELSE [KẾT QUẢ N+1] END AS [ALIAS] NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ [ ][ ] CASE PHAICASE PHAI BÀIGIẢNBÀIGIẢN NGNG CASE PHAI WHEN 0 THEN ‘NAM’ WHEN 1 THEN ‘NỮ’ END AS PHAISV CASE PHAI WHEN 0 THEN ‘NAM’ WHEN 1 THEN ‘NỮ’ END AS PHAISV TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4646))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4646))
  • 47. UU Cấu trúc điều khiển Cấ t ú h SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc chọn [ALIAS] = CASE [ALIAS] = CASE NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS CASE WHEN [BIỂU THỨC LOGIC 1] THEN [KẾT QUẢ 1] WHEN [BIỂU THỨC LOGIC 2] THEN [KẾT QUẢ 2] …. WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N] CASE WHEN [BIỂU THỨC LOGIC 1] THEN [KẾT QUẢ 1] WHEN [BIỂU THỨC LOGIC 2] THEN [KẾT QUẢ 2] …. WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N] HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N] ELSE [KẾT QUẢ N+1] WHEN [BIỂU THỨC LOGIC N] THEN [KẾT QUẢ N] ELSE [KẾT QUẢ N+1] NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ ENDEND BÀIGIẢNBÀIGIẢN NGNG ‘PHAIV’ = CASE WHEN PHAI = 0 THEN ‘NAM’ Ữ ‘PHAIV’ = CASE WHEN PHAI = 0 THEN ‘NAM’ Ữ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4747))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4747)) WHEN PHAI = 1 THEN ‘NỮ’ END WHEN PHAI = 1 THEN ‘NỮ’ END
  • 48. UU Cấu trúc điều khiểnSỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT Phái = 0 ? Phái = 1 ? NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ Phái = NAM, NỮ BÀIGIẢNBÀIGIẢN NGNG Phái = NAM, NỮ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4848))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4848))
  • 49. UU Cấu trúc điều khiển Cấ t ú lặ SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc lặp – Cấu trúc while NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS • Ví dụ: – Viết chương trình tính tổng s= 1+2+..+n HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT g g – Viết chương trình tính tổng s= 1+3+..+2n-1 – Viết chương trình tính tổng s= 2+4+..+2n NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4949))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (4949))4949
  • 50. UU Cấu trúc điều khiển Cấ t ú lặ hil SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc lặp while WHILE (bieuthuc logic) BEGIN WHILE (bieuthuc logic) BEGIN NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS //Lenh/Khoi lenh S END //Lenh/khoi lenh sau while //Lenh/Khoi lenh S END //Lenh/khoi lenh sau while HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT • Ví dụ – Viết chương trình tính tổng s= 1+2+ +n NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ – Viết chương trình tính tổng s= 1+2+..+n DECLARE @i,@S INT SELECT @i=1,@s=0 while(@i<=@n) DECLARE @i,@S INT SELECT @i=1,@s=0 while(@i<=@n) BÀIGIẢNBÀIGIẢN NGNG while(@i< @n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; while(@i< @n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5050))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5050)) END PRINT @S END PRINT @S
  • 51. UU Cấu trúc điều khiển Cấ t ú lặ hil SỞDỮLiỆSỞDỮLiỆUU SQLSQL • Cấu trúc lặp while s=0s=0 DECLARE @i,@S INT SELECT @i=1,@s=0 hil (@i @ ) DECLARE @i,@S INT SELECT @i=1,@s=0 hil (@i @ ) NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS ii 11 s 0s 0while(@i<=@n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; while(@i<=@n) BEGIN SELECT @s = @s+@i; SELECT @i = @i+1; HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT ii=1=1END PRINT @S END PRINT @S NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ ii<=n<=n ĐĐ SS ii++++ BÀIGIẢNBÀIGIẢN NGNG s=s=s+is+i cout<<…cout<<… ĐĐ TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5151))5151
  • 52. UUSỞDỮLiỆSỞDỮLiỆUU SQLSQL NTRỊCƠSNTRỊCƠS TRÌNHTTRÌNHT--SS HẦNQuẢNHẦNQuẢN ỮLẬPTỮLẬPT NGNGHỌCPHHỌCPH GÔNNGỮGÔNNGỮ BÀIGIẢNBÀIGIẢN NGNG TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))TRẦN NGỌC BẢOTRẦN NGỌC BẢO KHOA TOÁNKHOA TOÁN --TIN HỌCTIN HỌC ĐẠI HỌC SƯ PHẠM TP.HCM (ĐẠI HỌC SƯ PHẠM TP.HCM (5252))5252 52