Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 3: Transact-SQL & Truy vấn dữ liệu - Nguyễn Thị Mỹ Dung
Chương 3: Transact-SQL
GVPT: NGUYỄN THỊ MỸ DUNG
SỐ TC: 2
SỐ TIẾT: LT: 20; TH: 20
1
Biên soạn: Nguyễn Thị Mỹ Dung
Chương 1: Tổng quan về SQL Server (LT: 2)
Chương 2: Tạo và quản trị CSDL (LT: 6; TH: 6)
Chương 3: Transact-SQL và truy vấn dữ liệu
(LT: 6: TH: 8)
Chương 4: Lập trì nh với Transact-SQL (LT: 4:
TH: 4)
Chương 5: Bảo Mật và Phâ n Quyền (LT: 2; TH:
2)
Chương 6: Kết nối CSDL (Tự học)
2
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
1
Chương 3: Transact-SQL
I. Ngôn ngữ xử lý dữ liệu (DML - Data Manipu-
lation Language): thêm, sửa, xóa
II. Tìm kiếm trên một bảng
III. Tìm kiếm trên nhiều bảng
IV. Truy vấn con lồng nhau
V. Sắp xếp
VI. Nhóm dữ liệu và thống kê
Bài tập chương 3
3
Biên soạn: Nguyễn Thị Mỹ Dung
1. Thêm dữ liệu vào bảng
Dạng 1: Thêm 1 dò ng dữ liệu
INSERT INTO <Tên_bảng> [(ds_thuộc_tính)]
VALUES (<gt1>, <gt2>, …, <gtn>)
Dạng 2: Thêm nhiều dò ng dữ liệu
INSERT INTO <Tên_bảng> [(ds_thuộc_tính)]
SELECT <th_tí nh_1>, …, <th_tí nh_n>
FROM <ds_bảng>
[WHERE <đ_kiện>]
4
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
2
Chương 3: Transact-SQL
Ví dụ 1:
INSERT INTO SV_DT (Masv, MaDT, KQ)
VALUES (‘SV001’, ‘DT08’, 8)
Ví dụ 2: Thêm dữ liệu sinh viên SV005 thực hiện tất
cả đề tài.
INSERT INTO SV_DT
SELECT ‘SV005’,MADT, N‘Đồng Tháp’, 8
FROM DETAI
5
Biên soạn: Nguyễn Thị Mỹ Dung
Nhận xé t:
- Thứ tự cá c giá trị phải trùng với thứ tự cá c cột,
- Có thể thêm giá trị NULL ở những thuộc tí nh
khô ng là khó a chí nh hoặc NOT NULL,
- Cá c giá trị thuộc tí nh khó a khô ng được trùng,
- Câ u lệnh INSERT sẽ gặp lỗi nếu vi phạm
RBTV (Khó a chí nh, tham chiếu, trùng tên,…), cá c
thuộc tí nh có ràng buộc NOT NULL bắt buộc phải có
giá trị.
6
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
3
Chương 3: Transact-SQL
2. Cập nhật (Sửa) dữ liệu
UPDATE <Tên_bảng>
SET <thuộc_tính1> = <giá_trị_mới1>,…,
<thuộc_tính_n> = <giá_trị_mới_n>,
[FROM <Ds_bảng>]
[WHERE <Điều_kiện>]
Ví dụ 21::
UPUDPADTAETEDES_ITNAHIVIEN
SESTEKTINHHOPCHLIUC= K=IN6H.2P,HNIA+MS2INH = 1991
WHERE MASV = ‘SV006’
7
Biên soạn: Nguyễn Thị Mỹ Dung
3. Xó a dữ liệu bảng
Dạng 1: Xó a một số bộ từ bảng
DELETE FROM <Tên_bảng>
-- Nếu đk có trong bảng khá c
[FROM <Tên_bảng_n>]
[WHERE <Điều_kiện>]
Dạng 2: Xó a tất cả cá c bộ từ bảng
TRUNCATE TABLE <Tên_bảng>
VD1: Xó a những mô n học dưới 20 tiết
DELETE FROM MON
WHERE SOTIET < 20
8
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
4
Chương 3: Transact-SQL
VD2: Xó a bảng điểm của sinh viên khoa Tin học
có điểm bé hơn 2
DELETE FROM KETQUA
FROM SINHVIEN S INNER JOIN KHOA K ON
S.MAKH = K.MAKH
WHERE S.MASV = KETQUA.MASV AND
TENKH LIKE N'TIN HỌC' AND DIEM = 4
VD3: Xó a tất cả kết quả của sinh viên
TRUNCATE TABLE KETQUA
9
Biên soạn: Nguyễn Thị Mỹ Dung
VD4: Xó a tất cả những sinh viên chưa tham gia
học tập mô n học nào.
DELETE FROM SINHVIEN
WHERE MASV NOT IN (SELECT MASV
FROM SV_DT)
Lưu ý:
- Câ u lệnh Delete sẽ xó a tất cả dữ liệu trên
bảng FROM gần nó nhất.
- Nếu có nhiều FROM trong câ u lệnh Delete
thì Bảng tại FROM gần Delete khô ng được đặt bí
danh.
10
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
5
Chương 3: Transact-SQL
Nhận xé t:
- Cá c lệnh UPDATE, DELETE có thể gâ y ra
vi phạm RBTV (khô ng cho sửa, xó a, hoặc xó a
luô n cá c dò ng dữ liệu tham chiếu hoặc dữ liệu
tham chiếu sẽ là Null).
- Điều kiện trong mệnh đề WHERE sẽ được
thực hiện cho cá c dò ng thỏa điều kiện, nếu khô ng
có mệnh đề WHERE toàn bộ bảng sẽ có ảnh
hưởng.
- Trá nh vi phạm RBTV khi xó a, nên xó a cá c
dữ liệu bảng nhiều trước, sau đó xó a bảng một.
11
Biên soạn: Nguyễn Thị Mỹ Dung
1. Select khô ng có điều kiện
SELECT * | <Col1,Col2, …, Coln>
FROM <Tên_bảng>
Ví dụ 1: In ra thô ng tin chi tiết của tất cả sviên
SELECT
*
FROM sinhvien
Ví dụ 2: In ra mã số, họ tên của tất cả sinh viên
SELECT masv, hoten
FROM sinhvien
12
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
6
Chương 3: Transact-SQL
2/ Select có điều kiện
SELECT * | <danh_sách_trường>
FROM <Tên_bảng>
WHERE <Điều_kiện>[;]
[HAVING <Điềukiện>]
Ví dụ: In ra mã số, họ tên của tất cả sinh viên từ
21 tuổi trở lên.
SELECT MASV, HOTEN, NAMSINH
FROM SINHVIEN
WHERE (YEAR(GETDATE())-NAMSINH)>21
13
Biên soạn: Nguyễn Thị Mỹ Dung
3. Select với Distinct | All
- Distinct: loại bỏ phần tử trùng nhau
-ALL: lấy tất cả cá c bộ kể cả phần tử trùng
SELECT DISTINCT | All <danh_sách_cột>
FROM <Tên_bảng>
[WHERE <Điều_kiện>];
VD1: in ra mã đề tài của cá c sinh viên thực hiện
SELECTALL MADT
FROM SV_DT
VD2: in ra mã đề tài có nơi á p dụng là ‘Dong Thap’
SELECTDISTINCT MADT
FROM SV_DT
WHERE NOIA_D = 'DONG THAP'
Biên soạn: Nguyễn Thị Mỹ Dung
14
BG_SQL_SERVER
7
Chương 3: Transact-SQL
Ghi chú:
- Mệnh đề WHERE kết hợp với cá c toá n tử:
AND, OR: kết hợp nhiều điều kiện
[NOT] LIKE: so sá nh chuỗi
BETWEEN …AND…: so sá nh trong khoảng
IS [NOT] NULL: tì m cá c bộ là (khô ng) rỗng.
[NOT] IN: tì m trong/ ngoài danh sá ch
- Cá c ký tự so sá nh đại diện đối với chuỗi: ‘%’
(nhiều ký tự), ‘_’ (một ký tự).
- Khi so sá nh cá c ký tự có dấu, đặt ‘N’ trước
chuỗi so sá nh: N‘chuỗi’
15
Biên soạn: Nguyễn Thị Mỹ Dung
1. Select nhiều bảng
SELECT * | <Danhsáchtrường>
FROM <Tênbảng1> [bí danh1] <loạikếtnối>
<Tênbảng2> [bí danh2] ON <điềukiệnkếtnối>
[WHERE<điềukiệnkếtnối>[AND|OR<điềukiệnchọn>]
Trong đó <loạikếtnối>:
INNER JOIN:
LEFT[OUTER] JOIN:
RIGHT [OUTER] JOIN: kết phải
FULL [OUTER] JOIN: kết đầy đủ
CROSS JOIN:
kết trong (thường sử dụng)
kết trá i
kết liên bảng cho phé p kết tất
cả cá c bộ có thể có (tương tự phé p kết tí ch đề-cá c),
khi đó khô ng cần bất kỳ điều kiện kết nối nào.
16
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
8
Chương 3: Transact-SQL
Ví dụ 1: Tì m họ tên sinh viên thực hiện tên đề tài, kết
quả từ 9 trở lên
Cá ch 1:
SELECT HOTENSV, TENDT,KETQUA
FROM SINHVIEN S,DETAI D, SV_DT SD
WHERES.MASV = SD.MASV AND SD.MADT= D.MADT
AND KETQUA >= 9;
Cá ch 2:
SELECTHOTENSV, TENDT,KETQUA
FROM ((SINHVIEN S INNER JOIN SV_DT SD ON
S.MASV = SD.MASV) INNER JOIN DETAI D
ON SD.MADT = D.MADT)
WHEREKETQUA >= 9;
17
Biên soạn: Nguyễn Thị Mỹ Dung
Ví dụ 2: Tì m họ tên của tất cả sinh viên thực hiện đề
tài (có thể có sinh viên khô ng thực hiện đề tài) gồm,
họ tên sinh viên, mã đề tài, kết quả
SELECTHOTENSV, MADT, KETQUA
FROM SINHVIEN S LEFT JOIN SV_DT SD ON
S.MASV = SD.MASV
Hoặc:
SELECTHOTENSV, MADT, KETQUA
FROM SINHVIEN S FULL JOIN SV_DT SD ON
S.MASV = SD.MASV
Ghi chú: SV thực hiện phé p kết Right Join, Inner
Join, Cross Join để so sá nh kết quả hiển thị bằng SQL
18
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
9
Chương 3: Transact-SQL
2. SELECT với INTO
INTO tạo ra bảng mới với thuộc tí nh được chọn
từ SELECT…. FROM….
SELECT<col1>,.. , <col_n>
INTO <Tênbảngmới>
FROM <danh_sách_bảng>
[WHERE <Điều_kiện>]
VD: Tạo bảng SV với cá c thô ng tin MaSV, HotenSV,
hocluc từ bảng SINHVIEN và ketqua thực hiện đề tài
từ bảng SV_DT
SELECTMASV, HOTENSV, HOCLUC, KQ
INTO SV
FROM SINHVIEN S INNER JOIN SV_DT SD
ON S.MASV = SD.MASV
19
Biên soạn: Nguyễn Thị Mỹ Dung
3. Cá c phé p toá n tập
hợp
Ví dụ: Tì m tất cả họ tên
chủ nhiệm và sinh viên
USE QLDETAISV
SELECTCHUNHIEM
FROM DE_TAI
Union [ALL]()
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện>]
UNION
UNION
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện>]
SELECTHOTENSV
FROM SINHVIEN
20
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
10
Chương 3: Transact-SQL
Intersect [ALL] ()
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện>]
INTERSECT
Ví dụ: Tì m MASV có
quê quá n cùng với nơi á p
dụng đề tài
USE QLDETAISV
SELECTMASV, QUEQUAN
FROM SINHVIEN
INTERSECT
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện]
SELECTMASV, NOIA_D
FROM SV_DT
21
Biên soạn: Nguyễn Thị Mỹ Dung
Except [ALL](-)
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện>]
EXCEPT
Ví dụ: Tì m tất cả MASV
có quê quá n khá c với nơi
á p dụng đề tài
USE QLDETAISV
SELECTMASV, QUEQUAN
FROM SINHVIEN
EXCEPT
SELECT<ds_trường>
FROM <ds_bảng>
[WHERE <điều_kiện>]
SELECTMASV, NOIA_D
FROM SV_DT
22
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
11
Chương 3: Transact-SQL
Lưu ý 1: Phé p giao rs có thể viết theo nhiều cá ch
như sau:
Cá ch 1:
SELECT* FROM r
INTERSECT
SELECT* FROM s
Cá ch 2:
SELECT* FROM r
WHERE r.c IN (SELECT s.c FROM s)
Cá ch 3:
SELECT* FROM r
WHERE EXISTS (SELECT * FROM s
WHERE s.c=r.c)
23
Biên soạn: Nguyễn Thị Mỹ Dung
Lưu ý 2: Phé p trừ r-s có thể viết theo nhiều cá ch như
sau:
Cá ch 1:
SELECT* FROM r
EXCEPT
SELECT* FROM s
Cá ch 2:
SELECT* FROM r
WHEREr.c NOT IN (SELECTs.c FROM s)
Cá ch3:
SELECT* FROM r
WHERE NOT EXISTS (SELECT* FROM s
WHEREs.c=r.c)
24
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
12
Chương 3: Transact-SQL
Truy vấn con là một câ u lệnh SELECT được lồng
vào bên trong một câ u lệnh SELECT, INSERT,
UPDATE, DELETE hoặc bên trong một truy vấn khá c.
Cú phá p:
SELECT[ALL | DISTINCT] <danhsáchtrường>
FROM <danhsáchbảng>
WHERE <điềukiện> AND | OR <têntrường>
<phé pSS>
(SELECT<têntrường> FROM <Tên_bảng>
[WHERE <điềukiện_s>])
25
Biên soạn: Nguyễn Thị Mỹ Dung
1. Sử dụng truy vấn con với toá n tử IN
Khi cần thực hiện phé p kiểm tra giá trị của một
biểu thức có xuất hiện (khô ng xuất hiện) trong tập cá c
giá trị của truy vấn con, ta có thể sử dụng toá n tử IN
(NOT IN) như sau:
WHERE <biểu_thức> [NOT] IN (<truy_vấn_con>)
Ví dụ: Tì m những sinh viên khô ng thực hiện đề tài
SELECTHOTENSV, HOCLUC
FROM SINHVIEN
WHERE MASV NOTIN
(SELECTMASV FROM SV_DT)
26
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
13
Chương 3: Transact-SQL
2. Truy vấn con với EXISTS
Lượng từ EXISTS (NOT EXISTS) để kiểm tra
xem một truy vấn con có trả về dò ng kết quả nào hay
khô ng được sử dụng trong truy vấn con dưới dạng:
WHERE [NOT] EXISTS (<truy_vấn_con>)
Ví dụ: cho biết họ tên của những sinh viên hiện
chưa có điểm thi của bất kỳ một mô n học nào
SELECT hosv,tensv
FROM sinhvien
WHERE NOT EXISTS (SELECT masv
FROM ketqua
WHERE ketqua.masv=sinhvien.masv)
27
Biên soạn: Nguyễn Thị Mỹ Dung
3. Truy vấn con với mệnh đề HAVING
Một truy vấn con có thể được sử dụng trong
mệnh đề HAVING của một truy vấn khá c. Kết quả của
truy vấn con được sử dụng để tạo điều kiện đối với
cá c hàm gộp.
Ví dụ: Cho biết mã , tên và trung bì nh điểm thi của
cá c mô n học có trung bì nh lớn hơn trung bì nh điểm
của tất cả cá c mô n học.
SELECTKETQUA.MAMH,TENMH, AVG(DIEM)
FROM KETQUA,MONHOC
WHERE KETQUA.MAMH = MON.MAMH
GROUP BY KETQUA.MAMH,TENMH
HAVING AVG(DIEM) >
(SELECTAVG(DIEM) FROM KETQUA)
28
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
14
Chương 3: Transact-SQL
4. Thực hiện phé p chia với truy vấn lồng
nhau
Sử dụng toá n tử NOT EXISTS để thực hiện:
Cú phá p:
SELECT *
FROM R
WHERE NOT EXISTS (SELECT *
FROM S
WHERE NOT EXISTS (SELECT *
FROM R_S
WHERE R_S.C1 = S.C1 AND
R_S.C2 = R.C2))
29
Biên soạn: Nguyễn Thị Mỹ Dung
Ví dụ: Tì m thô ng tin sinh viên thực hiện tất cả cá c đề
tài
SELECT*
FROM SINHVIEN
WHERE NOT EXISTS (SELECT *
FROM DETAI
WHERE NOT EXISTS (SELECT *
FROM SV_DT
WHERE SV_DT.MADT = DETAI.MADT
AND
SV_DT.MASV = SINHVIEN.MASV))
30
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
15
Chương 3: Transact-SQL
Cho phé p sắp xếp cá c dò ng trong kết quả câ u
truy vấn theo thứ tự tăng dần (hoặc giảm dần) dựa
trên một hoặc nhiều trường làm tiêu chí
Cú phá p:
SELECT <DS trường>
FROM <DS table>
[WHERE <ĐK>]
[GROUP BY <DS trường>]
ORDER BY <DS trường> ASC|DESC
. ASC: giá trị mặc nhiên, sắp xếp kết quả theo
thứ tự tăng dần.
. DESC: sắp xếp kết quả theo thứ tự giảm dần
31
Biên soạn: Nguyễn Thị Mỹ Dung
Ví dụ: In ra thô ng tin gồm mã số, họ tên và kết
quả tương ứng của sinh viên thực hiện cá c đề tài
có nơi á p dụng ở Đồng Thá p. Danh sá ch được
sắp thứ tự giảm dần theo kết quả thực hiện.
SELECT Sinhvien.MaSV, Hoten, KQ
FROM Sinhvien INNER JOIN SV_DT
ON Sinhvien.MaSV = SV_DT.MaSV
WHERE NoiA_D = N‘Đồng Thá p’
ORDER BY KQ DESC
32
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
16
Chương 3: Transact-SQL
Sử dụng ORDER BY với TOP
Mệnh đề TOP dùng để hạn chế số bộ trong truy
vấn. Cú phá p:
SELECT TOP <số_lượng> <ds_trường>
FROM <danh_sách_bảng>
WHERE <điều_kiện>
ORDER BY <danh_sách_trường> ASC|DESC
Ví dụ: Tì m những đề tài có kinh phí cao nhất và nhì .
SELECTTOP 2 MADT
FROM SV_DT
ORDER BY kinhphi DESC
33
Biên soạn: Nguyễn Thị Mỹ Dung
Sử dụng ORDER BY với hàm RANK()
Hàm RANK() dùng để xếp hạng theo ORDER
BY. Cú phá p:
SELECT RANK() OVER (ORDER BY <COL>
[ASC | DESC]) AS <tên_trường>, <ds_trường>
FROM <danh_sách_bảng>
[WHERE <điều_kiện>]
Ví dụ: Xếp hạng sinh viên theo kết quả thực hiện đề
tài từ cao đến thấp.
SELECTRANK() OVER (ORDER BY KQ DESC) AS
XEPHANG, HOTENSV, KQ
FROM SINHVIEN S INNER JOIN SV_DT SD ON
S.MASV = SD.MASV
34
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
17
Chương 3: Transact-SQL
Sử dụng ORDER BY với hàm ROW_NUMBER()
Hàm ROW_NUMBER() dùng để đánh số thứ tự
dò ng theo ORDER BY. Cú phá p:
SELECT ROW_NUMBER() OVER (ORDER BY
(SELECT<col>)) AS <tên_trường>, <ds_trường>
FROM <danh_sách_bảng>
[WHERE <điều_kiện>]
Ví dụ: Thêm cột số thứ tự cho truy vấn.
SELECTROW_NUMBER() OVER (ORDER BY
(SELECT1)) AS STT, HOTENSV, KQ
FROM SINHVIEN S INNER JOIN SV_DT SD ON
S.MASV = SD.MASV
35
Biên soạn: Nguyễn Thị Mỹ Dung
1. Thống kê với các hàm kết tập
Cú phá p:
SELECT[<DS trường>,] <Hàm kết tập>
FROM <DS_bảng>
[WHERE <Điều_Kiện>]
[GROUP BY <DS_trường>]
[HAVING <ĐK trên nhóm>]
Cá c hàm kết tập bao gồm: SUM, MAX, MIN, AVG
và COUNT.
Đặt lại tên trường: Trong một số trường hợp tên
trường của kết quả truy vấn khô ng phù hợp ta cần đặt
lại tên trường
Cú phá p:<Tên_trường_cũ> AS <Tên_trường_mới>
36
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
18
Chương 3: Transact-SQL
Cá ch sử dụng cá c hàm:
a. Hàm SUM (<Tên_trường>): Trả về tổng giá
trị của tất cả cá c dò ng của một trường kiểu số
Ví dụ: Tí nh tổng kinh phí của tất cả cá c đề tài
SELECT SUM (Kinhphi) as Tong_KP
FROM Detai;
b. Hàm MAX (<Tên trường>): Trả về giá trị lớn
nhất trong tất cả cá c dò ng của một trường
Ví dụ: Tì m kinh phí lớn nhất của tất cả cá c đề tài
SELECT MAX(Kinhphi) AS KP_MAX
FROM Detai
37
Biên soạn: Nguyễn Thị Mỹ Dung
c. Hàm MIN (<Tên trường>): Trả về giá trị nhỏ
nhất trong tất cả cá c dò ng của một trường
Ví dụ: Tì m kinh phí nhỏ nhất của tất cả cá c đề
tài
SELECT MIN(Kinhphi) AS KP_MIN
FROM Detai
d. Hàm AVG (<Tên_trường>): Trả về giá trị
trung bì nh cộng của tất cả cá c dò ng một trường
kiểu số
Ví dụ: Tí nh trung bì nh cộng kinh phí của tất cả
cá c đề tài
SELECT AVG(Kinhphi) AS TBC_KP
FROM Detai
38
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
19
Chương 3: Transact-SQL
e. Hàm COUNT (<Tên trường>): Đếm cá c dò ng
trong bảng theo một hoặc một số trường nào đó
Ví dụ 1: In ra số lượng đề tài mà thầy Lê Đức Phúc
làm chủ nhiệm
SELECTCOUNT(MaDT) AS So_DT
FROM Detai
WHERE Chunhiem = ‘Lê Đức Phúc’
Ví dụ 2: In ra họ tên của cá c giá o viên chủ nhiệm
từ 2 đề tài trở lên
SELECTChunhiem, COUNT(MaDT) AS SoLG
FROM Detai
GROUP BY Chunhiem
HAVING COUNT(MaDT) >= 2
39
Biên soạn: Nguyễn Thị Mỹ Dung
2. Gom nhó m sử dụng Compute, Compute By
Cá c mệnh đề Compute và Compute By sinh ra cá c
dò ng chi tiết và một dò ng tổng chí nh.
Compute By sử dụng giống Group By. Thứ tự trong
Compute By giống thứ tự trong Order By
Cú phá p:
SELECT<DS trường>,
FROM <DS_bảng>
WHERE <Điều_Kiện>
[ORDER BY <Cột_nhóm>]
[COMPUTE <Hàm_kết_tập>]
[BY <Cột_Nhóm>]
40
Biên soạn: Nguyễn Thị Mỹ Dung
BG_SQL_SERVER
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu SQL Server - Chương 3: Transact-SQL & Truy vấn dữ liệu - Nguyễn Thị Mỹ Dung", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_he_quan_tri_co_so_du_lieu_sql_server_chuong_3_tran.pdf

